谷歌地图平移了地球的“边缘”

时间:2012-05-14 18:39:05

标签: javascript google-maps

有没有其他人发现谷歌地图(现在)允许你超越两极的问题。它曾经停在极点,对吧?

我正在处理的网站每次用户平移或缩放地图时都会在我们的服务器上执行基于位置的查询。这会导致错误,因为用户在地图边缘平移时触发的查询是无意义的。

现在我正在处理边缘情况,可以说,在服务器端,但它在客户端不是一个非常好的用户体验。有没有人有防止过度淘选的解决方案?

由于

截图: edge of the earth!

2 个答案:

答案 0 :(得分:2)

避免灰色区域的一种方法是限制用户的平移,遵循此示例“范围限制”;但是,它是为第2版编写的。

http://econym.org.uk/gmap/range.htm

在版本3 http://jsfiddle.net/44e6y/9/中使用它是直截了当的,但有一些缺点:

  • 它依赖于地图中心位于一个方框内,所以
  • 放大将进一步限制可视区域(如果您对两极不感兴趣,则无关紧要,但是您可以使用各种变焦的LatLngBounds数组,这对于看到格陵兰变得必不可少)
  • 作为最后一点的结果,我强制JSFiddle iframe大小的最小缩放为2。如果地图占据整个屏幕,则最小缩放可能会更高,以避免显示灰色区域。一般来说,分钟越高。缩放,行为越可预测。

答案 1 :(得分:0)

由于我遇到了同样的问题并且接受的目标只是缩放2级(其他缩放级别在示例中失败),我去尝试找到一个公式,但没有成功,所以我硬编码前8个缩放级别的值。显然,这可以扩展到一个完全可行的例子,但我认为这对99%的案例来说已经足够了。

JSFiddle here

我还添加了另一个监听器,以使其更好用。

google.maps.event.addListener(map, 'zoom_changed', function() {
      checkBounds();});