У меня есть карта Google, которая использует индекс местоположения под ней, поэтому пользователи могут щелкнуть имя местоположения, и на карте появится информационное окно для этого местоположения.
Я также использую Marker Clusterer v3. В настоящий момент щелчок по элементу в индексе вызывает всплывающее окно 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.setPosition(marker.getPosition())
илиinfoWindow.setPosition(gmarkers[index].getPosition())
- person duncan   schedule 27.04.2016infoWindow.setPosition(gmarkers[index].getPosition())
работает именно так, как я хочу, спасибо. Если вы добавите это как ответ, я отмечу его как принятый. - person EpF   schedule 28.04.2016