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)
它看起来像分组的屏幕截图:
