如何返回neo4j

时间:2018-03-22 14:30:16

标签: neo4j cypher coordinates nodes

我正在研究在Tableau中可视化neo4j图形数据,但Tableau要求在将数据绘制到图形中的节点之前将坐标包含在数据中。

通过坐标,我只是指一个x& y值,以便我可以在2d图上绘制节点和边。没有任何地理/地址要求

有没有办法使用cypher返回结果集中的坐标?

的内容
MATCH (j:Job)-[:PARENT_OF]->(w:Workflow)
RETURN j, coords(j), w, coords(w)

没有什么显而易见的,我可以看到已经搜索过网络以及stackoverflow。我搜索了APOC procedures这样的术语,例如"空间","坐标"和"位置"但到目前为止,我没有快乐。

我正在使用neo4j社区3.3.1

编辑:看howto graph visualization step by step这表明你需要使用外部库来实现这一点,而不是从neo4j获取信息。我很欣赏可视化是流动的并且可以移动但是我会想到,鉴于neo4j服务器已经对地理空间算法进行了碾压,它可能会以某种方式通过函数或过程输出。

2 个答案:

答案 0 :(得分:1)

APOC确实有URI RFC来获取地址的坐标:apoc.spatial.geocodeOnceapoc.spatial.geocode

例如,此查询:

CALL apoc.spatial.geocodeOnce('21 rue Paul Bellamy 44000 NANTES FRANCE') YIELD location
RETURN location;

产生这个结果:

{
  "description": "21, Rue Paul Bellamy, Talensac - Pont Morand, Hauts-Pavés - Saint-Félix, Nantes, Loire-Atlantique, Pays de la Loire, France métropolitaine, 44000, France",
  "latitude": 47.2221667,
  "longitude": -1.5566625
}

修改问题中的示例(假设jw具有address属性),这应该有效:

MATCH (j:Job)-[:PARENT_OF]->(w:Workflow)
CALL apoc.spatial.geocodeOnce(j.address) YIELD location AS jLoc
CALL apoc.spatial.geocodeOnce(w.address) YIELD location AS wLoc
RETURN j, jLoc, w, wLoc;

答案 1 :(得分:0)

当我问这个问题时,我并不了解实际发生的事情是前端算法动态地对节点进行排序和排序,因此没有提供坐标。