google-maps - 在 Google Maps API V3 中获取非环绕 map 边界

标签 google-maps google-maps-api-3

如果您将谷歌地图放大,世界将开始水平重复。使用 .getBounds() 似乎返回了显示 map 图像边缘的经度。但我想获得当前现实世界 View 的最小和最大经度。

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

google-map-bounds1

另一个例子。我在这里寻找-180到+180 ...
google-map-bounds2

您可以在这里亲自尝试...
http://jsfiddle.net/spiderplant0/EBNYT/

(如果之前已经回答过这个问题,我深表歉意——我确实发现了一些类似的老问题,但似乎没有一个令人满意的答案)。

最佳答案

我今天遇到了同样的问题,但我想我终于弄明白了。

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

对于 map 环绕的第二种情况,我扩展了 google.maps.OverlayView()获取 google.maps.MapCanvasProjection目的。从那里你可以调用函数getWorldWidth() .

它将为您提供以像素为单位的世界宽度,然后您可以将其与 map 容器的宽度进行比较。如果您的容器更大,则您的 map 已环绕。

不知道该功能是否适用于此,但它有效。

关于google-maps - 在 Google Maps API V3 中获取非环绕 map 边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624760/

相关文章:

javascript - Windows 中的 Google map 绘制路线故障

javascript - 使用 Google Map API JS 无法在 intel xdk 中查看 google map

google-maps - 在 maps.google.com 上的缩放比在 Google Maps API v3 上更流畅

android - Android 中未显示谷歌地图

java - Android 找不到符号方法 getMap()

javascript - Google map - 将信息传递给事件监听器

javascript - 我可以在 Google Maps Styling API 上隐藏非海洋吗

javascript - 谷歌地图 API : Cannot read property '__e3_' of undefined

javascript - 获取谷歌地图中距离中心最近的 N 个标记

javascript - 如何使用 Ruby on Rails 将带有经纬度的标记保存到 mysql 数据库中