2016-10-20 16 views
-2

私はJavaScriptの初心者ですが、私はGeoJSONをjavascriptオブジェクト配列に変換するのに少し苦労しています。(ジオ)JSONからオブジェクトへの配列

JSON.parseを使用して、私のサーバーサイドで解析したJSONをJSON-Objectに変換しました。ここまでは順調ですね。

GoogleのメソッドaddGeoJsonがme [object(Array)]を返します。しかし、この方法は地図上の形状をオンロードすることを示しています。後で、ズームインまたはズームアウト時に異なる粒度を表示する必要があるときに、その必要があります。

[オブジェクト]から[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

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); 
    } 
} 
+0

- 私はそれを試してみます!これまでにありがとうございました – Christian

+0

偉大な、それが働いたかどうか教えてください:) – mrunde

+0

unfortunatlyその動作しません。 plz2areaは関数内で定義されていないので、削除のためにforループを渡すことはできません – Christian

関連する問題