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

时间:2018-04-17 13:10:00

标签: geoserver geotools 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点)。 但是几何学给了我比预期更多的分数。 此查询将返回地图中的所有点(1,2,3,4,5,6)。

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

那么,有没有办法让DWITHIN查询在几何上正确地(以测地线方式)工作?

谢谢!

example points

1 个答案:

答案 0 :(得分:1)

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

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

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