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」フォルダー内にあります。また、他の 2 つの osm および osm.pbf ファイル (他の Web サイトからダウンロード) でテストしました。店舗は同じです。

問題はどこだ?OSM を *.map ファイルに変換する別の方法はありますか? 助けていただければ幸いです。

4

2 に答える 2

0

境界ボックス (bbox) オプションを試しましたか?

情報はこちら

...

ベルリン-ダーレムの地図ファイルを書きます。データは OSM Web サイトから XML としてエクスポートされているため、バウンディング ボックス定義を使用する必要があります。

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

既知の落とし穴

プラグインには境界ボックスの定義が必要です。境界ボックスの定義は、データに含まれているか、コマンド ライン パラメーター bbox を介して指定されます。OSM ウェブサイトの XML エクスポート機能は、現在無効なバウンディング ボックス定義を生成することに注意してください。この場合、bbox パラメータを使用する必要があります。

プラグインをユーザー ホームにインストールした場合は、osmosis を別のユーザー (root ユーザーなど) ではなく、正確にこのユーザーで実行していることを確認してください。

于 2012-11-03T00:08:19.720 に答える