在哪里运行neo4j空间查询和代码?

时间:2014-12-02 15:54:34

标签: neo4j spatial

到目前为止,一个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。

1 个答案:

答案 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是你想要找到一些博物馆的半径。

干杯, 洛伦佐