0

我正在使用 osmosis 将 OSM 映射文件转换为 *.map 以在 android 中与 mapsfroge 一起使用。我通过以下步骤安装了插件:1)将'mapsforge-map-writer-0.3.0-jar-with-dependencies.jar'复制到'osmosis/lib/default'目录2)创建文件'osmosis-plugins.conf'进入 'osmosis/config' 目录 3) 将此行添加到文件中: org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader

现在,当使用这条线时: osmosis --rb file=tehran.osm.pbf --mapfile-writer file=tehran.map type=hd

我懂了 :

. .

    `Sep 25, 2012 1:01:50 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SEVERE: Thread for task 1-rb failed
java.lang.AbstractMethodError: org.mapsforge.map.writer.osmosis.MapFileWriterTas
k.initialize(Ljava/util/Map;)V
        at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:43)
        at java.lang.Thread.run(Unknown Source)
Sep 25, 2012 1:01:50 PM org.openstreetmap.osmosis.core.Osmosis main
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed
.
        at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForComple
tion(Pipeline.java:146)
        at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92)
        at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Laun
cher.java:329)` 

. . .

文件“tehran.osm.pbf”位于“bin”文件夹中。我还用另外两个 osm 和 osm.pbf 文件(从其他网站下载)对其进行了测试。商店也是一样的。

问题出在哪里?是否有另一种方法可以将 OSM 转换为 *.map 文件?我很感激任何帮助。

4

2 回答 2

0

您是否尝试过边界框(bbox)选项?

信息可以在这里找到

...

为柏林-达勒姆编写地图文件。数据已从 OSM 网站导出为 XML,因此我们必须使用边界框定义:

$ bin/osmosis --rx 文件=../data/dahlem.osm --mw 文件=/tmp/dahlem-high.map bbox=52.4477300,13.2756600,52.4588200,13.2986600

已知的陷阱

该插件需要一个边界框定义,它要么包含在数据中,要么通过命令行参数 bbox 给出。请注意,OSM 网站的 XML 导出功能当前会产生无效的边界框定义,因此在这种情况下必须使用 bbox 参数。

如果您将插件安装到用户主目录中,请确保您使用该用户而不是其他用户(例如 root 用户)运行 osmosis。

于 2012-11-03T00:08:19.720 回答
0

你可以使用 --rx 选项来使用 osm 来映射所有内容都在 mapsforge wiki 中进行了描述

Vetter 添加插件的方法

在 osmosis 文件夹中创建插件文件夹添加将 jar 放在那里

于 2014-05-28T15:40:08.340 回答