Координаты центроида для нечетных многоугольников

13

У меня есть проблема в вычислении центроидов определенных многоугольников в QGIS (с помощью инструментов геометрии): для определенных многоугольников - со странной и довольно длинной формой - вычисленные центроиды находятся вне многоугольника. Посмотрите, например, на полигон, отмеченный красным, на рисунке ниже:

введите описание изображения здесь

Его центроид (на который указывает синяя стрелка) фактически выходит за пределы интересующего многоугольника. Это происходит для нескольких (но раздражающих) других полигонов.

Я относительно новичок в QGIS, поэтому не думаю, что эта проблема связана с проекцией шейп-файла с полигонами (WGS 84). В любом случае я попытался заново спроецировать карту с помощью WGS84 / UTM Zone 31, что соответствует Бельгии (стране, на которую я смотрю).

Я не нашел ответа на подобные вопросы в прошлых дискуссиях; извинения, если я случайно пропустил это.

Andrea
источник
2
Центроид расположен в центре масс объекта, поэтому обычно для невыпуклого объекта центроид находится вне самого объекта. См. Изображение примера многоугольника в документации PostGIS postgis.net/docs/ST_Centroid.html . Возможно, вам нужен эквивалент ST_PointOnSurface postgis.net/docs/ST_PointOnSurface.html .
user30184
К вашему сведению, см. Gis.stackexchange.com/questions/76498/…
Martin F

Ответы:

16

Я думаю, что стандартные инструменты центроида QGIS вычисляют центр масс, чтобы определить центроид многоугольника. Так что это может лежать вне самого многоугольника (ничего общего с проекцией).

Если вы хотите рассчитать центроид с точки зрения его размеров, вы можете использовать плагин realcentroid, который вы можете скачать с:

Plugins > Manage and Install Plugins...

Пример:

Неправильный многоугольник с красным кругом, рассчитанный с помощью инструмента центроида Polygon от QGIS (и SAGA); зеленый круг, рассчитанный из плагина realcentroid :

Результат


Существует также онлайн-скрипт, который дает тот же результат, что и плагин, который вы можете скачать с:

Processing Toolbox > Scripts > Tools > Get scripts from on-line scripts collection

И найдите Real centroidсценарий.

Джозеф
источник
1
Да, QGIS использует центр масс, также называемый геометрическим барицентром, как центроид.
Якоб
6
Мне не нравится название "Настоящий центроид". Точка на поверхности была бы лучше, потому что центроид просто по определению является en.wikipedia.org/wiki/Centroid .
user30184
1
@ user30184 - Действительно, описание в плагине также гласит, что функциональность аналогична ST_PointOnSurfaceфункции PostGIS.
Иосиф
@ Андреа - Добро пожаловать, рад, что это помогло :)
Джозеф
2
Есть много защит от центроидов, не зацикливайтесь на "настоящем".
mdsumner
9

Для работы с алгоритмами QGIS также есть «Точка на поверхности» в группе инструментов Векторная геометрия. Нет необходимости использовать внешние плагины или базы данных

giohappy
источник