V3.34 fitbound显示地图重定位上的其他群集

时间:2018-09-06 14:33:15

标签: google-maps-api-3

我们正遇到以下提琴手所描述的类似问题。

http://jsfiddle.net/Lmm5hrp9/2/

var map;
var markers;
var markerCluster;
var markersAmount;
var gridSize;
var minimumClusterSize;
var t0, t1;

function initialize() {

    var center = new google.maps.LatLng(0, 0);

    map = new google.maps.Map(document.getElementById('map-canvas'), {
        zoom: 4,
        center: center,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    createMarkers();
}

function createMarkers() {

    // Define the number of random markers to create
    markersAmount = isNaN(document.getElementById('markersAmount').value) ? 5000 : document.getElementById('markersAmount').value;

    // Define the marker cluster grid size
    gridSize = isNaN(document.getElementById('gridSize').value) ? 100 : document.getElementById('gridSize').value;

    // Define the marker cluster minimum cluser size
    minimumClusterSize = isNaN(document.getElementById('minimumClusterSize').value) ? 10 : document.getElementById('minimumClusterSize').value;

    // Empty markers array
    markers = [];
    // Cluster all the markers

    // Define the max latitude on a mercator projection
    var maxLat = Math.atan(Math.sinh(Math.PI)) * 180 / Math.PI;

    // Loop and create the markers
    for (var i = 0; i < markersAmount; i++) {

        // Calculate a random lat and lng
        var lat = Math.floor(Math.random() * (maxLat * 2)) - maxLat;
        var lng = Math.floor(Math.random() * 360) - 180;

        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(lat, lng)
        });

        markers.push(marker);
    }
    markerCluster = new MarkerClusterer(map, markers, {
      imagePath: 'https://googlemaps.github.io/js-marker-clusterer/images/m',
      gridSize: parseInt(gridSize),
      minimumClusterSize: parseInt(minimumClusterSize)
    });

}

function fitBounds() {

    var bounds = new google.maps.LatLngBounds();
        markers.forEach(m => bounds.extend(m.getPosition()));
    map.fitBounds(bounds);
}

google.maps.event.addDomListener(document.getElementById('fitBounds'), 'click', fitBounds);
google.maps.event.addDomListener(window, 'load', initialize);

此功能在v3.31中正常运行,没有任何问题,但是该版本现已弃用。

我们还看到,fitbounds也用于markercluster。我们是否还需要对此进行更改?

请提供可用于解决此问题的替代方法。谢谢你。

1 个答案:

答案 0 :(得分:0)

自v3.32以来,使用v3实用程序库中的群集,谷歌地图一直存在问题。我很确定需要对它进行一些代码更改,但不能确定它是否正在积极维护。