在Google Maps API V3中获取非包装地图边界

spi*_*nt0 5 google-maps google-maps-api-3

如果你缩放谷歌地图,世界将开始水平重复.使用.getBounds()似乎返回显示的地图图像边缘的经度.但是我希望获得当前现实世界观的最小和最大经度.

例如,在此图像中.getBounds()表示经度介于116和37度之间(宽度为-79度!).我正在寻找的范围是-244到+37.(甚至是-180到+37,因为这是世界上可以在地图中心看到的极端情况.)

谷歌地图,bounds1

另一个例子.在这里,我正在寻找-180到+180 ...... 谷歌地图,bounds2

你可以在这里尝试一下...... http://jsfiddle.net/spiderplant0/EBNYT/

(如果之前已经回答道歉 - 我确实找到了一些旧的类似问题,但似乎没有一个得到满意的答案).

小智 2

我今天遇到了同样的问题,但我想我终于解决了。

在上面的第一个场景中,您可以使用map.getBounds().toSpan()来获取经度的宽度......只要地图没有环绕。

对于地图环绕的第二种情况,我扩展了google.maps.OverlayView()来获取google.maps.MapCanvasProjection对象。从那里您可以调用该函数getWorldWidth()

它将为您提供以像素为单位的世界宽度,然后您可以将其与地图容器的宽度进行比较。如果你的容器更大,你的地图就会环绕起来。

不知道该功能是否适用于此,但它可以工作。