Ich habe Probleme beim Aktualisieren einer angezeigten geoJSON
auf einem Prospekt. Ich arbeite mit d3
und leaflet
. Die callbackHandler
erhält jedes Mal, wenn der Benutzer dies wünscht, eine neue geoJSON
(name
).Aktualisieren von geoJson innerhalb von CallbackHandler auf der Karte
Mein Code sieht wie folgt vor:
someCallbackHandler("name", function("newName") {
var newJson = JSON.parse(newName);
// then its basically this
https://bost.ocks.org/mike/leaflet/
...
});
Die erste geoJson
angezeigt wird. Wenn der Benutzer jedoch einen anderen anzeigen möchte, wird die Karte nicht aktualisiert. Was verursacht dieses Verhalten? Da die Displayfunktion innerhalb der callbackHandler
verschachtelt ist, sollte sie jedes Mal aufgerufen werden, wenn sie eine neue geoJson
sendet. Oder fehlt mir etwas?
bearbeiten
Sein hartes, ein vollständiges Beispiel für den Code zu schreiben, da es eine Menge Abhängigkeiten hat ... ich es verengt dieses wenig nach unten. Was ich bisher herausgefunden habe ist, dass, wenn die callbackHandler
kickt in der ersten Zeit, console.log(newJson)
gibt mir eine Object
. Wenn die callbackHandler
in der zweiten, dritten, vierten, ... Zeit tritt, bekomme ich das: {crs: {type: "name", properties: ... "FeatureCollection", features: Array}
. Wenn ich die Werte in der Object/{crs: {type: ....
überprüfe, sehe ich, dass sie anders sind. Aber die Karte von ihnen ändert sich nicht.
Das scheint nicht richtig ?!
Sorry, das ist ein Tippfehler ... Natürlich ist es keine Zeichenfolge, sondern ein Variablenname. – Stophface
Ok, kannst du irgendwo ein komplettes Beispiel posten? – snkashis
Ich habe meine Fragen so gut wie möglich bearbeitet. – Stophface