如何从JSON数据制作flightPlanCoordinates?

时间:2017-04-22 03:05:56

标签: javascript angularjs json

我在角度上有一些功能,可以在我的数据库中从lat和lng绘制折线。我使用http.get来抓取JSON数据。我不知道从json数据制作折线我尝试解析它工作的数据,但如果我的JSON数据超过100数据lat和lng如何解析? 这是我的JSON数据

{"tracking":[{"latitude":"-7.9786395","longitude":"112.5617418"},{"latitude":"-7.3342266","longitude":"112.7650341"}]}

我的JS

    .controller('HomeCtrl', function ($scope, kaka, $ionicPopup,  $http){
     $scope.tracking = function () {
                kaka.cari($scope.item.code)
                //$http.get('http://192.168.100.13:88/OMG1/web.php?tN=find&f12=123456789')
                  .success(function(data){
                  $scope.result= data;
//                  var lat = parseFloat($scope.result.latitude);
//                  var lng = parseFloat($scope.result.longitude);
                  console.log($scope.result);
                  var lat0 = parseFloat($scope.result.tracking[0].latitude);
                  var lng0 = parseFloat($scope.result.tracking[0].longitude);
                  var lat1 = parseFloat($scope.result.tracking[1].latitude);
                  var lng1 = parseFloat($scope.result.tracking[1].longitude);
              var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 15,
                center: {lat: lat0, lng: lng0},
                mapTypeId: 'terrain'
              });

              var flightPlanCoordinates = [
                {lat: lat0, lng: lng0},
                {lat: lat1, lng: lng1}
              ];
              var flightPath = new google.maps.Polyline({
                path: flightPlanCoordinates,
                geodesic: true,
                strokeColor: '#FF0000',
                strokeOpacity: 1.0,
                strokeWeight: 2
              });

              flightPath.setMap(map);
              })
              .error(function(data){
              });

            };
    })

这是我在crome调试器中的jason

tracking : Array(2)
  0 : Object
    latitude : "-7.9786395"
    longitude : "112.5617418"
  1 : Object
    latitude : "-7.3342266"
    longitude : "112.7650341"

如果我一个一个地解析我的json它会起作用但是如果我的lat和lng超过100则不够好。你可以帮我解决我的问题吗。

1 个答案:

答案 0 :(得分:2)

使用Array.prototype.map()迭代一个数组,并根据原始数据返回一个新数组。

var flightPlanCoordinates = data.tracking.map((item)=>{
    // create new object based on current item
    var coords = {
       lat: parseFloat(item.latitude),
       lng: parseFloat(item.longitude)
    };
    // return to new array
    return coords;
});