Java 使用Neo4j Spatial查找节点

Java 使用Neo4j Spatial查找节点,java,neo4j,neo4j-spatial,Java,Neo4j,Neo4j Spatial,使用Neo4j Spatial core java api,我已经能够整合代码,允许我查找距离给定点特定距离内的节点。但是,我希望能够根据节点的汇水半径包含节点 例如,如果我位于我所在地区或更远地区的比萨饼公司可以向我提供的任何给定点(给定他们自己的交付半径) 关于如何使用Neo4j Spatial实现这一点,您有什么想法吗?与其将比萨饼公司建模为地图上的简单点,不如将其配送半径建模为相关的几何图形?这将使您能够更好地控制传递形状(例如,不传递到孤岛) 如果将交付区域建模为WKT多边形,则可以在

使用Neo4j Spatial core java api,我已经能够整合代码,允许我查找距离给定点特定距离内的节点。但是,我希望能够根据节点的汇水半径包含节点

例如,如果我位于我所在地区或更远地区的比萨饼公司可以向我提供的任何给定点(给定他们自己的交付半径)


关于如何使用Neo4j Spatial实现这一点,您有什么想法吗?

与其将比萨饼公司建模为地图上的简单点,不如将其配送半径建模为相关的几何图形?这将使您能够更好地控制传递形状(例如,不传递到孤岛)

如果将交付区域建模为WKT多边形,则可以在以下表单中执行搜索:

START loc = node:idx_bounding_location(withinDistance:[<lat>,<lon>,0.0])
MATCH (pz:Pizza:Company)-[:DELIVERY_AREA]->loc
RETURN pz
START loc=node:idx\u边界位置(带实例:[,、0.0])
匹配(pz:Pizza:Company)-[:配送区]->loc
返回pz

在这个查询中,lat和lon值是需要送比萨饼的人的位置。

真棒回答干杯!如果它有一个半径,你知道如何最好地建模吗?你能把WKT多边形做成一个圆吗?我不知道你会如何构建形状,但是Neo4J空间文档说
同样,几何体的子类:点、线串、多边形和其他都来自JTS
,这表明支持所有几何体类型。你想要的是圆串(x1-y1,x2-y2,x3-y3,x4-y4,x1-y1),我认为有一些数学方法可以让你从中心点和半径生成坐标。