1

我有一个包含 36.000 个非重叠多边形(城市边界)的巨大 shapefile。我想轻松确定给定纬度/经度落入的多边形。鉴于它必须具有极高的计算效率,最好的方法是什么?

我正在考虑创建一个查找表(tilex、tiley、polygone_id),其中 tilex 和 tiley 是缩放级别 21 或 22 的图块标识符。是的,在我的应用程序中使用图块编号和平面投影的精度不足是可以接受的。

我宁愿不使用 postgres 的 GIS 扩展,并且可以使用将运行 2 天以生成所有 INSERT 语句的程序。

4

2 回答 2

1

将语句插入什么?您使用的是不同的空间数据库还是其他数据库?如果你愿意使用 python、C 或 Java,你可以使用 shapely、GEOS 或 JTS 来编写一些自定义代码来做你想做的事情。

在 python 中使用这个库打开 shapefile http://indiemaps.com/blog/2008/03/easy-shapefile-loading-in-python/

然后匀称 http://gispython.org/shapely/docs/1.0/manual.html#contains 来测试收容

对于 Java,使用还包括 JTS 的 Geotools。

于 2010-05-06T02:01:25.067 回答
0

听起来你想要一个BSP 树。基本上,您将区域划分为越来越小的多边形,就像树一样。

优点是您以后不需要将坐标与每个多边形进行比较。这使它成为找到正确多边形的一种非常快速的方法。

于 2010-05-05T13:15:31.770 回答