查询地理距离时Neo4j返回计算字段

查询地理距离时Neo4j返回计算字段,neo4j,Neo4j,几周前,我开始使用Neo4j,我只想返回数据库中的所有节点(所有节点都包含一个属性,其位置为经度/纬度格式),这些节点按距离某个地理点(特别是我的当前位置)的距离排序 这是所需的计算: dlon = lon2 - lon1 dlat = lat2 - lat1 a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2 c = 2 * atan2( sqrt(a), sqrt(1-a) ) d = R * c (where

几周前,我开始使用Neo4j,我只想返回数据库中的所有节点(所有节点都包含一个属性,其位置为经度/纬度格式),这些节点按距离某个地理点(特别是我的当前位置)的距离排序

这是所需的计算:

dlon = lon2 - lon1 
dlat = lat2 - lat1 
a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2 
c = 2 * atan2( sqrt(a), sqrt(1-a) ) 
d = R * c (where R is the radius of the Earth)
我已经阅读了文档,但找不到如何像在其他RDBMS中那样存储执行过程,我非常确定我不能在查询中执行SIN或COS操作


有什么方法可以对数据库执行此查询并获取有序数据,而不是获取所有结果并逐个进行数学运算并手动返回有序数据?

Cypher有一个
haversin
函数来计算shere表面的距离,请参见这正是我需要的