2017-04-22 2 views
0

私は、私のデータベースのlatとlngからポリラインを描くためにいくつかの角度を持っています。私はhttp.getを使ってJSONデータをgrapします。私はJSONデータからポリラインを作ることを知らない。データを解析しようとするが、私のJSONデータが100以上のデータlatおよびlngを解析する方法は? それは私のJSONデータJSONデータからflightPlanCoordinatesを作成するにはどうすればよいですか?

{"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){ 
       }); 

      }; 
    }) 

この私のジェイソン

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

私は1つの私のJSONずつ解析したが、十分であれば、それは良いではない場合、それが動作私は100以上の緯度と経度を持っています。

答えて

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; 
}); 
+0

正常に動作します – Nugka

関連する問題