如何用Java中的osmosis以编程方式导入OSM数据?

时间:2015-10-18 13:33:40

标签: java postgresql maven openstreetmap postgis

我在maven 3存储库中找到了osmosis libs,我将其插入到项目的pom.xml中。

    <dependency>
        <groupId>org.openstreetmap.osmosis</groupId>
        <artifactId>osmosis-core</artifactId>
        <version>0.44.1</version>
    </dependency>

现在我尝试将* .osm.pbf数据文件导入PostGres / PostGIS数据库。 Osmosis类中主要方法的注释说你应该编写自己的管道。

有谁知道如何实现导入数据的完整功能的示例?

我尝试过Osmosis.run(args)方法,但这似乎不接受我的论点。

附加说明:

到目前为止,我的方法看起来像这样:

   String args[] = { "--read-pbf file=" + DOWNLOAD_STUTTGART_PBF, "--log-progress",
                     "--write-pgsql host=\"localhost\" port=\"5432\"" + 
                     "database=\"myDatabase\" user=\"admin\" password=\"pw123\"" };

   Osmosis.run(args);

输出如下:

07:36:53.901 [main] INFO  o.j.p.standard.StandardPluginManager - plug-in started - org.openstreetmap.osmosis.core.plugin.Core@0.43.0.1-49-gb18e1e9-dirty-SNAPSHOT
Okt 22, 2015 7:36:53 AM org.openstreetmap.osmosis.core.Osmosis run
INFORMATION: Preparing pipeline.

没有数据导入数据库。不幸的是,文档不存在,或者我找不到文档。

1 个答案:

答案 0 :(得分:0)

现在我得到了解决方案:

String workingDir = System.getProperty("user.dir") + File.separator;

String args[] = { "--read-pbf", "file=" + workingDir + DOWNLOAD_STUTTGART_PBF, "--log-progress",
            "--write-pgsql", "host=localhost:5432", "database=myDatabase", "user=admin",
            "password=pw123" };

Osmosis.run(args);

线索是在数组中单独提供所有参数。

此外,您还需要包含更多依赖项:

<!-- OSM Osmosis Importer Libs -->
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-core</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-pbf</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-pbf2</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-osm-binary</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-extract</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-hstore-jdbc</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-dataset</artifactId>
  <version>0.44.1</version>
</dependency>
<dependency>
  <groupId>org.openstreetmap.osmosis</groupId>
  <artifactId>osmosis-pgsnapshot</artifactId>
  <version>0.44.1</version>
</dependency>

我希望开发人员除了出色的代码之外还能提供出色的文档。