TAB-file и MultiPolygon. Проблемы

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

TAB-file и MultiPolygon. Проблемы

Сообщение Филиппов Владислав » 04 окт 2017, 08:20

Доброго всем дня
Столкнулся с такой проблемой - есть MID/MIF содержащий мультиполигоны.
Открываю в QGIS, загружаю этот файл и сохраняю его как TAB-file с опциями (Geometry Collection и Force multi-type)
Созданный файл автоматически загружается и у него в свойствах видно Polygon (WKB type: "MultiPolygon")

Если сохранить новую копию TAB ещё раз, то тип геометрии у последнего TAB'а уже Polygon (WKB type: "Polygon"), хотя на нем есть мультиполигоны.

Ещё, если сохранить проект и открыть его заново, то тип геометрии у TAB'ов так же Polygon (WKB type: "Polygon")
Соответственно, с такими слоями нельзя работать с точки зрения мультигеомерии.
Что делать, если мне нужно работать с мультиполигонами в TAB'ах?

54_19_190102_20170421_Parcel.7z
Исходный MID/MIF
(69.39 КБ) 250 скачиваний

trir
Гуру
Сообщения: 5287
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: TAB-file и MultiPolygon. Проблемы

Сообщение trir » 04 окт 2017, 08:34

Весело там с геометрией...
Feature Type Returns (read mode) Accepts (write mode)
------------ ------------------- --------------------

TABPoint OGRPoint OGRPoint

TABFontPoint OGRPoint OGRPoint

TABCustomPoint OGRPoint OGRPoint

TABPolyline OGRLineString or OGRLineString or
OGRMultilineString OGRMultilineString

TABRegion OGRPolygon (with a OGRPolygon (with 1 or more
single ring) or rings) or OGRMultiPolygon
OGRMultiPolygon (for
multiple rings)


TABRectangle OGRPolygon OGRPolygon

TABEllipse OGRPolygon OGRPolygon or
OGRPoint corresponding to the
ellipse center

TABArc OGRLineString OGRLineString or
OGRPoint corresponding to the
arc's defining ellipse center

TABText OGRPoint (the lower- OGRPoint
left corner of the
text)

TABMultiPoint OGRMultiPoint OGRMultiPoint

TABCollection OGRCollection with In write mode, the geometry
3 optional components: cannot be set directly as an
1- 0 or 1 OGRPolygon OGRGeometry. The following methods
or OGRMultiPolygon must be used instead:
2- 0 or 1 OGRLineString SetRegionDirectly()
or OGRMultiLineString SetPolylineDirectly()
3- 0 or 1 OGRMultiPoint SetMultiPointDirectly()

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Александр Мурый » 04 окт 2017, 14:41

Филиппов Владислав писал(а):
04 окт 2017, 08:20
Что делать, если мне нужно работать с мультиполигонами в TAB'ах?
Видимо, работать в MapInfo (извините за КО). Потому что TAB+QGIS - неудачное сочетание.

В этом MIF полигоны накладываются друг на друга и частично пересекаются. Плагин Topology Checker выдаёт вот это:
Selection_033.png
Selection_033.png (364.93 КБ) 6106 просмотров
И как прикажете с этим работать "в режиме" мультигеометрии? Я понимаю, что вопросом на вопрос, но всё же.
Редактор материалов, модератор форума

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Филиппов Владислав » 04 окт 2017, 14:59

Ну как, ошибки особой нет - в кадастре допуск перекрытия/наложения 10 см, это раз. Они все в их допуске. И TAB не топологическая модель. Чем перекрытие мешает работать в режиме мультигеометрии?
Дальше, неудачное сочетание, почему? Если TAB таки хранит и умеет работать с мультиполигонами, то QGIS (GDAL\OGR) плохо работает с ними?

С шейпами было всё ОК. Просто, в последствии, при сохранении в TAB'ы некоторые узлы в полигонах смещались, т.к. в табах фиксированная длина в размерности координат, а в шейпах с плавающий точкой (float). Результат нужен в TAB'ах

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Александр Мурый » 04 окт 2017, 15:57

Филиппов Владислав писал(а):
04 окт 2017, 14:59
в кадастре допуск перекрытия/наложения 10 см
Этого я не знал.
Филиппов Владислав писал(а):
04 окт 2017, 14:59
QGIS (GDAL\OGR) плохо работает с ними
Да, видимо, плохо. С MIF работает лучше, кстати. Пересохранять лучше именно в MIF.

Попробовал через SQLite - помогло.

Код: Выделить всё

ogr2ogr -f SQLite 54_19_190102_20170421_Parcel.sqlite 54_19_190102_20170421_Parcel.MIF -nlt MULTIPOLYGON
После редактирования сохраняем в MIF с типом геометрии GeometryCollection с включённой опцией "Force multi-type".
Редактор материалов, модератор форума

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Филиппов Владислав » 04 окт 2017, 17:52

чёрт, а SQLite как хранит геометрию, интересно?
Последний раз редактировалось Филиппов Владислав 05 окт 2017, 03:14, всего редактировалось 1 раз.

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Ariki » 05 окт 2017, 00:30

А я что-то не могу воспроизвести. Пробовал пересохранять TAB и через ogr2ogr, и через QGIS (с опциями и без) - ничего не меняется. QGIS в метаданных пишет Polygon (WKB type: "MultiPolygon"), ogrinfo - Geometry: Unknown (any).
У меня QGIS 2.18.10, GDAL 2.2.1. А у вас?

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Филиппов Владислав » 05 окт 2017, 03:13

и у меня практически тоже 2.18.13 и GDAL 2.1.2
Debian 9 Stretch

trir
Гуру
Сообщения: 5287
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: TAB-file и MultiPolygon. Проблемы

Сообщение trir » 05 окт 2017, 06:46

думаю первый объект должен быть строго MultiPolygon, иначе слой становится Polygon

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Александр Мурый » 05 окт 2017, 12:41

GDAL 2.2.1, QGIS 2.18.11 (OGR data provider (compiled against GDAL/OGR library version 1.11.3, running against GDAL/OGR library version 1.11.3). Всё работает как описано. С TAB не пробовал, только с MIF.
trir писал(а):
05 окт 2017, 06:46
думаю первый объект должен быть строго MultiPolygon, иначе слой становится Polygon
Откуда такая информация?
Редактор материалов, модератор форума

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Александр Мурый » 05 окт 2017, 12:52

Филиппов Владислав писал(а):
04 окт 2017, 17:52
чёрт, а SQLite как хранит геометрию, интересно?
Здесь (http://gdal.org/drv_sqlite.html) сказано:
The driver looks for a geometry_columns table laid out as defined loosely according to OGC Simple Features standards, particularly as defined in FDO RFC 16. If found it is used to map tables to layers.
Ну то есть по умолчанию там нормальный WKB.
Редактор материалов, модератор форума

trir
Гуру
Сообщения: 5287
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: TAB-file и MultiPolygon. Проблемы

Сообщение trir » 05 окт 2017, 13:02

Откуда такая информация?
просто предположение, судя по описанию, OGRMultiPolygon в .tab соответсвует двум типам - TABCollection и TABRegion, но GDAL TABRegion вопринимает только как OGRPolygon. Соответсвено при сохранение либа просто смотрит первый элемент и по нему определяет формат сохранения для геометрии и если это OGRPolygon, то сохраняет как TABRegion

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Ariki » 05 окт 2017, 15:03

trir писал(а):
05 окт 2017, 06:46
думаю первый объект должен быть строго MultiPolygon, иначе слой становится Polygon
Да, так и есть. Я попробовал в файлах MIF/MID удалить первый объект (мультиполигон), открыв их текстовым редактором, и QGIS распознал слой как имеющий тип Polygon.

Насколько я могу судить, это никак не мешает работать с мультигеометрией в этом файле.

К слову, полигональные шейп-файлы OGR всегда определяет как Polygon, хотя в них могут быть полигоны и мультиполигоны вперемешку. Это не очень логичное поведение, но так уж сложилось.

При повторном сохранении файла, действительно, происходят какие-то странные вещи (сохранённый повторно файл отказывается отображаться на карте). Но это, как я понял, связано с тем, что QGIS при открытии данных с системой координат NonEarth автоматически присваивает им WGS84, что неверно и, я подозреваю, может повлиять на границы пересохраняемого файла в формате TAB.

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: TAB-file и MultiPolygon. Проблемы

Сообщение Филиппов Владислав » 05 окт 2017, 19:48

В QGIS есть опция - всем загружаемым слоям с непонятной СК назначать СК ХХХХ. Я так всегда делаю, WGS'а нет.

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей