Как получить данные KML из объекта GGeoXml

Я загружаю файл KML в объект карты Google, используя следующий код:

map = new GMap2(document.getElementById("map_canvas")); 
geoXml = new GGeoXml(kml);
GEvent.addListener(geoXml, "load", function() {
    geoXml.gotoDefaultViewport(map);
    // I would like to read the KML contents here
});
map.addOverlay(geoXml);
// ...

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


person Fabian Jakobs    schedule 06.01.2010    source источник


Ответы (2)


Вы не можете получить к нему доступ через API, но данные доступны в запутанных свойствах внутри объекта GGeoXML. Глядя на это в Firebug, я нашел эту информацию здесь: geoxml.$q.ia. Посмотрите на него сами, чтобы увидеть нужные вам свойства (название, описание и т. д.).

person Mourner    schedule 06.01.2010
comment
Вы хоть представляете, насколько стабильны запутанные свойства? - person Fabian Jakobs; 08.01.2010

вы можете получить KML из GGeoXML

иметь переменную в окне

geoXml = new GGeoXml("http://mapgadgets.googlepages.com/cta.kml",
                         function(){
                              geoXml.getKml(
                                function(a){
                                  myKml = a;
                                  alert(myKml);
                                });} );

попробуйте здесь: http://code.google.com/apis/ajax/playground/?exp=maps#map_geoxml_kml

просто перейдите на одну строку, в качестве альтернативы, если вы не хотите использовать обратный вызов GGeoXML, вы можете вызвать getKml() в какой-либо другой функции после завершения загрузки, при условии, что ваш geoXml не будет стерт

person Berwyn    schedule 17.02.2010