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

typ*_*ror 5 google-maps draggable

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

Mik*_*ams 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
  }
Run Code Online (Sandbox Code Playgroud)

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