【问题标题】:Showing many markers in Google Maps在 Google 地图中显示许多标记
【发布时间】:2011-03-23 23:56:03
【问题描述】:

我有这张地图,想显示一大堆标记。但我需要找到一种有条不紊地展示这一点的方法,而且……cool 会很好。好消息是谷歌地图有很多很酷的功能。但我不熟悉它的使用,很可能不知道组织标记和内容的酷选项。我只是偶然发现了一种巧妙的方法,我将在下面发布。

但是为了了解其他人已经找到/创建的解决方案,我的问题是:显示一大组标记的酷方法是什么?

【问题讨论】:

标签: javascript google-maps google-maps-markers


【解决方案1】:

这是MarkerClusterer for Google Maps V3的文档

结帐示例MarkerClusterer for Google Maps V3 Sample Codes

它可以以更易于查看的方式对您的标记进行分组。

这里是一个使用 MarkerClusterer JSFiddle Demo.的例子

var map = null;
var markerArray = []; //create a global array to store markers
var myPoints = [[43.65654, -79.90138, 'ABC'],[43.91892, -78.89231, 'DEF'],[43.82589, -79.10040, 'GHA']];  //create global array to store points

function initialize() {
    var myOptions = {
        zoom: 8,
        center: new google.maps.LatLng(43.907787, -79.359741),
        mapTypeControl: true,
        mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        },
        navigationControl: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var mcOptions = {
        gridSize: 50,
        maxZoom: 15
    };
    var mc = new MarkerClusterer(map, [], mcOptions);

    google.maps.event.addListener(map, 'click', function() {
        infowindow.close();
    });

    // Add markers to the map
    // Set up markers based on the number of elements within the myPoints array
    for(var i=0; i<myPoints.length; i++){
         createMarker(new google.maps.LatLng(myPoints[i][0], myPoints[i][1]), myPoints[i][2]);
    }

    mc.addMarkers(markerArray , true);
}

var infowindow = new google.maps.InfoWindow({
    size: new google.maps.Size(150, 50)
});

function createMarker(latlng, html) {
    var contentString = html;
    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        icon: 'http://www.kjftw.com/sandbox/gmap/images/icons/numeric/red10.png',
        zIndex: Math.round(latlng.lat() * -100000) << 5
    });

    marker.setAnimation(google.maps.Animation.BOUNCE);

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(contentString);
        infowindow.open(map, marker);
    });

    markerArray.push(marker); //push local var marker into global array
}

window.onload = initialize;

分组后的截图:

【讨论】:

【解决方案2】:

这是让我发布此消息的非常漂亮但相对容易编码的示例。

Google Map Slider,基于this implementation.

功能:当您将鼠标悬停在外部区域上时会自动滚动,其中包含有关地图内容的详细信息。允许您发布和显示更多信息,但仍将其与地图相关联。

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多