У меня есть вектор многоугольника, и я хочу быстро получить центроид этого многоугольника для вставки в текстовый документ. Я работаю с QGIS. Я искал другие вопросы, и, хотя некоторые из них довольно близки, они не совсем отвечают на мой вопрос.
В идеале координаты центроида должны быть в таблице атрибутов многоугольника, и я могу просто скопировать и вставить координаты.
Я не хочу создавать отдельный векторный файл точек, представляющий центроид, а затем найти эти координаты, скопировать и вставить их.
qgis
attribute-table
centroids
Дэвид
источник
источник
Ответы:
Центроид по определению является точечным слоем, а не многоугольником. Для этого вам нужно создать новый слой, который очень прост в QGIS 1.8 и более поздних версиях.
После этого вы можете сделать пространственное соединение, чтобы добавить столбцы центроидов к полигонам и снова удалить точечный слой.
источник
Действительно, создание нового шейп-файла - один из самых простых вариантов. Однако вам не нужно копировать и вставлять координаты. Сделай это:
В качестве альтернативы вам придется импортировать ваши данные в PostGIS, а затем перебирать полигоны, используя функцию ST_Centroid, и сохранять результат в новом поле. Эта работа примерно такая же, но второй вариант означает, что у вас нет отдельного файла точек центроидов.
источник
Более надежное решение для ответа Майка:
long = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '(-?\\d+\\.?\\d*) -?\\d+\\.?\\d*')) lat = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '-?\\d+\\.?\\d* (-?\\d+\\.?\\d*)'))
источник
Как насчет использования этого в Полевом Калькуляторе 2.2?
Длинное поле = substr (geomToWKT (центроид ($ geometry)), 7, 12)
Lat field = substr (geomToWKT (центроид ($ geometry)), strpos (geomToWKT (центроид ($ geometry)), '') +2, 12)
Кажется, это решено в 2.6 с помощью опции xmin xmin (centroid ($ geometry))
источник
Я только что наткнулся на этот пост почти на 5 лет позже (!), Но вот что я делаю, чтобы вычислить центроид многоугольника в версии 2.18.14:
источник
Свяжите таблицу точек центроида с таблицей многоугольников и затем поместите координаты с именем и формой многоугольника. Полигоны не имеют одного лата сами по себе
источник
Наткнулся на этот пост и было сложно следить, предложил обновить:
Примечание. Это позволит рассчитать широту и долготу в ваших координатах проекции (которые могут быть метрами). Если вы хотите получить координаты в десятичных градусах (если я предполагаю, что вы это делаете, или они в основном неразборчивы), сначала сохраните слой в этом CRS: EPSG: 4326, WGS 84.
источник
lon = ToReal (regexp_substr (geomToWKT (центроид ($ geometry)), '([\ s]')) lat = ToReal (regexp_substr (geomToWKT (центроид ($ geometry))), '\ s [)]'))
источник