我使用过Neo4j 3.0.4 + Spatial。
我正在使用curl,我已经打过电话了:
addSimplePointLayer,(create nodes),addNodeToLayer
在这一点上,我尝试:
findGeometriesWithinDistance
完美工作(我需要改变lat,lon by lon,lat ...)
但我需要在密码中使用,例如:
START n=node:geom('withinDistance:[40.39742917035895,-3.495200140744832, 100.0]')
WITH n
WHERE n:TypeX
RETURN n;
这永远不会返回结果,因为" geom"是空的。我没有任何索引,我尝试使用提供者"空间"创建一个新索引,而不是工作(我已经阅读过该选项已删除)。
我可以将TypeX的所有节点都放在geom index中吗?或者我可以在没有索引的情况下使用withinDistance吗? (我认为在哪里不可能使用这个)
答案 0 :(得分:0)
已在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和this post中有一些文档。