来自Ajax调用的这个Json数据
{
"VehicleID": 1,
"Tracks": [{
"TrackID": 1,
"trackPoints": [{
"lat": 36.25514030456543,
"lng": 33.501180542295344
}, {
"lat": 36.255140304562,
"lng": 33.5011805422952
}, {
"lat": 36.255140304561,
"lng": 33.5011805422951
}]
}, {
"TrackID": 1,
"trackPoints": [{
"lat": 31.25514030456543,
"lng": 31.501180542295344
}, {
"lat": 31.255140304562,
"lng": 31.5011805422952
}, {
"lat": 31.255140304561,
"lng": 31.5011805422951
}]
}]
}
使用谷歌地图 两个for循环用于迭代每个轨道中的轨道和点, 我将我做的大部分内容打印到控制台
for (var i = 0; i < numtracks; i++) {
var numPoints = result.Tracks[i].trackPoints.length;
arr[i] = new Array(numPoints); //creating 2d array for points
console.log("*********Array number " + i + " Got created" + "and its lenght is " + arr[i].length + " *******************");
console.log("Lenght of track #" + i + " Points => " + numPoints);
console.log("array lenghth for Points track #" + i + " => " + arr[i].length);
获取积分的第二个循环
for (var j = 0; j < result.Tracks[i].trackPoints.length; j++) {
var x = result.Tracks[i].trackPoints[j].lat;
var y = result.Tracks[i].trackPoints[j].lng;
console.log("x= " + x + " for #" + j + " Point");
console.log("y= " + y + " for #" + j + " Point");
我正在将数据传递到google maps API
var p = new google.maps.LatLng(x, y);
console.log("p befor push lat for the " + p.lat());
console.log("p befor push lng for the " + p.lng());
将数据推入arr [i]。
arr[i].push(p);
//when acessing arr[i][j].lat();is not recgnising it
console.log("track #" + i + " , point #" + j + "pushed into array x= " + arr[i][j].lat() + " ,y=" + arr[i][j]);
这是控制台的输出
array lenghth for tracks => 2 trackss:96
Tracks lenght : 2 trackss:97
*********Array number 0 Got createdand its lenght is 3 ******************* trackss:110
Lenght of track #0 Points => 3 trackss:111
array lenghth for Points track #0 => 3 trackss:112
x= 36.25514030456543 for #0 Point trackss:116
y= 33.501180542295344 for #0 Point trackss:117
p befor push lat for the 36.25514030456543 trackss:119
p befor push lng for the 33.50118054229529 trackss:120
Uncaught TypeError: Cannot read property 'lat' of undefined
答案 0 :(得分:1)
尝试初始化arr
,如下所示:
arr[i] = [];
然后像这样添加p
对象:
arr[i][j] = p;