我正在使用几何中的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查询在几何上正确地(以测地线方式)工作?
谢谢!
答案 0 :(得分:1)
GeoMesa使用geotools dwithin过滤器函数进行此类查询。不幸的是,该函数仅支持原始距离(即WGS84中的度数)。
目前,最好的办法是使用geotools GeodeticCalculator类创建覆盖查询区域的多边形,并在交叉过滤器中使用它。或者,您可以使用大地测量计算器对结果进行后期过滤。
展望未来,我已经在GeoMesa中创建了一张更好地处理此用例的票证:https://geomesa.atlassian.net/browse/GEOMESA-2263