3

我正在使用MarkerClusterer对标记进行分组,我有 2 个问题:

  1. 我应该怎么做才能防止单击放大并显示信息窗口,例如单击标记时?
  2. 有什么方法可以更改标记的集群图标吗?我不想将类似地震的图标用作标记的组图标。

提前致谢。

编辑

var marker;
var gm_map;
var markerArray = [];
var address = 'Sweden';
var geocoder = new google.maps.Geocoder();

geocoder.geocode({ 'address': address }, function(results, status) {
    if(status == google.maps.GeocoderStatus.OK) {
        gm_map.setCenter(results[0].geometry.location);
        gm_map.fitBounds(results[0].geometry.bounds);
    } else {
        alert("Kunde inte genomföra den geologiska inställningen på grund av följande fel:\n\n" + status);
    }
});



function initialize() {
    var marker, i;

    var locations = [["content", 59.328626, 13.485686, 1]];


    var options_googlemaps = {
        minZoom: 4,
        maxZoom: 18,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        streetViewControl: false
    }

    gm_map = new google.maps.Map(document.getElementById('google-maps'), options_googlemaps);


    var options_markerclusterer = {
        gridSize: 20,
        maxZoom: 18
    };

    var markerCluster = new MarkerClusterer(gm_map, [], options_markerclusterer, {zoomOnClick: false});
    google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
        alert('center of cluster: '+cluster.getCenter());
    });



    for(i = 0; i < locations.length; i++) {
        marker = new google.maps.Marker({
            position: new google.maps.LatLng(locations[i][1], locations[i][2]),
            map: gm_map
        });

        google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
                $('#toggle-photolist').fadeIn();
                $('#close-overlay').fadeIn();
                $('#list-photos').html(locations[i][0]);
            }
        })(marker, i));

        markerArray.push(marker);
        markerCluster.addMarkers(markerArray, true);
    }
}



$(document).ready(function() {

    // INITIERA GOOGLE MAPS
    initialize();

});

在职的zoomOnClick

var options_markerclusterer = {
    gridSize: 20,
    maxZoom: 18,
    zoomOnClick: false
};

var markerCluster = new MarkerClusterer(gm_map, [], options_markerclusterer);
4

2 回答 2

6

回复 1:

var markerCluster = new MarkerClusterer(map, markers ,{zoomOnClick: false});
google.maps.event.addListener(markerCluster,'clusterclick', 
    function(cluster){
      alert('center of cluster: '+cluster.getCenter())
    });

可以在此处找到集群的详细信息(您可以从中获得什么信息): https ://code.google.com/p/google-maps-utility-library-v3/source/browse/trunk/markerclusterer/ src/markerclusterer.js#801

您可以简单地在回调中显示一个中心设置为 cluster.getCenter() 的 infoWidow,您将全部设置好。

re2:查看更改图标的示例:http: //google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/examples/advanced_example.html

高温高压

于 2012-11-04T08:31:50.530 回答
0

你可以试试这个信息窗口,它对我来说非常好用!:)

    //MarkerCluster!!!
    var markerCluster = new MarkerClusterer(map, my_markers ,{zoomOnClick: false});
    google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
        var content = '';
        // Convert lat/long from cluster object to a usable MVCObject
        var info = new google.maps.MVCObject;
        info.set('position', cluster.center_);
        iw.close();
        iw.setContent('<h1>Hi this is my Info Window</h1>');
        iw.open(map, info);
    });

此处的工作示例:请参阅http://krisarnold.com/2010/10/15/adding-info-windows-to-map-clusters-with-google-maps-api-v3/

于 2013-12-19T16:27:53.913 回答