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