很可能是它的左上角瓷砖。当您想要细分地图时,使用四叉树可能很有用,因此在缩放级别 1 处有 4 个图块。寻找 bing 地图四键解决方案:http: //msdn.microsoft.com/en-us/library/bb259689 .aspx。但谷歌地图使用 ax,y 对瓷砖:如何在不指定缩放级别(或 LevelOfDetails)的情况下获得 Tile Count、Tile X、Tile Y 详细信息?. 在缩放级别 0 中,在缩放级别 1 处有 1 个图块,您可以在两侧看到 4 个图块和一些图块,等等。链接: http: //facstaff.unca.edu/mcmcclur/GoogleMaps/Projections/GoogleCoords.html,http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection。
更新:要从 x,y 对中获取边界框,请使用这样的矩形 x,x+1,y,y+1:
TileProvider 方法 getTile - 需要将 x 和 y 转换为 lat/long。但您也可以在 Bing 和 Google 地图之间进行转换。替换四键值如下:0=q, 1=r, 2=t, 3=s (?), 也可能是 0=q, 1=r, 2=s, 3=t (?) 并将其附加到网址http://kh.google.com/kh?v=3&;t=quadkey。资料来源:http ://dzone.com/snippets/converting-between-2-google 。
更新 2:网址http://kh.google.com已失效,但您仍然可以使用以下代码段:
def quadtree(x,y, zoom):
out = []
m = {(0,0):'q', (0,1):'t', (1,0):'r', (1,1):'s'}
for i in range(17-zoom):
x, rx = divmod(x, 2)
y, ry = divmod(y, 2)
out.insert(0, m[(rx,ry)])
return 't' + ''.join(out)
def xyzoom(quad):
x, y, z = 0, 0, 17
m = {'q':(0,0), 't':(0,1), 'r':(1,0), 's':(1,1)}
for c in quad[1:]:
x = x*2 + m[c][0]
y = y*2 + m[c][1]
z -= 1
return x, y, z
在地图中,曲线从右上角开始到右下角到左下角到左上角。因此它看起来像一个倒U形?也许我错了,它是左上角,右上角,左下角,右下角?然后是Z形。那么 lat,lng 对在左上角的瓷砖中吗?
为了得到边界框,我假设 long 和 lat 以秒为单位。
首先,您需要以秒为单位计算矩形的宽度。一秒是赤道上的 30.9 米,对于其他纬度,乘以 cos(lat),因此要将其转换为秒,请执行以下操作:
double widthSeconds = meters / (30.9 * cos(lat));
其次,知道了盒子的中心,就很容易计算出角的坐标:
1 围绕地理坐标的边界框