Fixation de l'auditeur sur la couche KML:
var layer = new google.maps.KmlLayer('http://sites.google.com/site/kmlprototypes/kmls/temp.kml?dc_=' + Math.random(), {suppressInfoWindows:true,preserveViewport:true}); layer.setMap(map); google.maps.event.addListener(layer, 'click', function (obj) { alert(obj.featureData.id); });
Le fichier KML est valide (vérifié par validation api), vous pouvez le trouver ici . Chaque marque de marque dans XML possède un attribut id comme:
<Placemark id="46"> <Style> <IconStyle> <Icon> <href> <![CDATA[http://chart.apis.google.com/chart?chf=bg,s,EAF7FE02&chxt=y&chbh=a,4,4&chs=48x48&cht=bvg&chco=FF0000,0000FF&chds=20,9048.00,0,9048.00&chd=t:8149.00|9048.00]]> </href> </Icon> </IconStyle> </Style> <Point> <coordinates>30.49566650390625,50.721378326416016</coordinates> </Point> </Placemark>
Lorsque vous cliquez sur un marque-page dans l'objet Google Map, vous retournez l'identifiant correct, mais parfois environ 50% du temps obj.featuredData.id
est null
(l'état ZERO_RESULTS
trouve dans le champ d' status
). J'ai essayé différents ensembles de données (forme 100 points à 1000), mais ça n'aide pas. J'ai également essayé différentes précisions pour lat, lng.
Vous avez probablement franchi une des limites répertoriées sur cette page: https://developers.google.com/kml/documentation/mapsSupport?hl=fr
Le maximum de 1000 fonctionnalités par fichier peut être celui qui vous dérange.