Ich habe ein ziemlich seltsames Problem mit meinem Code. Ich benutze geoxml3, um eine kml-Datei zu parsen, und analysiert alle Polylinien, aber wenn es zu den Markierungen kommt, sagt die Konsole, dass es undefined
ist. Der komische Teil ist, dass jedes Mal, wenn ich die Seite neu lade, es funktioniert, aber jedes Mal, wenn ich in einem neuen Tab öffne, bricht es wieder. Noch seltsamer, wenn ich eine console.log
direkt vor der Bedingung, um zu überprüfen, ob es eine Polylinie oder ein Marker ist, zeigt die Browser-Konsole zeigt, dass es eine Eigenschaft.Javascript nur Zugriff Objekteigenschaft nach dem Neuladen der Seite
Hier ist meine useTheData Funktion, die geoxml3 erfordert:
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);
}
Bitte geben Sie ein [minimales, vollständiges, getestetes und lesbares Beispiel] (http://stackoverflow.com/help/mcve) an, das das Problem demonstriert (und einige Hinweise darauf, welche Version von geoxml3 Sie verwenden). – geocodezip
'Uncaught ReferenceError: select_option ist nicht definiert' – geocodezip
Ich verwende die allerletzte Version vom 6. April, die von Github heruntergeladen wurde. Das Problem ist, dass die Geoxml bekommt einen kml von einem lokalen Server, ich werde versuchen, den Code auf einem Server zu veröffentlichen, um den Fehler vollständig reproduzieren zu können. Alle AddListener-Funktionen können jedoch entfernt werden, und der Fehler tritt weiterhin auf. – Cesar