Java快速查找一个点是否落在一个国家(多边形)的方法

use*_*856 5 java geometry jts geotools

我希望有人能指出我正确的方向。

我们有数百万条记录流过/流过,我们需要快速查找以确定它们属于哪个国家/地区多边形。

有人可以推荐一种完整的基于 JAVA 的方法来做到这一点。据我所知,我会使用 JTS 和/或 geotools 吗?我的想法是采用所有国家多边形,并可能像使用鱼网或网格一样将它们分开,使它们更小以获得更好的性能。然后,我会将这些加载到基于 Java 的内存空间索引中……当记录流过时,我会查找 Java 空间索引以查看它们属于哪个国家/地区。(也许就像一个空间特征集合)。

对于大量数据,这种方法听起来合理吗?从Java的角度来看,我将如何实现这一点?这只是使用 JTS 和/或 Geotools 吗?我会创建什么类型的索引。(加载后多边形数据将是静态的,因为它只包含国家边界)

从阅读 geotools 文档很难破译空间索引以及它的性能如何以及是否应该使用它?

任何帮助或指导将不胜感激。

谢谢

Stu*_*aie 3

您要解决的问题称为多边形中的点问题。之前的答案给出了一个使用 JTS(Java 拓扑套件)测试一个点是否在一个多边形中的示例。

我不知道对于多个多边形是否有更有效的解决方案。您可能想要依次测试多边形,并按距您的点的距离排序。