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