如何 运行 Neo4j 与 OSM 和 Neo4jSpatial?
How to run Neo4j with OSM and Neo4jSpatial?
您好,我是 neo4j 的新手,我想使用 OSM + Neo4j Spatial。
我有一个 maven 项目,我的 Neo4j 版本是 2.3.0-M01
我有一个仅用于导入 OSM 文件的简单代码,但它在导入文件中显示了一些错误:GraphDatabaseService、EmbeddedGraphDatabase 和 BatchInserter。
package testOSM;
import java.nio.charset.Charset;
import org.neo4j.gis.spatial.osm.OSMImporter;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.kernel.EmbeddedGraphDatabase;
import org.neo4j.kernel.impl.batchinsert.BatchInserter;
public class TestOsm {
private static final String DB_PATH = "/community/data/graph.db";
public static void main(final String[] args){
OSMImporter importer = new OSMImporter("clz_map.osm");
importer.setCharset(Charset.forName("UTF-8"));
BatchInserter batchInserter = BatchInserter.inserter(DB_PATH);
try{
importer.importFile(batchInserter, "clz_map.osm", false);
GraphDatabaseService db = new EmbeddedGraphDatabase(DB_PATH);
importer.reIndex(db);
db.shutdown();
}
catch(Exception e){
System.out.println(e.getMessage());
}
batchInserter.shutdown();
}
}
可能是我的版本问题,因为我使用的是 Neo4j 2.3-M01,但我不知道应该如何设置版本,例如这里
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-graph-collections</artifactId>
<version>0.7.1-neo4j-2.0.2-SNAPSHOT</version>
<type>jar</type>
</dependency>
我的pom.xml是基于https://github.com/neo4j-contrib/spatial/blob/master/pom.xml
加上:
<repository>
<id>neo4j</id>
<url>http://m2.neo4j.org/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>2.3.0-M01</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>2.3.0-M01</version>
</dependency>
您可以查看我的 git 存储库
https://github.com/amhg/OSM
提前致谢!
自上次发布的版本以来有 API 变化。查看 https://github.com/neo4j-contrib/spatial/blob/master/pom.xml#L4 ,如果您使用
自己构建该项目,似乎可以使用 Neo4j 2.2.3
mvn install
然后将空间插件的版本 0.15-neo4j-2.2.3 从本地 mvn 仓库中包含到您的 pom.xml 中。
我查看了您的 pom.xml,您似乎从 Neo4j Spatial 复制了 pom.xml。这不是你想要的。
由于您正在尝试编写一个使用 Neo4j Spatial 的 new 应用程序,因此您应该有一个新的 pom 并将 neo4j-spatial 称为依赖项,而不是 pom这在任何方面都类似于 neo4j-spatial pom。 README 中有一节描述了如何将 neo4j-spatial 添加为您自己的 pom 的依赖项。
所以我建议您执行以下操作:
对于遇到此问题的任何其他人,请按以下步骤操作:https://github.com/maxdemarzi/OSM
请注意 2.2.x 和 2.3(7/30-当前在 M2 上)之间的细微差异。
只需要正确的依赖项。
您好,我是 neo4j 的新手,我想使用 OSM + Neo4j Spatial。 我有一个 maven 项目,我的 Neo4j 版本是 2.3.0-M01
我有一个仅用于导入 OSM 文件的简单代码,但它在导入文件中显示了一些错误:GraphDatabaseService、EmbeddedGraphDatabase 和 BatchInserter。
package testOSM;
import java.nio.charset.Charset;
import org.neo4j.gis.spatial.osm.OSMImporter;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.kernel.EmbeddedGraphDatabase;
import org.neo4j.kernel.impl.batchinsert.BatchInserter;
public class TestOsm {
private static final String DB_PATH = "/community/data/graph.db";
public static void main(final String[] args){
OSMImporter importer = new OSMImporter("clz_map.osm");
importer.setCharset(Charset.forName("UTF-8"));
BatchInserter batchInserter = BatchInserter.inserter(DB_PATH);
try{
importer.importFile(batchInserter, "clz_map.osm", false);
GraphDatabaseService db = new EmbeddedGraphDatabase(DB_PATH);
importer.reIndex(db);
db.shutdown();
}
catch(Exception e){
System.out.println(e.getMessage());
}
batchInserter.shutdown();
}
}
可能是我的版本问题,因为我使用的是 Neo4j 2.3-M01,但我不知道应该如何设置版本,例如这里
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-graph-collections</artifactId>
<version>0.7.1-neo4j-2.0.2-SNAPSHOT</version>
<type>jar</type>
</dependency>
我的pom.xml是基于https://github.com/neo4j-contrib/spatial/blob/master/pom.xml
加上:
<repository>
<id>neo4j</id>
<url>http://m2.neo4j.org/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>2.3.0-M01</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>2.3.0-M01</version>
</dependency>
您可以查看我的 git 存储库 https://github.com/amhg/OSM
提前致谢!
自上次发布的版本以来有 API 变化。查看 https://github.com/neo4j-contrib/spatial/blob/master/pom.xml#L4 ,如果您使用
自己构建该项目,似乎可以使用 Neo4j 2.2.3mvn install
然后将空间插件的版本 0.15-neo4j-2.2.3 从本地 mvn 仓库中包含到您的 pom.xml 中。
我查看了您的 pom.xml,您似乎从 Neo4j Spatial 复制了 pom.xml。这不是你想要的。
由于您正在尝试编写一个使用 Neo4j Spatial 的 new 应用程序,因此您应该有一个新的 pom 并将 neo4j-spatial 称为依赖项,而不是 pom这在任何方面都类似于 neo4j-spatial pom。 README 中有一节描述了如何将 neo4j-spatial 添加为您自己的 pom 的依赖项。
所以我建议您执行以下操作:
对于遇到此问题的任何其他人,请按以下步骤操作:https://github.com/maxdemarzi/OSM
请注意 2.2.x 和 2.3(7/30-当前在 M2 上)之间的细微差异。 只需要正确的依赖项。