我想将InfoWindow放在地图窗口的谷歌地图中心。这可能吗?
不幸的是,像这样的InfoWindow选项中没有选项
var infowindow = new google.maps.InfoWindow({
positionMiddleOfWindow: true });
有人知道如何将InfoWindow放在地图窗口的中间吗?
答案 0 :(得分:3)
您可以获取地图中心的坐标,然后使用该位置创建信息窗
var lat = map.getCenter().lat();
var lng = map.getCenter().lng();
或将latLng整合在一起:
var latlng = map.getCenter();
答案 1 :(得分:3)
首先,将地图设置为标记的中心。您可以检查InfoWindow的domready事件,并向左和向下滚动地图,以便InfoWindow居中。
<强>的jQuery 强>
pin=new google.maps.LatLng(50.00, 50.00);
marker=new google.maps.Marker({
position:pin,
});
marker.setMap(map);
map.setCenter(marker.getPosition());
// The InfoWindow
myWindow = new google.maps.InfoWindow({
content:'<p id="myId">My InfoWindow</p>',
});
myWindow.open(map, marker);
google.maps.event.addListener(myWindow, 'domready', function() {
// Get the actual height of the InfoWindow
e = $('#myId').parent().parent().parent();
h = parseFloat(e.height());
w = parseFloat(e.width());
// Move the map a little to the left and down
map.panBy(-w/2, h/2)
});
答案 2 :(得分:1)
不要移动地图或计算高度或宽度,只需使用以下功能。这里的诀窍是在打开infoWindow之前延迟一段时间。我们应该设置缩放和设置中心并在打开infoWindow之前延迟300毫秒,谷歌地图api将在中心打开infoWindow它应该如何:
function OpenInfoWindowCentralized(map, infowindow, marker) {
map.setZoom(16);
map.setCenter(marker.getPosition());
setTimeout(function() {
infowindow.open(map, marker);
}, 300);
}
我希望它在某种程度上有所帮助......
干杯