下午好,我试图从一个数组传递2条单独的折线的坐标,到目前为止,数组从JSON文件中保存的坐标填充,它只是我似乎无法使用该数组实际填充折线坐标,它根本没有出现在地图上 - 控制台中没有发现错误。
我是新手,所以请保持温和,昨晚是一个非常深夜试图让事情发挥作用。我使用最新版本的goMap jquery插件,我开始倾向于插件的限制,但是知道我缺乏技能这是在黑暗中刺伤?
任何指导都非常感谢。感谢。
p.s我打算在每条折线上使用JSON文件中的其他属性,颜色,id等,但首先我需要通过这个阶段:)
相关的JSON文件内容如下:
"lines" :
[
{"id":2011, "colour":"#00CC00", "weight":4, "opacity": 0.5, "coords":[ { "lat": 51.94036, "lng": 4.12734 },{ "lat": 54.05466, "lng": 13.78057 },{ "lat": 54.13938, "lng": 13.76870 },{ "lat": 52.40433, "lng": 13.18649 },{ "lat": 51.53493, "lng": 10.75077 },{"lat": 51.25631, "lng": 7.15687 },{ "lat": 50.45001, "lng": 5.95817 },{ "lat": 51.94036, "lng": 4.12734}]
},
{"id":2010, "colour":"#3399FF", "weight":4, "opacity": 0.5, "coords":[ { "lat": 51.33761, "lng": 3.18406 },{ "lat": 50.82675, "lng": 2.18220 },{ "lat": 50.70592, "lng": 2.24091 },{ "lat": 51.18277, "lng": 3.20565 },{ "lat": 50.64371, "lng": 5.55140 },{ "lat": 50.45001, "lng": 5.95817 },{ "lat": 50.33386, "lng": 6.94722 },{ "lat": 50.31374, "lng": 6.96073 },{ "lat": 45.76458, "lng": 9.05604 },{ "lat": 45.55665, "lng": 9.05278 },{ "lat": 47.75976, "lng": 7.32900 },{ "lat": 48.65055, "lng": 6.14543 },{ "lat": 51.33761, "lng": 3.18406 }]
}
]
脚本的相关方面:
$.get('positions.json', function (data) {
for (var i = 0, l = data.lines.length; i < l; i++) {
var mypath = new Array();
for (var j = 0, k = data.lines[i].coords.length; j < k; j++) {
var coords = data.lines[i].coords[j];
mypath.push(coords.lat, coords.lng);
}
$.goMap.createPolyline({
color: "#00CC00", opacity: 0.5, weight: 4, coords: mypath
});
}
}, 'json');
答案 0 :(得分:0)
这是你的整个json文件吗?如果是这样,您可能需要使用“{”启动文件并以“}”结束它以表明它是一个javascript对象。
for (var j = 0, k = data.lines[i].coords.length; j < k; j++) {
var coords = data.lines[i].coords[j];
mypath.push(coords.lat, coords.lng);
}
每次迭代中的 coords
将是{latitude:xx,longitude:yy},这是createPolyline期望的数组。将内循环更改为下面应该可以工作,但我还没有测试过。
for (var j = 0, k = data.lines[i].coords.length; j < k; j++) {
mypath.push(data.lines[i].coords[j]);
}