Poligon centroid nasıl belirlenir?


34

Çokgen bir vektöre sahibim ve hızlı bir şekilde bu çokgenin centroid'ini bir metin belgesine yerleştirmek için elde etmek istiyorum. QGIS ile çalışıyorum. Diğer soruları araştırdım ve bazıları biraz yakın olsalar da sorumu cevaplamıyorlar.

İdeal olarak, centroid koordinatları poligonun nitelik tablosunda olacaktı ve ben sadece koordinatları kopyalayıp yapıştırabilirim.

Centroid'i temsil eden ayrı bir nokta vektör dosyası oluşturmak ve sonra bu koordinatları bulmak, kopyalayıp yapıştırmak istemiyorum.


Metin belgeniz hangi formatta?
Nathan W.

Bu bir MS Word belgesidir, ancak gerçekten herhangi bir şey olabilir.
David

Yanıtlar:


34

Bir centroid tanım başına bir poligon değil nokta noktasıdır. Bunun için QGIS 1.8 ve daha yüksek sürümlerde pasta kadar kolay olan yeni bir katman oluşturmanız gerekir.

  • Çokgeninize yükleyin
  • Menüye gidin -> Vektör -> Geometri araçları -> Çokgen centroid ve bir centroid nokta tabakası oluşturun
  • Oluşturulan centroidin koordinatlarını -> vector Menu -> Geometry tools -> Geometri sütunlarını ver / ekle 'yi tıklayarak özellik tablosuna verin.

Daha sonra, çokgenlere centroid sütunlarını eklemek ve nokta katmanını tekrar silmek için uzamsal birleştirme yapabilirsiniz.


Cevabınız için teşekkürler, yardımın için teşekkür ederim. Yine de, bu, centroidin koordinatlarının ne olduğunu bilmek çok basit bir çalışma. Çok kötü, QGIS'te daha basit bir yol yok.
David

Hala daha kolay istiyorsanız, PostGIS'e ve aşağıda belirtilen ST_Centroid fonksiyonuna bir göz atabilirsiniz. Bu şekilde geçici dosyalar oluşturmanıza gerek kalmaz. Alternatif olarak, QGIS için kendinize bir python betiği yazabilir veya SEXTANTE Modelleyiciyi kullanabilirsiniz.
Curlew

10

Gerçekten, yeni bir şekil dosyası oluşturmak en kolay seçeneklerden biridir. Ancak, koordinatları kopyalamanız ve yapıştırmanız gerekmez. Bunu yap:

  • Polygon Centroid aracını kullanarak centroid dosyalarınızı oluşturun.
  • Centroids özellik tablosunu açın ve düzenlenebilir hale getirin (alttaki kalem simgesi).
  • Alan hesap makinesini açın (alttaki hesap makinesi simgesi) ve Yeni Alan Oluştur seçeneğini seçin ve anlamlı bir şey olarak adlandırın (örn. Doğuya dönüş).
  • İşlevler listesinden Geometri menüsünü genişletin ve $ x seçeneğini seçin, ardından $ y için yeni bir sütunla tekrarlayın (Northing diyoruz).
  • Düzenlemelerinizi kaydedin ve şimdi orjinal poligon kimliği ve centroids aracını kullanıyorsanız öznitelik tablosunun bir parçası olarak tüm koordinatlara sahipsiniz.

Alternatif olarak, verilerinizi PostGIS'e aktarmanız ve ardından ST_Centroid işlevini kullanarak çokgenler üzerinde yinelemeniz ve sonucu yeni bir alanda saklamanız gerekir. İlgili iş yaklaşık olarak aynıdır ancak ikinci seçenek ayrı bir centroid puan dosyanızın olmadığı anlamına gelir.


Cevap için teşekkürler. Yardımın için minnettarım. Görünüşe göre Curlew'in cevabı benim için biraz daha kolay. Yine de bu cevapların ikisi de istediğimden çok daha fazla iş. Sonunda isimlendirme, silme, düzenleme vb. Gibi çeşitli şekil dosyalarına sahip olursunuz
David

8

Mike'ın cevabına daha sağlam bir ruh hali: 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*)'))


1
Yetersiz cevap;)
Fernando Irarrázaval G 14:17

6

Bunu 2.2 Alan Hesaplayıcısında kullanmaya ne dersiniz?

Uzun alan = substr (geomToWKT (centroid ($ geometri)), 7, 12)

Enlem alanı = substr (geomToWKT (merkez ($ geometri)), strpos (geomToWKT (merkez ($ geometri)), '') +2, 12)

Görünüşe göre 2.6 ile xmin seçeneği xmin (centroid ($ geometri))


5

Bu gönderiye yaklaşık 5 yıl geç kaldım (!).

  1. Çokgen katmanını düzenlemeye başlayın
  2. Yeni bir metin alanı oluştur, centroidxy olarak adlandır
  3. Alan hesap makinesini kullanarak, centroidxy = x ($ geometri) || ',' || y ($ geometri)
  4. Sonuç şöyle görünüyor: 397640.915545362, 2126924.53637653
  5. Düzenlemelerinizi kaydedin.
  6. Çokgen katmanınız şimdi x, y centroid değerlerine sahip bir alan içeriyor

basit ve mükemmel
Kazuhito

3

Centroid puan tablosunu çokgenlerin tablosu ile ilişkilendirin ve sonra koordinatları çokgen adı ve şekli ile belirtin. Çokgenlerin içinde ve kendilerinde bir tane uzun yoktur


Cevabınız için teşekkürler. Evet, çokgenlerin kendi içlerinde uzun bir süre kalmadığını ve sadece hesaplanabilecek bir şey olduğunun farkındayım. Maalesef QGIS’te bundan daha kolay değil. Herkese cevaplar için teşekkür ederim. Ve çok hızlı. Teşekkürler!
David

2

Bu yayına rastladım ve takip etmesi zordu, güncelleme önerildi:

Not: Bu, projeksiyon koordinatlarınızdaki (metre olabilir) enlem ve boylamı hesaplar. Koordinatları ondalık derecelerde istiyorsanız (yaptığınızı ya da çoğunlukla anlaşılmaz olduklarını varsayarak) önce katmanı bu CRS: EPSG: 4326, WGS 84'e kaydedin.

  1. Açık alan hesaplayıcısı
  2. Yeni alan oluştur
  3. Adı girin (Enlem veya Boylam)
  4. Çıkış alanı türü olarak ondalık seçin
  5. Enlem için bu ifadeyi girin: y ($ geometri) ve Boylam için bu ifade: x ($ geometri)
  6. tamam tuşuna basın

-2

lon = ToReal (regexp_substr (geomToWKT (centroid ($ geometri)), '([\ s]')) lat = ToReal (regexp_substr (geomToWKT (centroid ($ geometri))), '\ s [)]'))


1
Bu hiç bir cevap değil. Lütfen bir soruyu nasıl cevaplayacağınızı daha iyi anlayabilmek için turu ziyaret edin ...
Nightwatch
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.