2016-10-20 3 views
-2

Я новичок в JavaScript, и я немного борюсь с преобразованием GeoJSON в массив объектов javascript.(Geo) JSON для объекта Array

Итак, с JSON.parse Я разбираю свой серверный JSON-JSON-объект в JSON-Object. Все идет нормально.

Метод Google addGeoJson возвращает мне [объект (массив)]. Но этот метод показывает, что я загружаю форму на карте. Мне нужно это позже, когда я хочу отображать разные гранулярности, когда я увеличиваю или уменьшаю масштаб.

Мне нужно создать [объект (массив)] из [объекта]. Как мне это сделать? Из "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); 
    } 
} 

Спасибо! Christian

ответ

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

к сожалению, не работает. Функция plz2area не определена в функции, поэтому не удаляется forloop для удаления – Christian

Смежные вопросы