geomesa 是否支持测地线 DWithin 查询?

Is there support for geodesic DWithin query in geomesa?

我正在努力处理 geomesa 中的 DWithin 查询。

我从 OSM 中提取了很多地理点,想进行 DWithin 查询。

我有如下查询代码: val query = new Query("t1", ECQL.toFilter("DWITHIN(geo_point, POINT (14.453943 60.499611), 5000, meters)"))

我希望 geomesa 回答距离 POINT (14.453943 60.499611) 不远然后 5000 米的点(地图上的点 2、3、4)。 但是 geomesa 给了我比预期更多的分数。 此查询返回地图中的所有点 (1,2,3,4,5,6)。

似乎 geomesa 无法正确过滤掉 DWithin 查询的点,因为它不支持测地线距离检查。

那么,有什么方法可以使 DWITHIN 查询与 geomesa 一起正常工作(以测地线方式)?

谢谢!

GeoMesa 使用 geotools dwithin 过滤器功能来进行此类查询。不幸的是,该函数仅支持原生距离(即 WGS84 中的度数)。

目前,最好的办法是使用地理工具 GeodeticCalculator class 创建一个覆盖查询区域的多边形并将其用于相交过滤器。或者,您可以post-使用大地测量计算器过滤结果。

展望未来,我已经创建了一张票来在 GeoMesa 中更好地处理这个用例:https://geomesa.atlassian.net/browse/GEOMESA-2263