|| apoc.spatial.sortByDistance - APOC 核心文档 - Neo4j 文档

apoc.spatial.sortByDistance

详细信息

语法

apoc.spatial.sortByDistance(paths) :: (path, distance)

描述

根据 NODE 值中的经纬度值,按其距离总和对给定 PATH 值集合进行排序。

输入参数

名称

类型

描述

paths

LIST<PATH>

根据节点中的经纬度值计算的总距离进行排序的路径列表。

返回参数

名称

类型

描述

path

PATH

排序后的路径结果。

distance

FLOAT

节点之间的距离。

使用示例

本节中的示例基于以下示例图

CREATE (bruges:City {name:"bruges", latitude: 51.2605829, longitude: 3.0817189})
CREATE (brussels:City {name:"brussels", latitude: 50.854954, longitude: 4.3051786})
CREATE (paris:City {name:"paris", latitude: 48.8588376, longitude: 2.2773455})
CREATE (dresden:City {name:"dresden", latitude: 51.0767496, longitude: 13.6321595})
MERGE (bruges)-[:NEXT]->(brussels)
MERGE (brussels)-[:NEXT]->(dresden)
MERGE (brussels)-[:NEXT]->(paris)
MERGE (bruges)-[:NEXT]->(paris)
MERGE (paris)-[:NEXT]->(dresden);
MATCH (a:City {name:'bruges'}), (b:City {name:'dresden'})
MATCH p=(a)-[*]->(b)
WITH collect(p) as paths
CALL apoc.spatial.sortByDistance(paths)
YIELD path, distance
RETURN path, distance;
结果
path distance

(:City {name: "bruges", latitude: 51.2605829, longitude: 3.0817189})-[:NEXT]→(:City {name: "brussels", latitude: 50.854954, longitude: 4.3051786})- [:NEXT]→(:City {name: "dresden", latitude: 51.0767496, longitude: 13.6321595})

749.8210570020021

(:City {name: "bruges", latitude: 51.2605829, longitude: 3.0817189})-[:NEXT]→(:City {name: "paris", latitude: 48.8588376, longitude: 2.2773455})-[: NEXT]→(:City {name: "dresden", latitude: 51.0767496, longitude: 13.6321595})

1120.8512195180913

(:City {name: "bruges", latitude: 51.2605829, longitude: 3.0817189})-[:NEXT]→(:City {name: "brussels", latitude: 50.854954, longitude: 4.3051786})- [:NEXT]→(:City {name: "paris", latitude: 48.8588376, longitude: 2.2773455})-[:NEXT]→(:City {name: "dresden", latitude: 51.0767496, longitude: 13.632 1595})

1209.661314133324

© . This site is unofficial and not affiliated with Neo4j, Inc.