如何使用Java中的osmosis编程导入OSM数据?

3

我在Maven 3仓库中找到了渗透库,并将其插入到我的项目的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个回答

1
现在我有了解决方案:
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>

除了优秀的代码,我希望开发者也能提供出色的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接