到目前为止,一个RDBMS用户很难理解neo4j服务器在使用空间插件时的界面。 我已经习惯了oracle spatial和postgis的接口,其中有人可以使用提供的gui来创建具有几何等的表。 我有两个问题。 1)如何在具有空间特征(坐标)的neo4j服务器(我使用的是1.9版)中创建节点我从这里阅读了手册:
http://neo4j-contrib.github.io/spatial/
我知道我必须创建一个空间索引,然后创建一个节点,然后再将该节点添加到索引中。但是通过neo4j 1.9的控制台执行此操作效率不高。有没有可以用来做这个的界面?
2)在本网站:http://neo4j-contrib.github.io/spatial/#spatial-import-shapefile 他们展示了一种在neo4j中导入shapefile的方法。我不明白的东西(可能很简单,但正如我所说的所有这些对我来说都是新的)是我应该在哪里执行这段代码。
GraphDatabaseService database = new EmbeddedGraphDatabase(databasePath);
try {
ShapefileImporter importer = new ShapefileImporter(database);
importer.importFile("shp/highway.shp", "highway", Charset.forName("UTF-8"));
} finally {
database.shutdown();
}
尽管neo4j及其空间扩展非常有前途和有趣,但我认为社区非常小,现有的例子非常少。我希望能得到一些帮助。
谢谢。 d。
答案 0 :(得分:2)
如果有一个非常明确的解释,我建议您访问这篇文章:http://www.markhneedham.com/blog/2013/03/10/neo4jcypher-finding-football-stadiums-near-a-city-using-spatial/
您所要做的就是向节点添加属性,例如:{“wtk”:“POINT(-2.20024 53.483)”}。如果您熟悉java或其他语言,您可以实现一小段代码来创建这些节点并将其添加到索引中,就像Mark所做的那样。
我还在我的博客上写了一些内容:http://inserpio.wordpress.com/2014/04/03/artworks-spatial-search/
再一次,您粘贴的代码必须作为一个简单的java程序执行,该程序连接到图形数据库并导入具有众所周知格式的形状文件。
最后,您将能够通过执行Cypher查询来查询您的节点,如:
start m = node:museumLocation('withinDistance:[51.5086,-0.1283,0.1]')return m;
其中“museumLocation”是索引名称,(51.5086,-0.1283)是圆的中心,0.1是你想要找到一些博物馆的半径。
干杯, 洛伦佐