POST 的 Neo4j 空间工作但不工作密码

Neo4j Spatial work for POST but not work cypher

我用过 Neo4j 3.0.4 + Spatial。

我正在使用 curl,我已经调用了:

addSimplePointLayer,(create nodes),addNodeToLayer

在这一点上,我尝试:

findGeometriesWithinDistance

并且工作完美(我需要将纬度、经度逐个更改经度、纬度...)

但我需要在密码中使用,例如:

START n=node:geom('withinDistance:[40.39742917035895,-3.495200140744832, 100.0]') 
  WITH n 
  WHERE n:TypeX
  RETURN n;

这永远不会 return 结果,因为 "geom" 是空的。我没有任何索引,我尝试使用提供程序 "spatial" 创建一个新索引,但没有用(我读到选项已被删除)。

我可以把TypeX的所有节点都放在geom索引中吗?或者我可以在没有索引的情况下使用withinDistance吗? (我认为在什么地方不可能使用这个)

在 Neo4j 3.x 的空间扩展中删除了索引提供程序以支持使用 procedures。相反,您可以直接从 Cypher 调用过程。例如:

要创建一个 SimplePointLayer:

CALL spatial.addPointLayer("geom")

然后向图层添加Restaurant个节点:

MATCH (r:Restaurant) WITH collect(r) AS restaurants
CALL spatial.addNodes("geom", restaurants) YIELD node
RETURN count(*)

然后执行近距离查询:

CALL spatial.withinDistance("geom",{latitude: 40.39742917035895,longitude:-3.495200140744832}, 100.0) YIELD node AS restaurant
RETURN restaurant

这些过程的文档仍在制作中,但是 Github project README and in this post 上有一些文档。