繁体   English   中英

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

[英]Pan the map depending on the zoom (how to do the 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);

您可以在函数末尾调用map.panBy

文档

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM