根据缩放平移地图(如何进行数学运算)

时间:2014-09-22 11:57:59

标签: javascript google-maps math

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);

1 个答案:

答案 0 :(得分:2)

您可以在功能结束时致电map.panBy

来自docs

  

按给定距离(以像素为单位)更改地图中心。如果距离小于地图的宽度和高度,则过渡将平滑地动画。请注意,地图坐标系从西向东(对于x值)和从北向南(对于y值)增加。

使用panBy,您不必考虑缩放级别,只需按像素进行平移。