Несколько выводов о SpatiaLite и SpatialWare Мапинфо и аксиома

Предложения и пожелания по дальнейшему развитию ГИС Аксиома
Ответить
Аватара пользователя
Alex_Y
Сообщения: 33
Зарегистрирован: 26 янв 2021, 06:40

Несколько выводов о SpatiaLite и SpatialWare Мапинфо и аксиома

Сообщение Alex_Y » 30 дек 2022, 08:06

Доброго времени суток Уважаемые!
Всех с наступающим новым годом!

В преддверии праздников, решил тут озаботиться совместным использованием удаленных данных в Мапинфо и Аксиоме в многострадальной БД SQLite (с PostGIS думаю ситуация аналогичная), т.к. Аксиома другой БД не поддерживает, а MS SQL сервера у меня нет, да и не особо-то я его жалую :D .
Казалось бы, что может быть проще, стандарты все известные, отрывай и радуйся жизни ;).

Однако все оказалось не так просто.

Берем SQLite базу со слоем графики из Аксиомы. Он у нас хранится в SpatiaLite, плюсом Аксиома добавляет файл MAPINFO_MAPCATALOG. И все казалось, отлично, и нашим и вашим, получается и QGIS мы поддерживаем, и Мапинфо. Но. Открываем такой слой в Мапинфо и что же мы видим - а полигонов то нет. Слой есть, карта есть, а полигонов нет, вместо них дуги.
Ок. Делаем обратную операцию. Мапинфо сохраняем слой, открываем в Аксиоме, опять ничего нет. Чудеса.
Оказывается ничего странного в этом нет. Просто хранение в SpatiaLite и SpatialWare разные (дампы сравнения приводить тут не буду, но могу, их есть у меня :) ).

Сейчас мне скажут, очевидные ты веще говоришь, стандарты то разные, и хранение разное. Только вот какая фигня получается:
Мапинфо определяет SpatiaLite или SpatialWare по наличию таблицы MAPINFO_MAPCATALOG. Если в БД ее нет, она применяет SpatiaLite для обработки объектов. И открывает их, но, т.к. каталога проекций нет, то она при каждом открытии и сохранении просит указать проекцию. И так каждый раз, согласитесь, не похоже на комфортную работу :). А вот если каталог есть, то все отлично, на тебе и стили, и объекты с "блэкджеком и ш... (с)". Вот только нате вам формат SpatialWare.

Теперь Аксиома. Она использует только SpatiaLite. Есть таблица MAPINFO_MAPCATALOG - хорошо, берем сведения оттуда, нет ставим сами. Вот только формат обработки объектов не меняется, всегда SpatiaLite. Поэтому весь SpatialWare от Мапинфо идет лесом.

В остатке получаем, чтобы работать с одними и теми же данными в Мапинфо и Аксиоме таблицу MAPINFO_MAPCATALOG нужно убирать. Тогда обе ГИС открывают данные без проблем. Но, каждый раз выбираем проекцию в Мапинфо, а в Аксиоме дополнительно ее указываем, области охвата и пр. Ну и конечно же забываем про стили линий от слова "совсем" :D.

Что, по моему мнению тут можно сделать. Все зависит от разработчиков Асксиомы, т.к. на разработчиков Мапинфо мы повлиять не можем :):

Вариант 1 (самый простой):
Хранить данные в своей таблице, например, AXIOMA_MAPCATALOG. Тогда Мапинфо не будет видеть свой каталог и будет работать с данными как SpatiaLite.
Минусы, начинается в Мапинфо геморрой с проекциями и стилями. Но, по идее стороннее ПО не должно беспокоить разработчиков Аскиомы.

Вариант 2 (посложнее):
Реализовать поддержку SpatialWare, хотя бы на уровне хранения данных (без пространственных запросов) не только в MS SQL сервере, а в зависимости от наличия таблицы MAPINFO_MAPCATALOG.
Плюсы понятны, всем счастливым обладателям Мипнфо и Аксиомы хорошо. Все счастливы :) .
Минусы, при таком подходе теряем совместимость с QGIS и пр., т.к. они про MAPINFO_MAPCATALOG в принципе не знают и работают с одним стандартом и также не поймут кто такой SpatialWare от Мапинфо.

Вариант 3 (вытекает из 1 и 2):
Разделить форматы. Сделать явное указание способа хранения данных, чтобы пользователь мог выбрать, в каком формате он желает хранить данные.

В целом все.
Возможно я где-то загоняюсь, или руки у меня кривые, или я что-то не знаю, что очень вероятно. Но, подружить нормально обе ГИС с одними и теми же данными у меня не получилось. А жаль.
Аватара пользователя
Александр
Сообщения: 405
Зарегистрирован: 18 апр 2019, 08:21

Re: Несколько выводов о SpatiaLite и SpatialWare Мапинфо и аксиома

Сообщение Александр » 30 дек 2022, 15:03

ГИС Аксиома поддерживает для работы с географическими векторными данными следующие базы данных: PostgreSQL, Microsoft SQL Server, Oracle, SQLite
Честно говоря, я думал SpatialWare вымерло вместе с появление MS SQL SERVER 2008 - где добавили геометрический тип данных. Удивительно что его ещё используют.

Вложил SQLite базу данных с субъектами РФ.
subject_rf.zip
(4.13 МБ) 457 скачиваний
Формат - поддерживаемый MapInfo FGF [FDO Geometry Binary Format]. MAPINFO_MAPCATALOG на месте и читается как Аксиомой, так и MapInfo.
QGIS тоже показывает слой.

Форматы геометрии которые поддерживает ГИС Аксиома в бд SQLite: WKT, WKB, FGF, Spatialte, GPKG

С Наступающим Новым Годом!!!
Аватара пользователя
Alex_Y
Сообщения: 33
Зарегистрирован: 26 янв 2021, 06:40

Re: Несколько выводов о SpatiaLite и SpatialWare Мапинфо и аксиома

Сообщение Alex_Y » 31 дек 2022, 03:28

Вот спасибо добрый человек :D
На свежую голову вроде как все получилось.

Всех еще раз с наступающим ;)
Ответить