Страница 1 из 1
полигон с отверстиями MIF отображается неправильно
Добавлено: 06 апр 2017, 18:42
АлексЮстасу
Полигоны с отверстиями MIF отображаются в QGIS без отверстий. Точнее, границы отверстий видны, но полигон один цельный.
Полигон после импорта в TAB Mapinfo:
- MI_hole.png (20.56 КБ) 14597 просмотров
Полигон MIF в Global Mapper:
- GM_hole.png (15.49 КБ) 14597 просмотров
Полигон MIF в QGIS:
- QGIS_hole_1.png (50.32 КБ) 14594 просмотра
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 06 апр 2017, 18:55
Denis Rykov
Может дело в направлении обхода "дырок"?
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 06 апр 2017, 19:44
АлексЮстасу
Направление обхода, серьезно, может влиять?! Это же, вроде бы, атавизм?
Нда... Влияет... Я правильно понял, что обязательно обход внешнего контура нужно сделать по часовой, а внутренних - против часовой?
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 06 апр 2017, 19:50
Игорь Белов
На самом деле не зависит. Невозможно сказать, в каких случаях будет дырка, а в каких заплатка. Просто сохраните в шейп.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 07 апр 2017, 02:09
АлексЮстасу
Даже не смешно как-то - вроде бы несложное дело.
Сохранять в шейп - еще одно действие, которое в моем случае не спасет.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 07 апр 2017, 05:07
gamm
я подобное уже видел, когда в геометрии была лажа. Чтобы не гадать по картинкам, выложите сам файл.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 07 апр 2017, 17:52
АлексЮстасу
Да, MIF делаются программно, и что-то могли накосячить.
Я хотел прикрепить сразу, но исчерпал лимит прикрепляемого.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 07 апр 2017, 22:07
Игорь Белов
Denis Rykov писал(а):Может дело в направлении обхода "дырок"?
Верно, к MIF у QGIS особое отношение. Наблюдения:
- Если внешний контур обходится по часовой стрелке, QGIS не рисует дырки внутри сонаправленных внутренних контуров и рисует внутри противонаправленных.
- Если внешний контур обходится против часовой стрелки, QGIS независимо от направления обхода внутренних контуров рисует дырки, как миленький.
Между тем весь день сегодня (Луна во второй четверти, Юпитер в Деве) MapInfo в разных экспериментах создаёт полигоны с направлением обхода всех внешних и внутренних контуров по часовой стрелке.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 08 апр 2017, 02:05
АлексЮстасу
п. 2 у меня не выполняется...
Видимо, авторы специально внесли нечто непредсказуемое, чтобы совершенство QGIS не казалось вызовом совершенству Божественного промысла.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 08 апр 2017, 04:50
Denis Rykov
А это очень старый баг QGIS, похоже,
#8056.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 08 апр 2017, 05:42
gamm
АлексЮстасу писал(а):п. 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
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 08 апр 2017, 21:13
АлексЮстасу
gamm писал(а):у вас там еще и часть колец не замкнуты (последняя точка не повторяет первую). Но вообще странно - обычно первым делом при загрузке строят топологию, кто в ком лежит. Это делает, похоже, GDAL, по крайней мере rgdal::readOGR() грузит этот полигон правильно. Интересно, а в NextGIS как дела обстоят. Ниже 0 результат загрузки, см. слот hole в полигонах
Да, первая точка в этих MIF не повторяется. Но MapInfo же воспринимает такие описания нормально, и внутренние полигоны дает правильно - как отверстия в большом полигоне. Когда я повторял первую точку в конце, то ситуация не менялась.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 08 апр 2017, 21:23
gamm
АлексЮстасу писал(а):Но MapInfo же воспринимает такие описания нормально
это просто к слову пришлось, GDAL тоже нормально все грузит, по крайней мере в R (и рисуется правильно). Если у вас есть утилиты GDAL под рукой, попробуйте растеризовать этот вектор - если там будут нормальные дырки (а так скорее всего и будет), то я вообще не понимаю, как QGIS может так нехорошо поступать ... похоже, там какой-то древний кусок, который работает мимо GDAL/OGR: если экспортировать ваш файл через GDAL/OGR в SHAPE, все становится нормально
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 08 апр 2017, 21:53
Игорь Белов
gamm писал(а):если экспортировать ваш файл через GDAL/OGR в SHAPE, все становится нормально
Более того, всё становится нормально, если в QGIS сохранить копию злополучного файла в SHAPE.
Re: полигон с отверстиями MIF отображается неправильно
Добавлено: 09 апр 2017, 07:41
gamm
Игорь Белов писал(а):Более того, всё становится нормально, если в QGIS сохранить копию злополучного файла в SHAPE.
это тоже GDAL, что и у меня. Сохранение самописной программой, которая не разворачивает направление обхода, не помогает. Честно говоря, я подобное видел только в Панораме, и то давно - остается вопрос, в NextGIS это поправлено (тикет был от них, насколько я понял)?