Вопросы по Osmosis

Уважаемые форумчане, требуется помощь.
Хотел сконвертировать файл *.osm.pbf в файл *.osm.map для Locus .
Зашел на страничку wiki/Locus .
Скачал последнюю версию Osmosis. Сделал пакетный файл, запустил и ничего не вышло.
Osmosis похоже запустился. После выдал типа ошибку:

 "SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Task type mapfile-writer
 doesn't exist." 

Версию 0.39 Osmosis не нашел, ибо там тестировано на версии 0.39 .
Хотя полагаю, что дело не в версии.
Osmosis использовал впервые.

Заранее благодарю за помощь. (Мож и еще кому нить пригодится.)

Там забыли упомянуть, что к osmosis-у нужно добавить соответствующий plugin

https://code.google.com/p/mapsforge/wiki/GettingStartedMapWriter

Спасибо. Уже попробовал прикрутить, но не получилось. Положил файл плагина в папку …\Osmosis\Plugins,
в текущий каталог с BATником, в текущую папку в поддиректорию \Plugins.
Прописал в BATнике строку “-plugin “mapsforge-map-writer-0.3.0-jar-with-dependencies.jar””.
При запуске выдает:

SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to load plugin cl
ass (mapsforge-map-writer-0.3.0-jar-with-dependencies.jar).

Читайте инструкции внимательнее. Это неправильная строка. Правильная будет вот такая:

-plugin org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader

Не получается. :frowning:
Sergey Astakhov, напишите, плииз, подробнее, куда надо положить скачанный файл плагина
и где прописать строку подключения.
Я перепробовал несколько вариантов и все не дали положительного результата. :frowning:
Чего-то я не догоняю.

Вообщем эта часть таки заработала.
Кинул файл плагина в папку lib\default к другим JAR файлам и плагин подключился автоматом.
(OS - M$ Win XP SP3)

Далее все равно вылезли 2-е ошибки:

SEVERE: Thread for task 1-read-pbf failed
java.lang.OutOfMemoryError: Java heap space
...
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed
.
...

Памяти вроде не мало - 2 ГБ (правда похоже, что винда видит только 1 ГБ).
Файл RU-ххх.osm.pbf то-же не большой, не более 13 МБ .

А приложение запускается с разрешением памяти более 256? А то ява то по умолчанию не жуёт память и винда тут вроде не причом, не?

Да, не знаю. Разъясните, плииз, что имеете ввиду. И как выставить это “разрешением памяти”?
Мож версия Osmosis’а кривая???
Вот часть дампа при конвертации:

...
04.08.2012 17:34:06 org.mapsforge.map.writer.osmosis.MapFileWriterTask process
INFO: start reading data...
04.08.2012 17:34:26 org.mapsforge.map.writer.osmosis.MapFileWriterTask complete
INFO: completing read...
04.08.2012 17:35:06 org.mapsforge.map.writer.osmosis.MapFileWriterTask complete
INFO: start writing file...
04.08.2012 17:35:06 org.mapsforge.map.writer.osmosis.MapFileWriterTask complete
INFO: overwriting file ...\RU-ххх.osm.map
04.08.2012 17:35:31 org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskMan
ager waitForCompletion
SEVERE: Thread for task 1-read-pbf failed
java.lang.OutOfMemoryError: Java heap space
        at java.nio.HeapByteBuffer.<init>(Unknown Source)
        at java.nio.ByteBuffer.allocate(Unknown Source)
        at org.mapsforge.map.writer.MapFileWriter.writeSubfile(MapFileWriter.jav
a:338)
        at org.mapsforge.map.writer.MapFileWriter.writeFile(MapFileWriter.java:1
60)
        at org.mapsforge.map.writer.osmosis.MapFileWriterTask.complete(MapFileWr
iterTask.java:105)
        at crosby.binary.osmosis.OsmosisBinaryParser.complete(OsmosisBinaryParse
r.java:35)
        at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:37)

        at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:37)
        at java.lang.Thread.run(Unknown Source)
04.08.2012 17:35:32 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)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:239)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
352)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

Ну там же всё и так расписано, скопировать сюда содержимое секции Plugin Installation из страницы про mapsforge?

Мало иметь саму память, надо ещё разрешить java её использовать. По умолчанию там стоят небольшие лимиты. Делается это заданием ключика -Xmx<размер>. Например -Xmx1g или -Xmx1024m задаст максимальный размер в 1 гигабайт. Это опять же упомянуто в разделе Plugin Installation.

Кроме того, если памяти не хватает - можно использовать опцию type для хранения на диске

Копировать не нужно. Там всего десяток строчек. И то, что там написано у меня не сработало.
Куда пришлось кинуть плагин, что-б заработал, писал выше.
Добавление в BATник строчки " set JAVACMD_OPTIONS = -Xmx800m " то-же ничего не изменило.

A_G_T
версию Osmosis смени. ты ж под виндой используешь.

Так я и использую версию для Windows.

я имел в виду под линухой проблем не возникает. а вот под виндой бывают траблы

поэтому пробуй другую версию. ну эт как самый простой способ решить проблем, но если есть время то читай мануалы и гугли возможно и эту расковыряешь

Таки расковырял. :slight_smile:

Небольшой мануал по конвертации карт для Locus под Windows.

  1. Смотреть сюда: /wiki/Locus
  2. Качать Osmosis. Распаковывать в любое место, например в С:\Program Files\osmosis
  3. Качать плагин к Osmosis, отсюда: mapsforge
    Положить в папку osmosis\lib\default . Он будет автоматически активироваться.
  4. Нарезанные файлы можно брать отсюда: gis-lab-osm_dump
    Лучше брать файлы в формате PBF. И размер меньше и не нужно указывать границы.
  5. В папке с файлом(файлами) PBF создать BATник примерно такого содержания:
    …\osmosis\bin\osmosis --read-pbf “File.osm.pbf” --mapfile-writer file=“File.osm.map”
  6. Смотрим сюда: How-to-create-your-own-offline-maps

С опцией type=hd конвертация идет довольно долго, примерно в (1.5 - 2) раза дольше,
чем конвертация того-же файла для Osmand .

поищите версию плагина mapsforge-map-writer-0.3.1-SNAPSHOT-jar-with-dependencies.jar, там решили проблему обработку больших полигонов и скорость конвертации увеличится

Установил этот плагин. Скачал из архива ГИС-Лаба последнюю нарезку Лен. области с С-Пб .
Вот уже 2-а часа висит на 10% … index 2 . :frowning:
(За это время для Osmand уже сконвертилось-бы.)

У меня так Узбекистан зависал, что подвигло на поиски 0.3.1 - с этой версией ковертация заняла 20 мин.
Остается проверить - дейсвительно ли используется 0.3.1

Вот здесь брал: Сборка #10 (03.05.2012 21:18:35)
Мож есть другая сборка?

Она!
Осталось проверить использует ли этот самый плагин osmosis
например удалить mapsforge-map-writer-0.3.1-SNAPSHOT-jar-with-dependencies.jar и зарустить osmosis с темеже параметрами заново - будет ругаться на нехватку плагина - ждать, а если начнет отрабатывать, искать почему используется старая версия.

Первое сообщение в теме. :slight_smile:

Старая версия удалена. При активации плагина в его названии присутствует SNAPSHOT и 0.3.0.1 (именно так).

05.08.2012 16:24:59 org.java.plugin.standard.StandardPluginManager activatePlugi
n
INFO: plug-in started - org.mapsforge.map.mapfile-writer@0.3.0.1-SNAPSHOT

Скачал http://data.gis-lab.info/osm_dump/dump/latest/RU-LEN.osm.pbf
Запустил у себя
osmosis.bat --rb RU-LEN.osm.pbf --mapfile-writer file=RU-LEN.osm.pbf.map

процесс идет 34 мин, 50% … index 2

Все что изменил это
set JAVACMD_OPTIONS=-Xmx800m

в osmosis.bat