我在角度上有一些功能,可以在我的数据库中从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则不够好。你可以帮我解决我的问题吗。
答案 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;
});