http://jsfiddle.net/bor9zuhr/2/
这个小提琴是我的问题的一个例子。我在地图元素的顶部有导航。现在,当您单击标记时,地图将被平移到标记的坐标,并且当信息窗口足够大时,信息窗口的顶部很可能无法读取。
我想要的是将地图平移到标记上方的位置,以便信息窗口降低,并且不会被导航遮挡。理想情况下,它会落在可见区域的中间。
问题在于,当地图放大到远处时,我需要将其平移的数量远远小于放大远的数量。而我似乎无法正确地计算数学。
这是处理平移的代码的一部分:
infowindow.open(map, marker);
var K = 0; // this should be something depending on the zoom level
var lat = marker.getPosition().lat() + K;
var lng = marker.getPosition().lng();
var newCenter = new google.maps.LatLng(lat, lng);
map.panTo(newCenter);
答案 0 :(得分:2)
您可以在功能结束时致电map.panBy
。
来自docs:
按给定距离(以像素为单位)更改地图中心。如果距离小于地图的宽度和高度,则过渡将平滑地动画。请注意,地图坐标系从西向东(对于x值)和从北向南(对于y值)增加。
使用panBy,您不必考虑缩放级别,只需按像素进行平移。