Страница 1 из 1
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'ах?
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 04 окт 2017, 08:34
trir
Весело там с геометрией...
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()
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 04 окт 2017, 14:41
Александр Мурый
Филиппов Владислав писал(а): ↑04 окт 2017, 08:20
Что делать, если мне нужно работать с мультиполигонами в TAB'ах?
Видимо, работать в MapInfo (извините за КО). Потому что TAB+QGIS - неудачное сочетание.
В этом MIF полигоны накладываются друг на друга и частично пересекаются. Плагин Topology Checker выдаёт вот это:

- Selection_033.png (364.93 КБ) 7007 просмотров
И как прикажете с этим работать "в режиме" мультигеометрии? Я понимаю, что вопросом на вопрос, но всё же.
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 04 окт 2017, 14:59
Филиппов Владислав
Ну как, ошибки особой нет - в кадастре допуск перекрытия/наложения 10 см, это раз. Они все в их допуске. И TAB не топологическая модель. Чем перекрытие мешает работать в режиме мультигеометрии?
Дальше, неудачное сочетание, почему? Если TAB таки хранит и умеет работать с мультиполигонами, то QGIS (GDAL\OGR) плохо работает с ними?
С шейпами было всё ОК. Просто, в последствии, при сохранении в TAB'ы некоторые узлы в полигонах смещались, т.к. в табах фиксированная длина в размерности координат, а в шейпах с плавающий точкой (float). Результат нужен в TAB'ах
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 04 окт 2017, 15:57
Александр Мурый
Этого я не знал.
Да, видимо, плохо. С 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".
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 04 окт 2017, 17:52
Филиппов Владислав
чёрт, а SQLite как хранит геометрию, интересно?
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 05 окт 2017, 00:30
Ariki
А я что-то не могу воспроизвести. Пробовал пересохранять TAB и через ogr2ogr, и через QGIS (с опциями и без) - ничего не меняется. QGIS в метаданных пишет Polygon (WKB type: "MultiPolygon"), ogrinfo - Geometry: Unknown (any).
У меня QGIS 2.18.10, GDAL 2.2.1. А у вас?
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 05 окт 2017, 03:13
Филиппов Владислав
и у меня практически тоже 2.18.13 и GDAL 2.1.2
Debian 9 Stretch
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 05 окт 2017, 06:46
trir
думаю первый объект должен быть строго MultiPolygon, иначе слой становится Polygon
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
Откуда такая информация?
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.
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 05 окт 2017, 13:02
trir
Откуда такая информация?
просто предположение, судя по описанию, OGRMultiPolygon в .tab соответсвует двум типам - TABCollection и TABRegion, но GDAL TABRegion вопринимает только как OGRPolygon. Соответсвено при сохранение либа просто смотрит первый элемент и по нему определяет формат сохранения для геометрии и если это OGRPolygon, то сохраняет как TABRegion
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 05 окт 2017, 15:03
Ariki
trir писал(а): ↑05 окт 2017, 06:46
думаю первый объект должен быть строго MultiPolygon, иначе слой становится Polygon
Да, так и есть. Я попробовал в файлах MIF/MID удалить первый объект (мультиполигон), открыв их текстовым редактором, и QGIS распознал слой как имеющий тип Polygon.
Насколько я могу судить, это никак не мешает работать с мультигеометрией в этом файле.
К слову, полигональные шейп-файлы OGR всегда определяет как Polygon, хотя в них могут быть полигоны и мультиполигоны вперемешку. Это не очень логичное поведение, но так уж сложилось.
При повторном сохранении файла, действительно, происходят какие-то странные вещи (сохранённый повторно файл отказывается отображаться на карте). Но это, как я понял, связано с тем, что QGIS при открытии данных с системой координат NonEarth автоматически присваивает им WGS84, что неверно и, я подозреваю, может повлиять на границы пересохраняемого файла в формате TAB.
Re: TAB-file и MultiPolygon. Проблемы
Добавлено: 05 окт 2017, 19:48
Филиппов Владислав
В QGIS есть опция - всем загружаемым слоям с непонятной СК назначать СК ХХХХ. Я так всегда делаю, WGS'а нет.