Neo4j 3.0.0+;空间密码
我从源代码处编译了最新的Neo4j 3.0.0+;空间密码,neo4j,cypher,neo4j-spatial,Neo4j,Cypher,Neo4j Spatial,我从源代码处编译了最新的Neo4j-Spatial(Neo4j-Spatial-0.16-Neo4j-3.0.0-server-plugin.jar),并将其放入我的Neo4j 3.0.0插件文件夹中 扩展名列在浏览器中,我可以对空间功能进行POST调用 但是,我相信我也应该能够使用Neo4j 3.0.0中漂亮的新CALL功能进行Cypher调用,如下所示: CALL spatial.addPointLayer('cities'); 正如Stefan在这里的更新所暗示的: 如图所示: 但是
Neo4j-Spatial
(Neo4j-Spatial-0.16-Neo4j-3.0.0-server-plugin.jar)
,并将其放入我的Neo4j 3.0.0
插件文件夹中
扩展名列在浏览器中,我可以对空间功能进行POST
调用
但是,我相信我也应该能够使用Neo4j 3.0.0
中漂亮的新CALL
功能进行Cypher
调用,如下所示:
CALL spatial.addPointLayer('cities');
正如Stefan在这里的更新所暗示的:
如图所示:
但是,我得到了一个“没有为这个数据库实例注册名为
spatial.addPointLayer
的过程”错误,并且在jexp示例中也可以看到相同的调用失败。。。我不确定我是来的太早还是错过了什么?插件需要在数据库特定的插件文件夹中,而不是在“Neo4j CE 3.0.x/Plugins”文件夹中。在Neo4j 3.0中,对于基本操作,您不需要空间插件
默认支持点
和距离
。此支持假定您将lat/lon属性键设置为纬度
和经度
可以使用它们计算两个节点之间的距离,例如:
MATCH (a:City {name:'London'}), (b:City {name:'Barcelona'})
RETURN distance(point(a), point(b))/1000 as dist
您可以在此图表列表中找到一个详细示例:
其次,在Neo4j 3.0存储过程中,Neo4j支持一组正式的过程:
它提供了更多的空间特征。谢谢Christophe,我应该澄清一下,我想尝试使用空间索引。Neo4j 3.0中的默认空间功能似乎很慢,所以我希望使用Neo4j spatial来实现索引,并尝试通过Cypher来实现。哈好的,我认为Craig Taverner正在这方面工作,我会问他你找到这个问题的解决方案了吗?我可以使用“CALL spatial.procedures()”获取过程列表,或使用“CALL spatial.laterTypes()”获取层列表,但当尝试调用任何返回的过程或记录的过程时,我会收到“未能调用过程
spatial.layers
:原因:java.lang.NoClassDefFoundError:org/geotools/filter/text/cql2/CQLException”