当您在 google 地图上拉得很远时,您可以拖动它,使地图结束并变成空白的灰色。地图似乎在水平轴上无缝重复,但不是垂直重复。我想知道是否有办法防止地图在到达那个灰色区域时被拖动。有任何想法吗?
问问题
3617 次
2 回答
2
这是如何限制地图范围的一个很好的例子。这有点像黑客,但它可能是你唯一真正的选择。
于 2009-09-24T21:30:13.923 回答
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 不包含任何代码来使标记和折线垂直跳转到视图中的地图副本,它们只水平跳转。一个完整的解决方案需要编写自己的代码来进行垂直跳跃,并在整个过程中使用无界的 GLatLngs。
于 2009-09-25T07:52:17.133 回答