Google Maps Spiderfy默认打开

use*_*973 4 javascript jquery google-maps google-maps-api-3

希望利用George MacKerron开发的蜘蛛侠。但是我还有另一个要求,那就是默认情况下加载所有带有“ spiderd”标记的地图。我可以使用javascript单击标记来模仿这一点,但是必须使用Spiderfy代码来另一种方式。有没有人做到这一点?

https://github.com/jawj/OverlappingMarkerSpiderfier#overlapping-marker-spiderfier-for-google-maps-api-v3

var map = new google.maps.Map(document.getElementById("map-canvas"), options);
var iw = new google.maps.InfoWindow();
var oms = new OverlappingMarkerSpiderfier(map, {keepSpiderfied: true});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/vFAy6/5/

She*_*evy 5

我想出了一个对我有用的解决方案。添加完所有标记后,我将设置超时以调用函数来打开每个集群以及在OMS js中。

  1. keepSpiderfied使所有蜘蛛标记保持打开状态。它对我不起作用,所以我更改了OMS js。如果它适合您,则无需更改此设置。

找到这个:

(!e||!this.keepSpiderfied)&&this.unspiderfy();
Run Code Online (Sandbox Code Playgroud)

替换为:

(!e||!this.keepSpiderfied);
Run Code Online (Sandbox Code Playgroud)
  1. 调用以打开每个群集组的函数:

    function openAllClusters() {
        var markers = oms.markersNearAnyOtherMarker();
    
        $.each(markers, function (i, marker) {
            google.maps.event.trigger(markers[i], 'click');
        });
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我添加了最后一个标记后设置了超时时间(因为仅在之后立即调用该函数不起作用):

    setTimeout(openAllClusters, 2000);


use*_*973 0

据此谷歌地图扩展的开发人员称,这是行不通的。

https://github.com/jawj/OverlappingMarkerSpiderfier/issues/2