Ich habe ein Problem mit asynchronen Asynchronität von Javascript und Google Maps. Ich füge einige Markierungen zu einer Karte mit dem Google Maps V3 tilesloaded
Listener hinzu.JavaScript & Google Maps v3: Ergebnis des Events "tilesloaded()" erfassen?
Ich weiß nicht, wie man diese Marker bekommt, damit ich später Dinge mit ihnen machen kann, weil Kachel asynchron geladen wird und ich ein Javascript-Neuling bin!
Hier ist der Code:
function show_place() {
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = addMarker(lat, lng);
markers.push(marker);
// When the map boundaries move, add new markers within the bounds.
google.maps.event.addListener(map, 'tilesloaded', function() {
var bounds = map.getBounds();
$.getJSON("/markers_within_bounds/", { [variables] }, function(json){
for (i=0;i<json.length;i++) {
var map_marker = addMarker(json[i].lat, json[i].lng);
markers.push(map_marker); //Try to add markers to the array. Fail.
}
});
});
return markers;
}
$(document).ready(function() {
var markers = show_place(lat, lng);
alert(markers.length);
// Do things with the markers... if there is more than 1.
});
Der Alarm immer 1 zeigt, weil show_place
Rückkehr wird, bevor es alle Marker lädt. Ich kann die zusätzlichen Markierungen, die hinzugefügt wurden, nicht erreichen.
Wie kann ich das umgehen?
Danke.