2010-01-06 12 views
1

je charge un fichier KML dans un objet google map en utilisant le code suivant:Comment obtenir les données KML à partir d'un objet GGeoXml

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); 
// ... 

Je voudrais lire les placemarks du fichier KML et les afficher dans une liste. Je sais que l'information dont j'ai besoin est transférée au navigateur mais je ne sais pas comment y accéder.

Répondre

1

Vous ne pouvez pas y accéder via l'API, mais les données sont disponibles dans des propriétés obfuscated à l'intérieur de l'objet GGeoXML. En regardant dans Firebug, j'ai trouvé cette information ici: geoxml. $ Q.ia. Regardez-le vous-même pour voir les propriétés dont vous avez besoin (nom, description, etc.).

+0

Avez-vous une idée de la stabilité des propriétés obfusquées? –

+0

Malheureusement pas ... – Mourner

3

vous pouvez obtenir le KML de la GGeoXml

ont une variable dans la fenêtre

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

essayer ici: http://code.google.com/apis/ajax/playground/?exp=maps#map_geoxml_kml

changer juste une ligne, alternativement, si vous ne ne veux pas utiliser le rappel de GGeoXML, vous pouvez appeler getKml() dans une autre fonction après que les choses ont fini de charger, à condition que votre geoXml ne soit pas effacé