如何分隔出具有相同坐标的标记?
我的代码:
function initialize() {
var tasks = [
[ 'title1', 44.833000, -0.567000, ],
[ 'title2', 43.617000, 1.450000,],
[ 'title3', 43.617000, 1.450000, ],
];
var mapOptions = {zoom: 6, center: new google.maps.LatLng(46.8, 2),}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < tasks.length; i++) {
var latlng = new google.maps.LatLng(tasks[i][2], tasks[i][3]);
var existingMarker = tasks[i];
console.log(existingMarker)
marker = new google.maps.Marker({ position: latlng, title: tasks[i][1], map: map });
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() { infowindow.setContent(tasks[i][0]); infowindow.open(map, marker);} })(marker, i));
}
}
我该怎么办? (我删除了一些示例代码)
答案 0 :(得分:2)
你需要:
将标记添加到MarkerClusterer(并格式化代码,以便更容易阅读......)。
function createMarker(latlng,text) {
var marker = new google.maps.Marker({
position: latlng,
map: map
});
///get array of markers currently in cluster
var allMarkers = mc.getMarkers();
//check to see if any of the existing markers match the latlng of the new marker
if (allMarkers.length != 0) {
for (i=0; i < allMarkers.length; i++) {
var existingMarker = allMarkers[i];
var pos = existingMarker.getPosition();
if (latlng.equals(pos)) {
text = text + " & " + content[i];
}
}
}
google.maps.event.addListener(marker, 'click', function() {
infowindow.close();
infowindow.setContent(text);
infowindow.open(map,marker);
});
mc.addMarker(marker);
return marker;
}