需要确定我当前位置属于哪个多边形

时间:2013-01-07 22:56:09

标签: python google-app-engine geolocation geospatial

我即将开始一项旨在检索当地地质信息的IOS项目。我计划使用Google App Engine作为后端。我的问题是并不是所有可能需要的Python库,例如Shapely,都可以在App Engine上使用,因为它们依赖于低级C库。所以我认为战略预处理可能是最佳选择。

我将使用编码有关地质构造信息的KML数据文件。对于每个州,都有一个覆盖状态的多边形拼凑而成,每个多边形(Google Earth中的颜色编码)对应于​​地质构造。例如nhgeol.kml

在另一个项目中,我使用了Python GeoModel库,它与App Engine很好地配合使用。但对于该项目,我的数据由离散点组成,GeoModel非常适合预处理这类数据,因此您可以进行“近距离提取”。

在这个项目中,我想知道,鉴于我目前的位置,我所处的多边形。一种方法是预先计算一个geocell网格,确定每个单元所在的多边形。然后这个问题会减少到GeoModel可以处理的那个。但我不觉得这有多可行。

一旦我知道我所处的多边形,我就会指向有关特定地质构造的信息。这就是我要向最终用户呈现的内容。

如果有些人会建议这种方法是否有意义,或者我是否遗漏了一些更直截了当的东西,我会非常感激。

1 个答案:

答案 0 :(得分:1)

我不确切知道你想要使用的Shapely的哪些功能,但是对于处理多边形,你可以使用Sympy,它完全用Python编写。请特别查看Geometry Module和方法encloses_point