извенения в работе с векторными картами

17 views
Skip to first unread message

slazav

unread,
Nov 24, 2022, 11:24:38 AM11/24/22
to mapsoft2
Добрый день!

Сейчас в mapsoft2 произошла очередная революция в работе с векторными картами.

C 2020 до 2022 основным форматом для векторных карт была
гео-индексированная база данных, "mapdb". Однако, для хранения карт я все
равно использовал старый текстовый формат (vmap) - для удобства хранения
в git, просмотра изменений, обновления отдельных листов. База данных
использовалась только как промежуточный (и не вполне совместимый с vmap)
формат. Кроме того, во всей это системе отсутствовала поддержка формата
xfig, с помощью которого я редактирую карты - для этого я пользовался
программами из mapsoft1.

Сейчас база данных переделана таким образом, что она может существовать
на диске в виде базы BerkleyDB или в памяти, в виде простых структур c++. И я
не уверен, что буду использовать BerkleyDB.
Основное изменение в формате базы: "жесткая" привязка подписей к объектам
(по id) заменена на "мягкую" (подпись знает, что по таким-то координатам
можно найти объект такого-то типа, к которому она может привязаться).
Такая мягкая привязка использовалась и раньше, она удобна для
взаимодействия с форматами mp и xfig, где нет id объектов и жестких
связей между ними. Соответственно, id объектов важны только для
работы с базой, наружу они не вылезают.

Вся дополнительная информация о карте не хранится вместе с объектами. Все
эти форматы - это только наборы объектов. Возможно, потом можно будет
сделать следующий уровень для удобной работы с коллекциями карт типа
Подмосковья, который будет знать про название, привязку, границу карт,
связи между объектами, конфигурационные файлы и т.п. (сейчас этот уровень
сделан с помощью shell скриптов).

Появился текстовый формат vmap2, который в точности соответствует
структуре бызы данных. Я планирую постепенно перейти на него (форматом
vmap тоже пока можно пользоваться).

Работает преобразование между форматами vmap2, vmap, mp, fig (наконец-то!).
В записи mp теперь поддерживаются уровни данных и поле EndLevel. Это было
во времена mapsoft1, но потом потерялось, пользователи жаловались.

Появился файл конфигурации, который описывает, как правильно преобразовывать разные типа, создавать подписи и т.п.

Рендер карт остался практически без изменений. Я изменил команду define в
конфигурационном файле, так что файлы придется немного исправить. Кроме
того, рендер карт вынесен в отдельную программу, ms2render. Туда же
перенесено все, что было на эту тему в ms2conv: рендер растровых карт, DEM и
геоданных.

Таким образом, программы поменялись таким образом:
*  ms2conv -- только преобразование геоданных
*  ms2vmap -- преобразование векторных карт (точнее, наборов объектов)
*  ms2vmapdb -- работа с базой данных векторных карт и разные мелкие операции
    типа построения библиотеки знаков для xfig.
*  ms2render -- рендер геоданных, DEM, растровых и векторных карт.

Какая-то документация по новому формату векторных карт есть тут:
https://slazav.github.io/mapsoft2/vmap2.htm

По рендеру карт (этот текст почти не изменился):
https://slazav.github.io/mapsoft2/vmap2render.htm

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

slazav

unread,
Dec 1, 2022, 10:27:33 PM12/1/22
to mapsoft2
В общем, новая система признана более-менее пригодной для работы с картами, какое-то количество ошибок выловлено. Все старые скрипты, конфигурация и картинки знаков из репозитория с Подмосковными картами убраны, теперь все необходимое лежит в mapsoft2 и устанавливается в систему (это  подходит для карт Подмосковья и хребтовок). В картах остался только файл с большим количеством конфигурационных переменных.

При этом теперь я наконец-то могу делать отдельные карты со сколь угодно нестандартными системами знаков. В качестве тренировки этой новой системы я изучил знаки OSM и сделал такую карту (правда, практически в обычных знаках): https://nakarte.me/#m=11/32.73646/-16.89903&l=L/-cseyJuYW1lIjoic2xhemF2X21hZGVpcmEiLCJ1cmwiOiJodHRwOi8vc2xhemF2Lnh5ei90aWxlcy9tYWRlaXJhL3t4fS17eX0te3p9LnBuZyIsInRtcyI6ZmFsc2UsInNjYWxlRGVwZW5kZW50IjpmYWxzZSwibWF4Wm9vbSI6MTQsImlzT3ZlcmxheSI6dHJ1ZSwiaXNUb3AiOnRydWV9
Для печати она подходит гораздо лучше оригинальной. Там пока много явных проблем, надеюсь довести постепенно до нормального вида.

Кроме того, в картах Подмосковья существенно улучшился формат MP/IMG. Теперь там расставлены уровни знаков (они потерялись в 2020 году), за указание на эту проблему спасибо Kandey73. Он же произвел ревизию уровней, сравнив с какими-то данными  ММБ и перераспределив все знаки на пять уровней вместо прежних четырех. Если кто-то пользуется картой для Гармина - можете посмотреть и высказать свои замечания. В хребтовках mp-файлы я пока не переделывал, возможно, там следует сместить уровни в сторону более мелкого масштаба (т.к. сами карты мелкие).

Новый релиз mapsoft2 и пересборку хребтовок постараюсь сделать завтра.
четверг, 24 ноября 2022 г. в 16:24:38 UTC, slazav:
Reply all
Reply to author
Forward
0 new messages