Javascript 谷歌地图蜘蛛网默认打开

Javascript 谷歌地图蜘蛛网默认打开,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,想把乔治·麦克隆发明的蜘蛛变成乌特利兹。然而,我还有一个要求,那就是加载默认情况下所有标记为“spiderd”的地图。我可以通过使用javascript点击标记来模拟这一点,但必须有另一种方法使用spiderfy代码。有人做到了吗 来自 keepsiderfied(默认值:false) 默认情况下,重叠标记器的工作方式与Google Earth类似,即当您单击>一个蜘蛛化标记时,这些标记在任何其他操作发生之前都不会被标记 由于这会让用户很难逐个处理一组标记,因此可以>通过将keepSpider

想把乔治·麦克隆发明的蜘蛛变成乌特利兹。然而,我还有一个要求,那就是加载默认情况下所有标记为“spiderd”的地图。我可以通过使用javascript点击标记来模拟这一点,但必须有另一种方法使用spiderfy代码。有人做到了吗

来自

keepsiderfied(默认值:false)

默认情况下,重叠标记器的工作方式与Google Earth类似,即当您单击>一个蜘蛛化标记时,这些标记在任何其他操作发生之前都不会被标记

由于这会让用户很难逐个处理一组标记,因此可以>通过将keepSpiderfied选项设置为true来覆盖此行为


据谷歌地图扩展的开发者称,这将不起作用


我想出了一个适合我的解决方案。在添加了所有标记之后,我设置了一个超时来调用functiont来打开每个集群并在OMS js中打开

  • keepSpiderfied保持所有spidered标记打开。它对我不起作用,所以我修改了OMS js。如果它对你有效,你不需要改变它
  • 找到这个:

    (!e||!this.keepSpiderfied)&&this.unspiderfy();
    
    替换为:

    (!e||!this.keepSpiderfied);
    
  • 要调用以打开每个群集组的函数:

    function openAllClusters() {
        var markers = oms.markersNearAnyOtherMarker();
    
        $.each(markers, function (i, marker) {
            google.maps.event.trigger(markers[i], 'click');
        });
    }
    
  • 我在添加最后一个标记后设置了一个超时(因为它不能在之后立即调用函数):

    setTimeout(openAllClusters,2000)


  • 是的,我试过了。但是这个构造器选项似乎不起作用。你有没有示例代码或一个JSFIDLE来演示这个问题?由于某种原因,我的设置在JSFIDLE中从来都不起作用。。。你好,Shevy,你能举一个这样的例子吗?我试图让它与以下内容一起工作:但标记不会在页面加载时扩展。我替换了(!e | |!this.keepsiderfied)和&this.unsiderfid();使用(!e | |!this.keepsiderfied);在OMS js中,然后将步骤2中的函数添加到我的html页面。setTimeout放在脚本的末尾。请注意,这可能会触发infoWindow弹出窗口(因为标记单击调用)。嗨,即使单击了映射,这是否应该保持标记蜘蛛化?如果没有,你知道我怎么做吗?
    function openAllClusters() {
        var markers = oms.markersNearAnyOtherMarker();
    
        $.each(markers, function (i, marker) {
            google.maps.event.trigger(markers[i], 'click');
        });
    }