【问题标题】:How to make flightPlanCoordinates from JSON data?如何从 JSON 数据制作 flightPlanCoordinates?
【发布时间】:2017-04-22 03:05:55
【问题描述】:

我有一些角度功能,可以在我的数据库中从 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 调试器中的杰森

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

如果我一一解析我的 json,它会起作用,但如果我的 lat 和 lng 超过 100,它就不够好。你能帮我解决我的问题吗?

【问题讨论】:

    标签: javascript angularjs json


    【解决方案1】:

    使用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;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-27
      • 2013-03-31
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多