我有一些空间数据,其所有坐标都为 lat/lon 对(大约 10 位小数精度),它作为 WGS84 数据存储在数据库中。一些数据表示为多边形,这些多边形是一些较小的多边形,其边界被存储。然后我有一些点,我从中构建了一个线段(每个段中只有 2 个点),稍后我将其用于与多边形的相交测试。
我正在使用 SpatialIndex 来改进我的查询,因此我将所有多边形的包络插入树中(使用 QuadTree 和 STRtree 进行测试)。然后,我将两个点连接到一个线段中,并使用它的包络来查询树对于可能的交叉点。问题是我得到了几乎所有的多边形,这显然是错误的。为了让您了解我的数据的真实规模,我有大约 100 个多边形覆盖整个北美,每个线覆盖了单个多边形的很小一部分。理想情况下,我希望结果不超过 2 个多边形。
我正在使用 JTS 进行此计算,并且我知道它并不真正适合球形数据,因此您能否建议我使用另一个库/工具来实现所需的行为或可能的解决方法(例如,在使用 JTS 之前进行投影)?