我正在寻找一个使用Apache Ignite的示例,其中我们有一堆地理点,比如城市中的示例位置,我们对半径内某个点附近的点进行查询。
我只在以下位置找到了多边形搜索的示例:https://dzone.com/articles/geospatial-queries-with-apachereg-ignite
谢谢你,亲切的路易斯·奥斯卡
发布于 2018-08-13 14:50:51
Ignite使用Java Topology Suite支持空间查询。据我所知,JTS不支持圆形几何。
但是你仍然可以用多边形来近似一个圆。如果您需要的正是适合圆的点,您可以查询位于外切正多边形中的点,然后过滤掉距离大于指定半径的点。过滤可以在查询之外的代码中执行。
发布于 2018-09-02 16:02:22
如上所述,您可以使用“大矩形或正方形”,即包含您的圆的较小矩形。然后使用isWithinDistance(...)遍历结果方法来过滤矩形内的点,而不是圆内的点。
然而,由于ignite使用的是JTS,这是一个平面表示,根据我的测试,您不能使用球面(或椭球)投影(如WGS84)进行精确搜索,并且许多结果将是错误的。最有可能的情况是多边形搜索不准确,isWithinDistance不会正确过滤,除非您要搜索距离原始点不到10米的东西。
https://stackoverflow.com/questions/51804153
复制相似问题