我有一個谷歌地圖使用有一個位置索引在它下面,因此用戶可以點擊一個位置名稱和該地點的信息窗口在地圖上彈出。谷歌地圖標記集羣 - 如何使用infoWindow與位置索引
我也使用Marker Clusterer v3。目前,點擊索引中的項目會導致集羣中項目的infoWindow在地圖左上角彈出。
如何讓infoWindow在正確的位置彈出?
這裏是我使用至今代碼:
var gmarkers = [];
var map;
var infoWindow;
(function($) {
'use strict';
$(function() {
initGmap();
var openLink = $('.members-list span');
$(openLink).click(function() {
var index = $(this).data('markerIndex');
infoWindow.setContent(gmarkers[index].infWinCont);
infoWindow.open(map, gmarkers[index]);
});
});
})(jQuery);
function initGmap()
{
var mapCanvas = document.getElementById('map');
var mapLatlng = new google.maps.LatLng(50.5692828655824, 10.01953125);
var mapOptions = {
center: mapLatlng,
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(mapCanvas, mapOptions);
map.minZoom = 3;
infoWindow = new google.maps.InfoWindow();
// mapData and mapDataCount are loaded from a separate file
for (var i = 0; i < mapDataCount; i++) {
var latLng = new google.maps.LatLng(mapData[i].lat, mapData[i].lon);
var marker = new google.maps.Marker({
position: latLng,
map: map,
infWinCont: mapData[i].infWin,
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infoWindow.setContent(marker.infWinCont);
infoWindow.open(map, marker);
};
})(marker, i));
gmarkers.push(marker);
}
var markerCluster = new MarkerClusterer(map, gmarkers);
}
你可以做'infoWindow.s我們可以使用'etPosition(marker.getPosition())'或'infoWindow.setPosition(gmarkers [index] .getPosition())' – duncan
@duncan - 'infoWindow.setPosition(gmarkers [index] .getPosition()謝謝。如果您將其添加爲答案,我會將其標記爲已接受。 – EpF