1

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

我已经从 OSM 摄取了许多地理点,并希望进行 DWithin 查询。

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

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

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

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

谢谢!

示例点

4

1 回答 1

1

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

目前,最好的办法是使用 geotools GeodeticCalculator类来创建一个覆盖查询区域的多边形,并在相交过滤器中使用它。或者,您可以使用大地测量计算器对结果进行后过滤。

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

于 2018-04-17T15:11:33.823 回答