2012-05-11 170 views
9

Python中是否有任何包允许在球体表面上对经度/纬度进行类似kdtree的操作? (这需要适当地考虑球面距离以及经度中的环绕)。KDTree经度/纬度

回答

6

二叉搜索树无法处理设计中极坐标表示的环绕。您可能需要将坐标转换为3D笛卡尔空间,然后应用您最喜爱的搜索算法,例如kD-Tree,Octree等。

或者,如果您可以将坐标的输入范围限制为表面,您可以将适当的地图投影应用到该区域,即不会过多扭曲区域形状的区域,并在这些没有环绕的笛卡尔地图坐标上应用标准二叉搜索树。

+1

转换到三维笛卡尔空间是要走的路 - 谢谢! – astrofrog