我是JavaScript的初学者,我正在努力将GeoJSON转换为javascript对象数组。
因此,使用JSON.parse,我将我的服务器端生成的JSON解析为JSON-Object。到现在为止还挺好。
Google方法addGeoJson返回我[object(Array)]。但是这个方法让我在地图上加载形状。我稍后需要它,当我想放大或缩小时显示不同的粒度。
我需要从[object]生成[object(Array)]。我该怎么做呢?超出“generatedGeoJsonPlz2”
这是我到目前为止所做的:
var generatedGeoJsonPlz1 = JSON.parse(geoJsonString);
var generatedGeoJsonPlz2 = JSON.parse(geoJsonString2);
var plz1area = plz.data.addGeoJson(generatedGeoJsonPlz1); // returns [object (Array)]
plz.addListener('zoom_changed', function() {
var zoom = plz.getZoom();
if (zoom == 8) {
for (var i = 0; i < plz1area.length; i++) {
plz.data.remove(plz1area[i]);
}
plz.data.addGeoJson(generatedGeoJsonPlz2);
}
// here i´m struggling. i need the [object (Array)] to delete the old Json
else if (zoom == 5) {
var plz2area = generatedGeoJsonPlz2;
for (var i = 0; i < plz2area.length; i++) {
plz.data.remove(plz2area[i]);
}
plz.data.addGeoJson(generatedGeoJsonPlz1);
}
}
谢谢! 基督教
答案 0 :(得分:1)
您可以存储addGeoJson(generatedGeoJsonPlz2)
的结果,以便以后删除它。
这可能对您有用:
var generatedGeoJsonPlz1 = JSON.parse(geoJsonString);
var generatedGeoJsonPlz2 = JSON.parse(geoJsonString2);
var plz1area = plz.data.addGeoJson(generatedGeoJsonPlz1);
// Here I already define the variable plz2area
var plz2area;
plz.addListener('zoom_changed', function() {
var zoom = plz.getZoom();
if (zoom == 8) {
for (var i = 0; i < plz1area.length; i++) {
plz.data.remove(plz1area[i]);
}
plz2area = plz.data.addGeoJson(generatedGeoJsonPlz2);
} else if (zoom == 5) {
// Only remove plz2area from the map, if it has been initialized before
if (plz2area) {
for (var i = 0; i < plz2area.length; i++) {
plz.data.remove(plz2area[i]);
}
}
plz.data.addGeoJson(generatedGeoJsonPlz1);
}
}