TAB-file и MultiPolygon. Проблемы
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
TAB-file и MultiPolygon. Проблемы
Доброго всем дня
Столкнулся с такой проблемой - есть 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'ах?
Столкнулся с такой проблемой - есть 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'ах?
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: TAB-file и MultiPolygon. Проблемы
Весело там с геометрией...
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. Проблемы
Видимо, работать в MapInfo (извините за КО). Потому что TAB+QGIS - неудачное сочетание.Филиппов Владислав писал(а): ↑04 окт 2017, 08:20Что делать, если мне нужно работать с мультиполигонами в TAB'ах?
В этом MIF полигоны накладываются друг на друга и частично пересекаются. Плагин Topology Checker выдаёт вот это: И как прикажете с этим работать "в режиме" мультигеометрии? Я понимаю, что вопросом на вопрос, но всё же.
Редактор материалов, модератор форума
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: TAB-file и MultiPolygon. Проблемы
Ну как, ошибки особой нет - в кадастре допуск перекрытия/наложения 10 см, это раз. Они все в их допуске. И TAB не топологическая модель. Чем перекрытие мешает работать в режиме мультигеометрии?
Дальше, неудачное сочетание, почему? Если TAB таки хранит и умеет работать с мультиполигонами, то QGIS (GDAL\OGR) плохо работает с ними?
С шейпами было всё ОК. Просто, в последствии, при сохранении в TAB'ы некоторые узлы в полигонах смещались, т.к. в табах фиксированная длина в размерности координат, а в шейпах с плавающий точкой (float). Результат нужен в TAB'ах
Дальше, неудачное сочетание, почему? Если TAB таки хранит и умеет работать с мультиполигонами, то QGIS (GDAL\OGR) плохо работает с ними?
С шейпами было всё ОК. Просто, в последствии, при сохранении в TAB'ы некоторые узлы в полигонах смещались, т.к. в табах фиксированная длина в размерности координат, а в шейпах с плавающий точкой (float). Результат нужен в TAB'ах
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: TAB-file и MultiPolygon. Проблемы
Этого я не знал.
Да, видимо, плохо. С MIF работает лучше, кстати. Пересохранять лучше именно в MIF.
Попробовал через SQLite - помогло.
Код: Выделить всё
ogr2ogr -f SQLite 54_19_190102_20170421_Parcel.sqlite 54_19_190102_20170421_Parcel.MIF -nlt MULTIPOLYGON
Редактор материалов, модератор форума
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: TAB-file и MultiPolygon. Проблемы
чёрт, а SQLite как хранит геометрию, интересно?
Последний раз редактировалось Филиппов Владислав 05 окт 2017, 03:14, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: TAB-file и MultiPolygon. Проблемы
А я что-то не могу воспроизвести. Пробовал пересохранять TAB и через ogr2ogr, и через QGIS (с опциями и без) - ничего не меняется. QGIS в метаданных пишет Polygon (WKB type: "MultiPolygon"), ogrinfo - Geometry: Unknown (any).
У меня QGIS 2.18.10, GDAL 2.2.1. А у вас?
У меня QGIS 2.18.10, GDAL 2.2.1. А у вас?
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: TAB-file и MultiPolygon. Проблемы
и у меня практически тоже 2.18.13 и GDAL 2.1.2
Debian 9 Stretch
Debian 9 Stretch
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: TAB-file и MultiPolygon. Проблемы
думаю первый объект должен быть строго MultiPolygon, иначе слой становится Polygon
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: TAB-file и MultiPolygon. Проблемы
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.
Откуда такая информация?
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: TAB-file и MultiPolygon. Проблемы
Здесь (http://gdal.org/drv_sqlite.html) сказано:
Ну то есть по умолчанию там нормальный WKB.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.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: TAB-file и MultiPolygon. Проблемы
просто предположение, судя по описанию, OGRMultiPolygon в .tab соответсвует двум типам - TABCollection и TABRegion, но GDAL TABRegion вопринимает только как OGRPolygon. Соответсвено при сохранение либа просто смотрит первый элемент и по нему определяет формат сохранения для геометрии и если это OGRPolygon, то сохраняет как TABRegionОткуда такая информация?
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: TAB-file и MultiPolygon. Проблемы
Да, так и есть. Я попробовал в файлах MIF/MID удалить первый объект (мультиполигон), открыв их текстовым редактором, и QGIS распознал слой как имеющий тип Polygon.
Насколько я могу судить, это никак не мешает работать с мультигеометрией в этом файле.
К слову, полигональные шейп-файлы OGR всегда определяет как Polygon, хотя в них могут быть полигоны и мультиполигоны вперемешку. Это не очень логичное поведение, но так уж сложилось.
При повторном сохранении файла, действительно, происходят какие-то странные вещи (сохранённый повторно файл отказывается отображаться на карте). Но это, как я понял, связано с тем, что QGIS при открытии данных с системой координат NonEarth автоматически присваивает им WGS84, что неверно и, я подозреваю, может повлиять на границы пересохраняемого файла в формате TAB.
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: TAB-file и MultiPolygon. Проблемы
В QGIS есть опция - всем загружаемым слоям с непонятной СК назначать СК ХХХХ. Я так всегда делаю, WGS'а нет.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей