我想要的是什么:
这是json,它包含所需的lat,lon值:
{
"rangemap": {
"rangemaps": [
{
"polyline": [
{
"lat": 48.1914210319519,
"lon": 11.3745188713074
},
{
"lat": 48.1789970397949,
"lon": 11.3705492019653
},
... and so on
这是我要加载到地图的变量:
var rangemap_eco = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
]
}
}
]
};
使用此代码,我将json中的坐标提取到"坐标" -array in my variable:
$scope.parseRM_eco = function(){
var first;
var last;
for(var z=0; z < vm.rangespider.rangemap.rangemaps[0].polyline.length; z++) {
first = vm.rangespider.rangemap.rangemaps[0].polyline[z].lon;
last = vm.rangespider.rangemap.rangemaps[0].polyline[z].lat;
arr[z] = '['+first+','+last+']';
}
rangemap_eco.features[0].geometry.coordinates.push(arr);
console.log(rangemap_eco);
}
使用 map.data.addGeoJson(rangemap_eco); 我将变量加载到地图。
但我总是得到一个错误 &#34;错误:在属性&#34;功能&#34;:在索引0:在属性&#34;几何&#34;:在属性&#34;坐标&#34;:在索引0:在索引0 :不是数组&#34;
我真的不知道错误在哪里......
答案 0 :(得分:0)
arr[z] = '['+first+','+last+']';
应该是
arr[z] = [first, last];
或更好
arr.push([first, last]);
即。 "coordinates"
是一个数组数组
coordinates: [
[lon, lat], [lon, lat], ... etc
]