我正在寻找一个使用Apache Ignite的示例,其中有很多地理位置,例如城市中的示例位置,我们查询半径内某个点附近的点。
我仅在以下位置找到POLYGON搜索的示例: https://dzone.com/articles/geospatial-queries-with-apachereg-ignite
谢谢,好心 路易斯·奥斯卡
答案 0 :(得分:1)
Ignite使用Java Topology Suite支持空间查询。据我所知,JTS不支持圆形几何。
但是您仍然可以逼近带有多边形的圆。如果您确切需要适合圆形的点,则可以查询位于外接正多边形中的点,然后过滤掉距离大于指定半径的点。过滤可以在查询之外的代码中执行。
答案 1 :(得分:0)
如上所述,您可以使用“较大的矩形或正方形”,即包含您的圆的较小的矩形。然后使用isWithinDistance(...)方法从原始点循环遍历结果,以过滤矩形内而不是圆内的点。
但是,根据我的测试,由于ignite使用JTS(这是一种平面表示形式),您无法使用球形(或椭圆形)投影(例如WGS84)进行精确搜索,并且许多结果都是错误的。除非您要搜索距原始点不到10米的物体,否则很可能多边形搜索不准确,并且isWithinDistance不能正确过滤。