OsmAnd: Ежедневное конвертирование и автоматическое обновление карт

osmDbDialect=“sqlite_in_memory” mapDbDialect=“sqlite_in_memory”
Прирост скорости у меня составил всего 9%.

Причём, extract.bbbike.org умудряется как-то за 10 минут сконвертировать, а я жду уже 30 минут, и всего 7.261% показывает.
Проц Core i7-3770 CPU @ 3.40GHz
Памяти 16гб.

Я сейчас на телефоне. Ссылку тяжело поправить. Но все остальные разброссаные по теме и пару в шапке, рабочие. Через них можно попасть а папку скрипт.

Лежит наместе:

obf_map_creation_v1.0.1_full_package_SFX.exe

Но настройки для скачивания и конвертации RU-KC, RU-KDA, RU-ROS, RU-STA. Настройки под меня.
Распаковать на С\ и в файле process_maps.cmd, изменить на свои регионы, и вписать свой диск с паролем.

Конвертер работает у меня уже 8 часов и сожрал 4гб памяти. При pbf файле в 50мб.
Я сдаюсь.

batch.xml
Строка запуска:

java -Xms256M -Xmx2560M -cp "./OsmAndMapCreator.jar:./lib/OsmAnd-core.jar:./lib/*.jar" net.osmand.data.index.IndexBatchCreator ./batch.xml

лог, начало
лог, непонятная ошибка

Странно. Xmx2560M может меньше выстовить?

Пробовал 1000M.
Ещё пробовал указывать mapZooms, zoomWaySmoothness, отключать indexPOI…
Ничего не помогает.

Попробую на дочкином компе завтра. Там 8 гиг Феном 2 . 6 ядер.

Нашёл проблему.

С этой версией не будет работать:

Для CentOS надо: yum install java-1.7.0-openjdk

и будет:

Опробовал паралельную обработку. Результаты:
(начало - окончание, время минуты:секунды)
47:56 - 51:27 (Латвия)
47:56 - 52:15 (Литва)
47:56 - 53:44 (Эстония)

За 6 минут управился с 3 странами :slight_smile:

Результаты:
http://s2.svimik.com/osm/Estonia_europe.obf
http://s2.svimik.com/osm/Latvia_europe.obf
http://s2.svimik.com/osm/Lithuania_europe.obf

Сам скрипт, на пхп (требует установленного php-cli на сервере):
http://svimik.com/mapcreate.txt

(ЯД и UniRS на данный момент не задействованы)

Интересно.
А для чего batch.xml под каждую карту создавать?

У себя я отказаться от net use. Вечно какие то проблемы с ним возникают.
Установил улиту Яндекс.Диск (там и под линуха есть, но пока не пробовал). Теперь просто копирую файлы в локальные папки
К примеру:

move /Y "temp\Ru-ta_2.obf" "c:\Users\AHTOH\YandexDisk\osmandmap\RU-TA\Russia_tatarstan_asia.obf"

Ну а уж ЯД сам разбирается как и когда синхронизировать в случае пропадания сети и другого армагедона.

Чтобы можно было запустить конвертер несколько раз паралельно, каждый со своим batch.xml
Я так понимаю, если я сделаю один batch.xml, то он будет обрабатывать все карты по очереди, загружая только одно ядро процессора.

Отработало по крону практически идеально.

[2013/12/01 07:40:01] - --------------------
[2013/12/01 07:40:01] - Job Estonia_europe is started
[2013/12/01 07:40:01] - Checking for new map…
[2013/12/01 07:40:01] - No new data
[2013/12/01 07:45:02] - --------------------
[2013/12/01 07:45:02] - Job Estonia_europe is started
[2013/12/01 07:45:02] - Checking for new map…
[2013/12/01 07:45:03] - New map downloaded (51.3 MB)
[2013/12/01 07:45:03] - Now converting from pbf to osmand obf…
[2013/12/01 07:50:53] - Done!
[2013/12/01 07:50:53] - Moving /root/osmand/Estonia_europe/out/Ee_2.obf to /var/www/default/data/www/default.local/Estonia_europe.obf
[2013/12/01 07:50:53] - File successfully moved (84.3 MB)
[2013/12/01 07:55:02] - --------------------
[2013/12/01 07:55:02] - Job Estonia_europe is started
[2013/12/01 07:55:02] - Map is already latest version

Вопрос. Может ЯД и не нужен, если я имею возможность раздавать по http со своего сервера? FolderSync же умеет http?

К сожалению нет.
Хотя он умеет синхронизироватся то FTP. Сервер я так понимаю ваш и вам не составить проблем завести пользователя Анонимуса?

Тоже хочу уйти на Линуха. Попытка №2 запустить конвертацию.
Пока к сожалению натыкаюсь на ошибку

Error: Could not find or load main class net.osmand.data.index.IndexBatchCreator

Он везде ругается на Could not find or load main class net.osmand

ЗЫ. В принципе если у вас ссылки постоянные то я могу забирать wget-ои и перекладывать в ЯД. (надо только со временем определится, чтобы крон настроить на это)

Нужен именно анонимус, или можно задать пароль?

По предыдущему опыту - проверьте версию java :slight_smile:
Также покажите строку запуска (или это мой скрипт?)

Да любого пользователя и пароль завести можно. Главное потом ими поделится :). Просто по умолчанию у практически всех клиентов FTP настроен anonymous

Яву я брал отсюда http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/7u45-b18/jre-7u45-linux-i586.rpm
Она вроде работает. Может еще каких то пакетов не хватает?

ahtoh@HOME2:~/temp/obf_map_creation> bash -x process_maps.sh
+ java -Xms256M -Xmx2560M -cp '"./OsmAndMapCreator.jar:./lib/OsmAnd-core.jar:./lib/*.jar"' net.osmand.data.index.IndexBatchCreator ./batch.xml
Error: Could not find or load main class net.osmand.data.index.IndexBatchCreator
ahtoh@HOME2:~/temp/obf_map_creation> 

Мне кажется, здесь лишние кавычки (которые ординарные).

Это баш их добавил. Их нет фактически
Вот прямая команда

ahtoh@HOME2:~/temp/obf_map_creation> java -Xms256M -Xmx2560M -cp \"./OsmAndMapCreator.jar:./lib/OsmAnd-core.jar:./lib/*.jar\" net.osmand.data.index.IndexBatchCreator ./batch.xml
Error: Could not find or load main class net.osmand.data.index.IndexBatchCreator
ahtoh@HOME2:~/temp/obf_map_creation> 

ЗЫ Яндекс.Диск под OpenSUSE встал без проблем. Так что осталось сам конвертер настроить/запустить :slight_smile:

Добавил FTP:
ftp://osm:osm@s2.svimik.com/

Текущий список карт и дату конвертирования теперь можно смотреть здесь:
http://osm.svimik.com/

Карты конвертируются сразу, как только gis-lab выкладывает новый дамп (для этого gis-lab щупается с интервалом 5 минут в течение получаса).

Ну создай тогда ещё одного пользователя для заливки карт, если конечно места у тебя много. Лично мне было бы удобно скачивать карты wget’ом, чем через разные синхронизаторы.

Попробовал xdelta для создания патчей. Для теста взял совсем далёкие по времени карты, да ещё и эксопртированные разными сервисами, да ещё и по разным границам вырезанные:
Карта Эстонии 11 октября, 74.9 MB, от extract.bbbike.org
Карта Эстонии 1 декабря, 84.3 MB, конвертировал сам

Результат - патч в 32.0 MB.

Чтобы убедиться, что это не просто фокус за счёт того, что патч в сжатом формате - сжал исходную карту винраром, с максимальными опциями. Вышло 52.0 MB.

(upd)
Попробовал bsdiff в тех же условиях. Патч вышел ещё меньше, 23 MB. Но он сожрал 2гб памяти и рожал несколько минут :slight_smile: