2017-04-22 2 views
0

Ich habe einige Funktionen in eckigen, um Polylinie von lat und lng in meiner Datenbank zu zeichnen. Ich verwende http.get, um JSON-Daten zu erfassen. Ich weiß nicht, um Polylinie aus JSON-Daten zu machen, ich versuche, Daten zu analysieren, es funktioniert, aber wenn meine JSON-Daten mehr als 100 Daten lat und lng, wie zu parsen? es meine JSON-DatenWie man flightPlanCoordinates aus JSON-Daten macht?

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

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

      }; 
    }) 

dies mein jason in crome Debugger

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

es, wenn ich eins nach dem anderen meine Json analysieren, aber es ist nicht gut genug, wenn ich habe lat und lng mehr als 100. kannst du mir helfen, mein problem zu lösen.

Antwort

1

Verwenden Sie , um ein Array zu iterieren und ein neues Array basierend auf Daten aus dem Original zurückzugeben.

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

danke, dass es richtig funktioniert – Nugka