полигон с отверстиями MIF отображается неправильно

Здесь нужно сообщать об ошибках в QGIS, с подробным описанием шагов и версии ПО.
Ответить
АлексЮстасу
Гуру
Сообщения: 576
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 64
Ваше звание: топограф, технолог
Откуда: Мааськва

полигон с отверстиями MIF отображается неправильно

Сообщение АлексЮстасу » 06 апр 2017, 18:42

Полигоны с отверстиями MIF отображаются в QGIS без отверстий. Точнее, границы отверстий видны, но полигон один цельный.
Полигон после импорта в TAB Mapinfo:
MI_hole.png
MI_hole.png (20.56 КБ) 1629 просмотров
Полигон MIF в Global Mapper:
GM_hole.png
GM_hole.png (15.49 КБ) 1629 просмотров
Полигон MIF в QGIS:
QGIS_hole_1.png
QGIS_hole_1.png (50.32 КБ) 1626 просмотров

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3327
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 495
Ваше звание: Author
Контактная информация:

Re: полигон с отверстиями MIF отображается неправильно

Сообщение Denis Rykov » 06 апр 2017, 18:55

Может дело в направлении обхода "дырок"?
Spatial is now, more than ever, just another column- The Geometry Column.

АлексЮстасу
Гуру
Сообщения: 576
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 64
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: полигон с отверстиями MIF отображается неправильно

Сообщение АлексЮстасу » 06 апр 2017, 19:44

Направление обхода, серьезно, может влиять?! Это же, вроде бы, атавизм?

Нда... Влияет... Я правильно понял, что обязательно обход внешнего контура нужно сделать по часовой, а внутренних - против часовой?

Игорь Белов
Гуру
Сообщения: 1446
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 894
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение Игорь Белов » 06 апр 2017, 19:50

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

АлексЮстасу
Гуру
Сообщения: 576
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 64
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: полигон с отверстиями MIF отображается неправильно

Сообщение АлексЮстасу » 07 апр 2017, 02:09

Даже не смешно как-то - вроде бы несложное дело.
Сохранять в шейп - еще одно действие, которое в моем случае не спасет.

gamm
Гуру
Сообщения: 2558
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 530
Ваше звание: программист
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение gamm » 07 апр 2017, 05:07

я подобное уже видел, когда в геометрии была лажа. Чтобы не гадать по картинкам, выложите сам файл.

АлексЮстасу
Гуру
Сообщения: 576
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 64
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: полигон с отверстиями MIF отображается неправильно

Сообщение АлексЮстасу » 07 апр 2017, 17:52

Да, MIF делаются программно, и что-то могли накосячить.
Я хотел прикрепить сразу, но исчерпал лимит прикрепляемого.
Вложения
complex_hole_2.rar
(752 байт) 32 скачивания

Игорь Белов
Гуру
Сообщения: 1446
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 894
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение Игорь Белов » 07 апр 2017, 22:07

Denis Rykov писал(а):Может дело в направлении обхода "дырок"?
Верно, к MIF у QGIS особое отношение. Наблюдения:
  1. Если внешний контур обходится по часовой стрелке, QGIS не рисует дырки внутри сонаправленных внутренних контуров и рисует внутри противонаправленных.
  2. Если внешний контур обходится против часовой стрелки, QGIS независимо от направления обхода внутренних контуров рисует дырки, как миленький.
Между тем весь день сегодня (Луна во второй четверти, Юпитер в Деве) MapInfo в разных экспериментах создаёт полигоны с направлением обхода всех внешних и внутренних контуров по часовой стрелке.

АлексЮстасу
Гуру
Сообщения: 576
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 64
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: полигон с отверстиями MIF отображается неправильно

Сообщение АлексЮстасу » 08 апр 2017, 02:05

п. 2 у меня не выполняется...

Видимо, авторы специально внесли нечто непредсказуемое, чтобы совершенство QGIS не казалось вызовом совершенству Божественного промысла. :)

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3327
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 495
Ваше звание: Author
Контактная информация:

Re: полигон с отверстиями MIF отображается неправильно

Сообщение Denis Rykov » 08 апр 2017, 04:50

А это очень старый баг QGIS, похоже, #8056.
Spatial is now, more than ever, just another column- The Geometry Column.

gamm
Гуру
Сообщения: 2558
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 530
Ваше звание: программист
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение gamm » 08 апр 2017, 05:42

АлексЮстасу писал(а):п. 2 у меня не выполняется...
у вас там еще и часть колец не замкнуты (последняя точка не повторяет первую). Но вообще странно - обычно первым делом при загрузке строят топологию, кто в ком лежит. Это делает, похоже, GDAL, по крайней мере rgdal::readOGR() грузит этот полигон правильно. Интересно, а в NextGIS как дела обстоят. Ниже 0 результат загрузки, см. слот hole в полигонах

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

Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 1 obs. of  13 variables:
  .. ..$ object_name: Factor w/ 1 level "ApronElement": 1
  .. ..$ stfeat     : Factor w/ 1 level "2000-01-01T00:00:00Z": 1
  .. ..$ endfeat    : Factor w/ 1 level "9999-01-05T00:00:00": 1
  .. ..$ stvalid    : Factor w/ 1 level "2000-01-01T00:00:00Z": 1
  .. ..$ endvalid   : Factor w/ 1 level "9999-01-05T00:00:00": 1
  .. ..$ interp     : Factor w/ 1 level "": 1
  .. ..$ feattype   : Factor w/ 1 level "apron_element": 1
  .. ..$ idnumber   : Factor w/ 1 level "111": 1
  .. ..$ idarpt     : Factor w/ 1 level "UNNT": 1
  .. ..$ vacc       : num 0.5
  .. ..$ hacc       : num 0.5
  .. ..$ vres       : num 0.01
  .. ..$ hres       : num 0.01
  ..@ polygons   :List of 1
  .. ..$ :Formal class 'Polygons' [package "sp"] with 5 slots
  .. .. .. ..@ Polygons :List of 3
  .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
  .. .. .. .. .. .. ..@ labpt  : num [1:2] 245.2 98.7
  .. .. .. .. .. .. ..@ area   : num 1.09e-06
  .. .. .. .. .. .. ..@ hole   : logi FALSE
  .. .. .. .. .. .. ..@ ringDir: int 1
  .. .. .. .. .. .. ..@ coords : num [1:9, 1:2] 245 245 245 245 245 ...
  .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
  .. .. .. .. .. .. ..@ labpt  : num [1:2] 245.2 98.7
  .. .. .. .. .. .. ..@ area   : num 8.62e-08
  .. .. .. .. .. .. ..@ hole   : logi TRUE
  .. .. .. .. .. .. ..@ ringDir: int -1
  .. .. .. .. .. .. ..@ coords : num [1:5, 1:2] 245 245 245 245 245 ...
  .. .. .. .. ..$ :Formal class 'Polygon' [package "sp"] with 5 slots
  .. .. .. .. .. .. ..@ labpt  : num [1:2] 245.2 98.7
  .. .. .. .. .. .. ..@ area   : num 8.62e-08
  .. .. .. .. .. .. ..@ hole   : logi TRUE
  .. .. .. .. .. .. ..@ ringDir: int -1
  .. .. .. .. .. .. ..@ coords : num [1:5, 1:2] 245 245 245 245 245 ...
  .. .. .. ..@ plotOrder: int [1:3] 1 3 2
  .. .. .. ..@ labpt    : num [1:2] 245.2 98.7
  .. .. .. ..@ ID       : chr "1"
  .. .. .. ..@ area     : num 1.09e-06
  ..@ plotOrder  : int 1
  ..@ bbox       : num [1:2, 1:2] 245.2 98.7 245.2 98.7
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "x" "y"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
  .. .. ..@ projargs: chr NA

АлексЮстасу
Гуру
Сообщения: 576
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 64
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: полигон с отверстиями MIF отображается неправильно

Сообщение АлексЮстасу » 08 апр 2017, 21:13

gamm писал(а):у вас там еще и часть колец не замкнуты (последняя точка не повторяет первую). Но вообще странно - обычно первым делом при загрузке строят топологию, кто в ком лежит. Это делает, похоже, GDAL, по крайней мере rgdal::readOGR() грузит этот полигон правильно. Интересно, а в NextGIS как дела обстоят. Ниже 0 результат загрузки, см. слот hole в полигонах
Да, первая точка в этих MIF не повторяется. Но MapInfo же воспринимает такие описания нормально, и внутренние полигоны дает правильно - как отверстия в большом полигоне. Когда я повторял первую точку в конце, то ситуация не менялась.

gamm
Гуру
Сообщения: 2558
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 530
Ваше звание: программист
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение gamm » 08 апр 2017, 21:23

АлексЮстасу писал(а):Но MapInfo же воспринимает такие описания нормально
это просто к слову пришлось, GDAL тоже нормально все грузит, по крайней мере в R (и рисуется правильно). Если у вас есть утилиты GDAL под рукой, попробуйте растеризовать этот вектор - если там будут нормальные дырки (а так скорее всего и будет), то я вообще не понимаю, как QGIS может так нехорошо поступать ... похоже, там какой-то древний кусок, который работает мимо GDAL/OGR: если экспортировать ваш файл через GDAL/OGR в SHAPE, все становится нормально

Игорь Белов
Гуру
Сообщения: 1446
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 894
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение Игорь Белов » 08 апр 2017, 21:53

gamm писал(а):если экспортировать ваш файл через GDAL/OGR в SHAPE, все становится нормально
Более того, всё становится нормально, если в QGIS сохранить копию злополучного файла в SHAPE.

gamm
Гуру
Сообщения: 2558
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 530
Ваше звание: программист
Откуда: Казань

Re: полигон с отверстиями MIF отображается неправильно

Сообщение gamm » 09 апр 2017, 07:41

Игорь Белов писал(а):Более того, всё становится нормально, если в QGIS сохранить копию злополучного файла в SHAPE.
это тоже GDAL, что и у меня. Сохранение самописной программой, которая не разворачивает направление обхода, не помогает. Честно говоря, я подобное видел только в Панораме, и то давно - остается вопрос, в NextGIS это поправлено (тикет был от них, насколько я понял)?

Ответить

Вернуться в «Ошибки QGIS»