QGIS kullanarak katmandaki tüm satırları köşelerde bölmek?


11

Bir QGIS katmanındaki tüm satırları köşelerinde ( bu gibi ) otomatik olarak bölmek istiyorum .

Bir google araması yaptım ve bu makaleyi buldum , bu oldukça yakın ama iş akışı karmaşık. Bu aracı kullanmak için (CBS'ye aşina olmayan) iş arkadaşlarımı eğitmem gerektiğinden, bir eklenti kadar basit bir şey veya GRASS gerektirmeyen bir şey istiyorum. 2010'dan bu yana uzun zaman geçti - bir önceki yanıtın zamanı, merak ediyorum, aynı sonucu elde etmenin daha iyi bir yolu var mı?


Günümüzde QGIS'ten GRASS araçlarını kullanabilirsiniz. Belki Vektör-> Geometri Araçları-> Çok parçalı tek parça yardımcı olabilir. Sextante araç kutusu "hat katmanını Patlat" Ve "bölünmüş özelliğini" Orada eklentisi olup olmalıdır
simplexio

Bahsettiğiniz cevabın (hala) doğru prosedür olduğunu düşünüyorum. "Tek Parçadan Çok Parçaya" vektör aracı istediğinizi yapmaz. Her tepe noktasında değil , düğümlerde çoklu linestring yapar .
Micha

@simplexio: Sextante araç kutusu ile Bernd V. yanıtında olduğu gibi bir hata mesajı aldım ve internette hiçbir yerde 'split özellik' eklentisini bulamıyorum.
Cao Minh Tu

@Micha: bu prosedür doğru olabilir, ancak CBS'ye aşina olmayan iş arkadaşlarım için çok karmaşık olacak, bu yüzden her şey başarısız olduğunda son çare olarak düşüneceğim :)
Cao Minh Tu

@Cao Minh Tu: Yeni oluşturulan çizgi katmanı ile Linux Master ve Win7 1.8'de tekrar 'Split özelliği' test ettim ve işte burada. Lütfen sıfırdan bir test katmanı oluşturun ve oraya uygulayın. Belki orijinal katmanlarınızda önce çözülmesi gereken hatalar vardır!?
Bernd V.Mar

Yanıtlar:


17

İşleme Araç Kutusu'ndan patlayan satırlar , köşelerindeki tüm satırları ayrı satırlara böler.

Menü İşleme -> Araç Kutusu. İşlevi bulmak için arama alanına "patla" yazın. Açılır listeden çizgi katmanınızı seçin ve başlayın. Bu yeni bir katman oluşturacaktır.

Çizgi katmanından bir veya daha fazla satır seçilmesi, geri kalanını atarak yalnızca bu özelliklere sahip bölünmüş bir katman oluşturur.

Not: QGIS hızlı ilerlediğinden, aşağıdaki tüm bilgiler zaten eski.

Explode hatları SEXTANTE araç kutusu aracılığıyla noob-çözüm olacağını düşünüyorum . QGIS Geoalgorithms > Vector geometry tools > Explode lines. Ne yazık ki, şu anda çalışmıyor gibi görünüyor, sadece bir hata mesajı alıyorum.

Traceback (most recent call last):
  File "path/.qgis//python/plugins\sextante\core\GeoAlgorithm.py", line 145, in execute
    self.processAlgorithm(progress)
  File "path/.qgis//python/plugins\sextante\algs\Explode.py", line 58, in processAlgorithm
    features = QGisLayers.features(layer)
NameError: global name 'layer' is not defined

Çalışan bir çözüm, benim için Split Featureişi yapan "katkıda bulunan" depodan -Plugin.

Genel olarak sextante işlevlerini ayrı eklentilere tercih ederim, sextante ile iş akışı çok daha hızlıdır ve ara adımların önemsiz dosyaları üretmez (çalışırsa).

DÜZENLEME: Ne yazık ki, pek çok eklenti henüz resmi eklenti deposuna taşınmadı, ancak yine de yalnızca "katkıda bulunan" eklenti deposu üzerinden kullanılabilir: http://pyqgis.org/repo/contributed , varsayılan depolardan kaldırıldı 1.8 sürümü ile liste.

Orada bunları tek tek indirebilir ve .qgis / python / plugins klasörünüzden açabilirsiniz VEYA bu adresi eklenti veri havuzu listenize ekleyebilirsiniz: Plugins -> Fetch python plugins -> Tab "Repositories" -> Add ... -> enter a name and the url.


Bana 'Split Feature' eklentisini nerede bulacağınızı söyleyebilir misiniz - Resmi eklenti deposunda bulamıyorum? SEXTANTE Explode satırlarında sizinkiyle aynı hata mesajını aldım
Cao Minh Tu

@Cao Minh Tu: Üzgünüm, tamamen eski depoyu listeme eklediğimi unuttum, bu eklentinin sadece bulunduğu yer. düzenlemelerime bakın.
Bernd V.

Split Feature eklentisini denedim, hata mesajı yok, ancak çıktı katmanında hiçbir şey yoktu.
Cao Minh Tu

Pyqgis.org/repo/contributed adresinde yalnızca 404 hatası var - URL değişti mi?
til_b

@til_be see my edit
Bernd V.

4
  1. GRASS harita kümesini Aç / Oluştur (böylece verilerinizdeki araçları çalıştırabilirsiniz)
  2. GRASS araçlarını açın / GRASS veritabanına bölmek istediğiniz şekil dosyasını içe aktarın
  3. V.split.vert komutunu çalıştırın (maksimum köşe sayısını ayarlayın = 2)

Bu çözüm segment geometrilerinde z değerlerini korur
Tamas Kosa

1
    segment_list = []
    for feature in feature_list:
        vertices = feature.geometry().asPolyline() # returns list of vertices comprising polyline
        for point in range(len(vertices)-1):
            segment = QgsFeature()
            segment.setGeometry(QgsGeometry.fromPolyline([vertices[point], vertices [point+1]]))
            segment.setAttributes(feature.attributes())
            segment_list.append(segment)
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.