在Google地图中显示许多标记

19 javascript google-maps google-maps-markers

我有这张地图,想要显示一大堆标记.但是我需要找到一种以有序的方式展示这种方式的方法,而且......一些很酷的东西会很好.好的一点是谷歌地图有许多很酷的功能.但我不熟悉它的使用,很可能不知道组织标记和内容的很酷选项.我偶然发现了一个简洁的方法,我将在下面发布.

但是为了了解其他人发现/创建的解决方案,我的问题是:展示大量标记的很酷的方法是什么?

KJY*_*葉家仁 21

以下是MarkerClusterer for Google Maps V3的文档

结帐示例MarkerClusterer for Google Maps V3示例代码

它可以以更容易查看的方式对标记进行分组.

以下是使用MarkerClusterer JSFiddle演示的示例.

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;
Run Code Online (Sandbox Code Playgroud)

它看起来像分组的屏幕截图:

在此输入图像描述


小智 4

这是一个看起来非常漂亮但相对容易编码的示例,使我发布了此消息。

Google Map Slider,基于此实现。

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