停止拖动谷歌地图在视觉范围之外

时间:2009-09-24 18:59:31

标签: google-maps draggable

当您在谷歌地图上进行了相当大的缩小时,您可以将其拖动到足以使地图结束并变为灰色的空白颜色。地图似乎在水平轴上无缝重复,但不是垂直重复。我想知道是否有办法阻止地图在到达那个灰色区域时被拖动。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

This is a good example如何限制地图的范围。这有点像黑客,但它可能是你唯一真正的选择。

答案 1 :(得分:2)

只是为了好玩,另一种方法是通过在创建地图之前覆盖GMercatorProjection.prototype.tileCheckRange来告诉地图以与水平包裹相同的方式垂直包裹。

  GMercatorProjection.prototype.tileCheckRange=function(a,b,c){
    var d = 1<<b;
    if (a.y<0||a.y>=d) {
      a.y=a.y%d;
      if(a.y<0){
        a.y+=d;
      }
    }
    if(a.x<0||a.x>=d){
      a.x=a.x%d;
      if(a.x<0){
        a.x+=d;
      }
    }
    return true
  }

缺点是API不包含任何代码,用于使标记和折线垂直跳转到视图中的地图副本,它们只是水平跳转。一个完整的解决方案需要编写自己的代码来进行垂直跳转,并在整个过程中使用无界的GLatLng。