gpt4 book ai didi

JavaScript 和 Google map v3 : capture result of tilesloaded() event?

转载 作者:行者123 更新时间:2023-11-28 02:47:07 26 4
gpt4 key购买 nike

我对 Javascript 的异步特性和 Google map 有疑问。我正在使用 Google Maps V3 tilesloaded 监听器向 map 添加一些标记。

我不知道如何获取这些标记,以便稍后可以使用它们做一些事情,因为tilesloaded会异步触发,而我是Javascript新手!

代码如下:

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.
});

警报始终显示 1,因为 show_place 在加载所有标记之前返回。我无法获取已添加的额外标记。

我该如何解决这个问题?

谢谢。

最佳答案

你应该这样做:

var marker = new google.maps.Marker({
position: point,
title: 'mytitle'
});
marker.setMap(myMap);
markersArray.push(marker);

关于JavaScript 和 Google map v3 : capture result of tilesloaded() event?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com