(Geo)JSON到对象数组

时间:2016-10-20 14:56:44

标签: javascript arrays json google-maps

我是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);
  }
}

谢谢! 基督教

1 个答案:

答案 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);
  }
}