Динамическое изменение цвета многоугольника в связанном файле KML

Я хочу создать карту Choropleth, состоящую из полигонов, наложенных поверх Google Earth, с помощью подключаемого модуля с использованием JavaScript.

Полигоны существуют в файле KML, все с уникальными идентификаторами, на сервере (не обязательно моем). Я хочу иметь возможность динамически изменять цвет многоугольника, чтобы отображать разные наборы данных.

Это выполнимо?

Я искал механизм KML, но он работает только с файлами на одном сервере.

Спасибо,

Счет


person Bill    schedule 27.09.2013    source источник


Ответы (1)


Вы можете загружать/анализировать удаленный KML через API Google Планета Земля с любого URL-адреса, доступного в сети (с того же сервера или иным образом). ), затем выполните итерацию по объектам KML и программным образом измените стили и цвета полигонов.

var href = 'http://code.google.com/'
           + 'apis/earth/documentation/samples/kml_example.kml';

google.earth.fetchKml(ge, href, function(kmlObject) {
      if (kmlObject) {
         checkObject(kmlObject);
         // append KML objects to current view
         ge.getFeatures().appendChild(kmlObject);
      }    
});

function checkObject(kmlObject) {
    var type = kmlObject.getType();         
    if (type == 'KmlDocument' || type == 'KmlFolder') {
        var features = kmlObject.getFeatures();
        if (features.hasChildNodes()) {
            var children = features.getChildNodes();                    
            for (i=0; i < children.getLength(); i++) {
                checkObject(children.item(i));                      
            }
        }
    } else if (type == 'KmlPlacemark') {
        // check/set style, change color, etc.
        // ...
    }
}

Ссылка: https://developers.google.com/earth/documentation/kml#fetchkml_and_parsekml

person JasonM1    schedule 29.09.2013