使用neo4j中的纬度和经度搜索特定半径内的所有节点

使用neo4j中的纬度和经度搜索特定半径内的所有节点,neo4j,Neo4j,假设用户的地理位置处于启用状态。根据当前位置(lat/long),他/她提出了获取0到100km之间所有节点的请求。在Neo4j 3.4.x中,我们介绍了空间数据类型和空间属性索引 您应该查看和文档中的部分 假设您正在使用WGS-84坐标参考系(CRS)将经度/纬度坐标保存为节点上的点属性 在节点上设置点特性的示例: CREATE (l:Location {coords:point({ longitude: 56.7, latitude: 12.78 })}) 您应该在:Location(co

假设用户的地理位置处于启用状态。根据当前位置(lat/long),他/她提出了获取0到100km之间所有节点的请求。在Neo4j 3.4.x中,我们介绍了空间数据类型和空间属性索引

您应该查看和文档中的部分

假设您正在使用WGS-84坐标参考系(CRS)将经度/纬度坐标保存为节点上的点属性

在节点上设置点特性的示例:

CREATE (l:Location {coords:point({ longitude: 56.7, latitude: 12.78 })})
您应该在:Location(coords)上有一个索引,以便能够

例如,提供了$longitude和$latitude以及$radius输入,用于查找给定$radiusKM内的所有位置:

MATCH (l:Location)
WHERE distance(l.coords, point({longitude:$longitude, latitude:$latitude})) <= $radiusKM * 1000
RETURN l
匹配(l:位置)
其中距离(l坐标,点({经度:$经度,纬度:$纬度}))