我正在尝试在 Google 地图上显示信息窗口。它显示完美,当您将鼠标悬停在标记上时,它会加载一个信息窗口,但地图会跳转以适合窗口。我不希望地图移动,而是信息窗口根据地图设置其位置。Booking.com 有类似的东西。
编辑:添加了我的代码
这是我的代码的精简版。我从AJAX 服务获取所有信息,并且该服务返回response
(它还包含更多信息)。
$.ajax({
url: 'URL',
dataType: "json",
type: "GET",
success: function(response) {
// delete all markers
clearOverlays();
var infowindow = new google.maps.InfoWindow();
for (var i = 0; i < response.length; i++) {
item = response[i];
var marker = new google.maps.Marker({
position: new google.maps.LatLng(item.lat, item.lng),
map: map,
url: item.detail_url
});
markersArray.push(marker);
// display infowindow
google.maps.event.addListener(marker, "mouseover", (function(marker, item) {
return function() {
infowindow.setOptions({
content: 'SOME CONTENT HERE FOR INFOWINDOW'
});
infowindow.open(map, marker);
}
})(marker, item));
// remove infowindow
google.maps.event.addListener(marker, 'mouseout', function() {
infowindow.close();
});
// marker click
google.maps.event.addListener(marker, 'click', function() {
window.location.href = marker.url;
});
}
}
});
正如您在下面看到的,第一张图片显示了显示在标记底部的信息窗口,而第二张图片显示了显示在标记顶部的信息窗口。地图不会移动,但 infowindow 会在地图边界内设置其位置。