новости, проект переделки системы работы с векторными картами

6 views
Skip to first unread message

slazav

unread,
Aug 25, 2022, 5:47:54 PM8/25/22
to mapsoft2
Я опять взялся за mapsoft2, для разгона исправил довольно много проблем с srtm-слоем во вьюере и с srtm-панорамами. Кроме того, в рамках постепенного отказа от mapsoft1, продвинул программу ms2geofig для работы с привязанными fig-файлами. Теперь в fig можно добавлять векторные данные из srtm и растровые карты. Я это активно использую при рисовании карт.

Я постепенно хочу начать еще один заход по переписыванию системы работы с
векторными картами. Попробую сформулировать, какие изменения
хочется сделать.

## Что было раньше, mapsoft

- лист карты как независимые наборы отдельных объектов
- описанием разных свойств типов объектов
- разные программы, которые могли их обрабатывать

Карта Подмосковья, например, лежала в виде набора отдельных листов в некотором собственном формате vmap. Свойства типов существовали наполовину в виде текстового файла, наполовину были зашиты в программы, что
было неудобно.

## Что есть сейчас, mapsoft2

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

Файл с описанием типов исчез, была попытка сделать отдельные конфигурационные файлы, например, для импорта/экспорта в mp. Это все оказалось неудобным и не законченым. Единственно, что получилось хорошо - это универсальная конфигурация рендера карты в виде отдельного текстового файла (да и то в ней хочется сделать некие несовместимые изменения).

## Что хочется сделать

В качестве центрального объекты карты хочется иметь один текстовый файл
с описанием всех ее компонент. Чтобы при работе с картой передавать программе один файл, а не собирать по углам разные конфигурационные файлы, треки с границей и т.п. Компоненты должны быть такими:

- Листы. Карта может содержать один или несколько листов с объектами (в   формате vmap, mp, mapdb и т.п.). Каждый лист должен иметь имя, ссылку  на файл и определенную границу (например, быть номенклатурным листом). Предполагается, что большинство операций будет происходить с одним листом, независимо от других (рендер, импорт/экспорт в mp и т.п.).

- Общая граница карты в виде трека (например, gpx).

- Описание шагов рендера, как в mapsoft2. Ссылка на отдельный текстовый файл. Тут есть вопрос про возможность рендера разных картинок и разных проекций (например плитки/листы) и про "естественную" проекцию карты. Возможно, все, что связано с проекциями надо вынести из описания рендера и внести в центральный файл.

- Описание типов и разная информация про них. Какие типы бывают, какой тип подписи соответствует данному типу объекта, как преобразовывать объект в форматы fig, mp и обратно, и т.п. Мне кажется, что это должен быть один текстовый файл. (Также на основе этого файла генерить fig-библиотеку, картинку с легендой карты, typ-файл).

Таким образом, вся карта Подмосковья будет одним объектом, но состоящим из многих vmap-листов, с которыми можно будет работать отдельно.

Reply all
Reply to author
Forward
0 new messages