Python 如何将地图平铺的x、y和缩放坐标转换为四叉树地图系统中的相应坐标?

Python 如何将地图平铺的x、y和缩放坐标转换为四叉树地图系统中的相应坐标?,python,google-maps,map,pseudocode,quadtree,Python,Google Maps,Map,Pseudocode,Quadtree,我正在尝试从web服务访问地图分幅 这些瓷砖是按一种顺序排列的。例如,在文件系统中,它们被组织为3/0/0/1/1/2.png,指的是从底部开始的分幅,在第三象限下,然后是第0象限,然后是第0象限,最后是第四象限 在我的应用程序中,要求我提供地图分幅的x、y和缩放值,我必须返回URL。如何将这些值转换为上述文件路径格式 我使用了这个python脚本,它声称可以将x、y和zoom值转换为google maps磁贴标识符,以某种方式可以使用该标识符访问给定的磁贴,但我不知道如何修改它以我想要的格式输

我正在尝试从web服务访问地图分幅

这些瓷砖是按一种顺序排列的。例如,在文件系统中,它们被组织为
3/0/0/1/1/2.png
,指的是从底部开始的分幅,在第三象限下,然后是第0象限,然后是第0象限,最后是第四象限

在我的应用程序中,要求我提供地图分幅的x、y和缩放值,我必须返回URL。如何将这些值转换为上述文件路径格式

我使用了这个python脚本,它声称可以将x、y和zoom值转换为google maps磁贴标识符,以某种方式可以使用该标识符访问给定的磁贴,但我不知道如何修改它以我想要的格式输出:

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)
下面是一个示例执行:

>>> quadtree(20,49,10)
'tqtsqrqt'
我希望发生的事情:

>>> quadtree(5,3,3)
    '2/1/3'
这显然不是我想要的输出,但它似乎是一个起点(我猜)


我将采用任何编码语言(或伪代码)提出解决方案或建议。

您可以分别用0、1、2和3替换“q”、“t”、“r”和“s”。

有一个小的PyPi软件包可以帮助转换。

它来自Github上的pyGeoTile存储库。

下面是一个用法示例:

from pygeotile.tile import Tile

tms_x, tms_y, zoom = 134494, 329369, 19
tile = Tile.from_tms(tms_x=tms_x, tms_y=tms_y, zoom=19)  # Tile Map Service (TMS) X Y and zoom

print('QuadTree: ', tile.quad_tree)  # QuadTree:  0302222310303211330
print('Google: ', tile.google)  # Google:  (134494, 194918)

这有帮助吗?@JohnBarça看起来不像是四叉树排列。XYZ to quadtree带有所有地方必应的C#代码:你试过用0123替换QTR吗?你能给出输入和输出的示例吗?