Google maps 获取谷歌地图上显示的总度数纬度/经度(world wraps时)-Javascript v3 API
我正在写一些在谷歌地图上聚类标记的代码。聚类算法依赖于知道用户当前可以看到多少纬度和经度,因为我将地图分成一个由Google maps 获取谷歌地图上显示的总度数纬度/经度(world wraps时)-Javascript v3 API,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我正在写一些在谷歌地图上聚类标记的代码。聚类算法依赖于知道用户当前可以看到多少纬度和经度,因为我将地图分成一个由n/map\u像素\u宽度xn/map\u像素\u高度正方形组成的网格,并且需要知道每个正方形中的纬度/经度,以知道每个标记点属于哪个正方形 在地图不包裹的正常情况下,使用Google map对象上的getBounds()并进行计算以计算返回的东北点和西南点之间的纬度和纵向距离相对容易。我遇到的问题是地图被缩小到覆盖整个地球1次的程度。例如,我可以缩小地图,使整个地球“平铺”5次,相当
n/map\u像素\u宽度
xn/map\u像素\u高度
正方形组成的网格,并且需要知道每个正方形中的纬度/经度,以知道每个标记点属于哪个正方形
在地图不包裹的正常情况下,使用Google map对象上的getBounds()
并进行计算以计算返回的东北点和西南点之间的纬度和纵向距离相对容易。我遇到的问题是地图被缩小到覆盖整个地球1次的程度。例如,我可以缩小地图,使整个地球“平铺”5次,相当于360*5=1800
纵向角度和,但是调用getBounds()
不再提供有用的信息:
m、 getBounds().getNorthEast().lat()
88.31833020528785
m、 getBounds().getNorthEast().lng()
180
m、 getBounds().getSouthWest().lat()
-88.5485785544835
m、 getBounds().getSouthWest().lng()
-180
基本上,经度getBounds()
报告只是整个地球的最小值和最大值,而这并没有说明地球重复了多少次。虽然谷歌地图不会垂直平铺地图(如果放大到足够远,它只会插入灰色的文件空间),但从概念上讲,我也有同样的问题——我需要知道垂直区域会占用多少总空间度
有没有一种方法可以获得可见纵向角度的总数?因此,基于另一个问题,我找到了一种(黑客)方法来解决这个问题。基本上,Google Maps类有一个返回对象的getProjection()
方法,该方法又有一个getWorldWidth()
方法,该方法返回当前缩放级别的世界宽度(以像素为单位)。因此,解决问题的方法是: