как добавить значения в json в javascript? - PullRequest
0 голосов
/ 22 апреля 2020

Я создаю карту для курса беспилотника, и я использую mapbox gl js и рисую. Я могу создать путевую точку и получить координаты, но я пытаюсь создать несколько курсов с json с идентификатором курса, координатами и т. Д. c.

Может ли кто-нибудь помочь мне, спасибо.

Эта функция поможет мне создать курс:

   map.on('draw.modechange', function(e) { 
    map.on('click', function(e) { 
        if (draw.getMode() == 'draw_polygon') {

            lon = e.lngLat.lng;
            lat = e.lngLat.lat;

            gps[nbPoints][0] = lon;
            gps[nbPoints][1] = lat; 

            nbPoints = nbPoints+1;

            console.log("Longitude : "+lon + " - " + "Latitude : "+lat);
        };
    });
});

Я использую эту функцию для отправки данных на мой сервер:

$("#vol").click(function(e)
    {   
        for (var i = 0 ; i < nbPoints; i++) {

            posLon = gps[i][0];  
            posLat = gps[i][1];

            lon = posLon;
            lat = posLat;           

      }

            const obj ={
                        "numero":"3",
                        "r_name":"parcours2",
                        "speed":"6",
                        "actionFinished":"home",
                        "coordinate":
                            {
                                "waypoint":[
                                            {
                                            "longitude":lon,
                                            "latitude":lat,
                                            "EnablePicture":"false",
                                            "PositionBatiment":"gauche",
                                            "altitude":"30"
                                            }
                                        ]
                                    }
                                }   

             const jsonString = JSON.stringify(obj);
             const xhr = new XMLHttpRequest();

             xhr.open("POST", "Api.php", true);
             xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
             xhr.send(jsonString); 

             console.log(jsonString);       

});

1 Ответ

0 голосов
/ 23 апреля 2020

Может быть, как-то так?

$("#vol").click(function (e) {
  const obj = {
    "numero": "3",
    "r_name": "parcours2",
    "speed": "6",
    "actionFinished": "home",
    "coordinate":
    {
      "waypoint": []
    }
  }

  for (var i = 0; i < nbPoints; i++) {
    obj.coordinate.waypoint.push(
      {
        "longitude": gps[i][0],
        "latitude": gps[i][1],
        "EnablePicture": "false",
        "PositionBatiment": "gauche",
        "altitude": "30"
      }
    )

  }



  const jsonString = JSON.stringify(obj);
  const xhr = new XMLHttpRequest();

  xhr.open("POST", "Api.php", true);
  xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
  xhr.send(jsonString);

  console.log(jsonString);
});

Если я понял, что вы пытаетесь сделать правильно

...