将OSM转换为mapfroge * .map文件失败

时间:2012-09-25 13:50:10

标签: android map openstreetmap

我正在使用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文件? 我感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

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

找到信息here

...

为Berlin-Dahlem写下地图文件。数据已从OSM网站导出为XML,因此我们必须使用边界框定义:

$ bin / osmosis --rx file = .. / data / dahlem.osm --mw file = / tmp / dahlem-high.map bbox = 52.4477300,13.2756600,52.4588200,13.2986600 < / p>

已知陷阱

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

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

答案 1 :(得分:0)

你可以演唱frim osm来映射--rx选项 所有内容都在mapsforge wiki中描述

添加插件的更快方式

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