Je suis un problème assez étrange avec mon code. J'utilise geoxml3 pour analyser un fichier kml, et il corrige toutes les polylignes ok, mais quand il arrive aux marqueurs, la console dit que c'est undefined
. Ce qui est bizarre, c'est que chaque fois que je recharge la page, ça fonctionne bien, mais chaque fois que j'ouvre dans un nouvel onglet, ça se casse de nouveau. Même plus bizarre, quand je mets un console.log
juste avant la condition pour vérifier s'il s'agit d'une polyligne ou d'un marqueur, la console du navigateur montre qu'il y a une propriété .Javascript seulement accéder à la propriété de l'objet après le rechargement de la page
Voilà ma fonction useTheData que geoxml3 nécessite:
function useTheData(doc){
console.log("Starts Parse");
console.log(doc[0].placemarks.length);
for (var i = 0; i < doc[0].placemarks.length; i++){
console.log("i: "+i+", placemark:");
console.log(doc[0].placemarks[i]); //here the .marker property exists in the console
console.log(".marker:");
console.log(doc[0].placemarks[i].marker); //here it says it's undefined!
if(doc[0].placemarks[i].polyline){ //check if it's a polyline
google.maps.event.addListener(doc[0].placemarks[i].polyline, 'click', select_option);
}
else{
console.log("### i = "+i);
console.log("1");
console.log(doc[0].placemarks[i].marker); //here, the exact same object, doesn't have the marker property!
console.log("2");
google.maps.event.addListener(doc[0].placemarks[i].marker, 'click', select_option); //Because of that, the first time the page loads, it get's stuck in the function cuz it can't access the .marker
console.log("3");
doc[0].placemarks[i].marker.setIcon({
url: "img/bola.png",
scaledSize: new google.maps.Size(10, 10),
anchor: new google.maps.Point(5, 5)
});
console.log("4");
}
}
console.log("End Parse");
google.maps.event.addListener(map, 'click', select_option);
}
Veuillez fournir un exemple [Minimal, Complete, Tested and Readable] (http://stackoverflow.com/help/mcve) qui illustre le problème (et une indication de la version de geoxml3 que vous utilisez). – geocodezip
'Uncaught ReferenceError: select_option n'est pas défini' – geocodezip
J'utilise la toute dernière version du 6 avril téléchargée depuis github. Le problème est que le geoxml obtient un kml à partir d'un serveur local, je vais essayer de publier le code sur un serveur pour être capable de reproduire entièrement l'erreur. Mais toutes les fonctions addListener peuvent être supprimées et l'erreur se produit toujours. – Cesar