gpt4 book ai didi

javascript - 谷歌地图 v3 : Markerclusterer not being fired?

转载 作者:行者123 更新时间:2023-11-29 18:36:01 25 4
gpt4 key购买 nike

我手头有一点难题。我正在使用 Google Maps v3 和 MarkerClusterer v3。当我加载我的页面时, map 出现了,所有的点都在那里,但没有任何东西聚集在一起。

如果我转到 firebug 控制台并执行以下操作:

markerCluster = new MarkerClusterer(map, markers);

集群突然起作用了。

奇怪的是,如果我在 map 实例化和 markerclusterer 实例化之间放置一个警报,聚类会再次突然起作用。这是我的 $(document).ready 函数的结尾:

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
markerCluster = new MarkerClusterer(map, markers);

使集群工作所需的一切是:

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
alert("test");
markerCluster = new MarkerClusterer(map, markers);

我在这里错过了什么?我需要以某种方式刷新 map 吗?这就是警报框发生的情况吗?

如果您需要更多代码,请给我留言。

最佳答案

您的问题来自于 $.ajax()$.getJSON() 是异步方法这一事实。执行后,您的代码不会被阻止(否则浏览器也会被阻止)。因此,var markerCluster = new MarkerClusterer(map, markers); 在 AJAX 响应处理结束之前被调用。要解决此问题,您必须使用回调,例如 complete(),它会在处理完成后触发。

例如:

$.getJSON('/your_data.json', function(data) {
for (var i=0;i<data.length;i++){
// code to display markers
}
}).complete(function() {
var marker_cluster = new MarkerClusterer(map, gmarkers);
});

希望这对您有所帮助。

关于javascript - 谷歌地图 v3 : Markerclusterer not being fired?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123284/

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