QGIS’te çizgileri biraz farklı uç noktalarla birleştirme


22

QGIS'de iki hattım var. Bitiş noktaları birbirine yakın, ancak tam olarak hizalanmamış. İki çizgiyi bir çizgiye dönüştürmek istiyorum, iki uç nokta orta noktaya birleştirildi.

Gelebildiğim en yakın şey "Seçili özellikleri birleştir". Bu bana bir özellik veriyor, ancak iki ayrı çizgiden oluşuyor - bitiş noktaları arasında bir çizgi yok.

Illustrator’ın Katılma Yolları özelliğine benzer şekilde çalışan bir şey arıyorum (Nesne> Yollar> Katılma).

QGIS bunu yapar mı?

Yanıtlar:


12

Hızlı cevap: hayır! Bu işlemi doğrudan katman üzerinde yapmak için böyle bir araç yoktur ("İki Satır Birleştir" eklentisi kesişmeyi gerektirir).

Çok basit bir katman için çizgileri noktalara çevirerek (düğüm düğümlerini çıkartarak) ve daha sonra points2one (satır çıktısı) ile birleştirerek yapabilirsiniz.

  1. Çizgi katmanınız için yapışmayı (Ayarlar | Yapışma seçenekleri ...) açtığınızdan emin olun (5 piksel benim için iyi çalışıyor).
  2. Bir uç noktadan diğerine yeni bir satır oluşturun.
  3. Üç satırın tümünü seçin (iki orijinal satır + yenisi) ve bunları birleştirin (Düzenle | Seçilen özellikleri veya araç çubuğu düğmesini birleştir).

1
Teşekkürler. Sadece birleştirmem gereken birkaç satır vardı, bu yüzden bu hızlı ve kolaydı. (@Michael Markieta'nın cevabı karmaşık durumlara daha uygun görünüyordu.)
Evan

14

Bunu bir QGIS ve GRASS kombinasyonu ile yapabilirsiniz.

  1. Vektör katmanınızı bir GRASS eşlemesine aktarın (Grass | File> Import Vector Data)
  2. Harita setinizi QGIS'de açın (QGIS | Eklentiler> GRASS> Harita setini aç)
  3. GRASS haritanızdan QGIS projenize vektör katmanı ekleyin (QGIS | Plugins> GRASS> GRASS vektör katmanı ekle)
  4. V.clean.snap (QGIS | Eklentiler> GRASS> GRASS araçlarını aç> Modüller Listesini> v.clean.snap) kullanın

Çalışma alanı boyunca uygun bir tepe noktası elde etmek için v.clean.snap 'eşiğini' ayarlayın.


10

İki satır segmentini bir satıra katılmak istediğinizi varsayıyorum. görüntü tanımını buraya girin

Bu şekilde yaptım ...

  • Düzenlemeyi etkinleştir.
  • Yapışmayı açın (Ayarlar -> Yapışma Seçenekleri ...) görüntü tanımını buraya girin
  • Düğüm düğümü aracını seçin.görüntü tanımını buraya girin
  • Bir düğüm eklemek için satırlardan birinin sonuna yakın bir yere çift tıklayın. görüntü tanımını buraya girin
  • Diğer satırın sonuna oturtmak için düğümü sonunda sürükleyin görüntü tanımını buraya girin
  • Her iki satırı da seç
  • Özniteliklerini birleştir (farklı özniteliklere sahipse bir satırlık termo yapamazsın)görüntü tanımını buraya girin
  • İki özelliği birleştirgörüntü tanımını buraya girin

Bu, bir satır ile sonuçlanmalıdır. görüntü tanımını buraya girin


Her şey yolunda. Peki ya 22.000 satırlık veri kümesine ne dersiniz? Bunu el ile yapmaya devam
edemem


3

Tek özelliğinizin tek bir LINESTRING yerine MULTILINESTRING'den oluştuğunu kastediyorsanız, bir Postgis veritabanı kullanıyorsanız bunu kolayca düzeltebilirsiniz:

update your_table set your_geo_column = ST_LineMerge(your_geo_column);

Bunu yapmak için sadece 1 satır istiyorsanız, WHERE id = your_row_id tabiki eklemelisiniz.


2

Ayrıca birileri deneyebilir:

  1. .shp'yi .dxf olarak kaydedin
  2. DraftSight ile açık .dxf
  3. polyline parçalarını birleştir
  4. .dxf dosyasını qgis ile yeniden açın ve .shp olarak kaydedin
  5. Vektör menüsünden -> Geometri araçları -> Çokgenlere çizgiler

2

Bunu sadece QGIS 3.4.0 ile yaptım, yukarıda tnagel tarafından belirtilen Join Çoklu Satırları birleştir eklentisini kullanarak (Vektör menüsü> Birden Çok Satırla birleştir seçeneğinin altına yükler). Yaklaşık 20 iz çizgisi parçasını yaklaşık 20 iz çizgisine dahil etmek için iyi çalıştı. Ne kadar çok parçaya sahipseniz ve kapsadıkları alan ne kadar büyükse, problemleri o kadar az izlemeniz gerekeceği için pratikte o kadar az pratik olur (tnagel'in tanımladığım problemlerden birini yapmış olabilir).

Katılmak istediğiniz satırları seçersiniz, menü öğesini tıklar ve onlara katılır (istediğiniz kadar satır seçebilirsiniz, ancak ...), uçlar bir mil uzakta olsa bile, birinin ucunu diğerinin ucuna bağladığından, uçlarınızın yeterince yakın olduğundan emin olun, bu yüzden sonuçlardan memnun kalacaksınız (ipucumu başka bir yazıdaki satırlarımın uçlarını işaretçilerle işaretlemek için kullandım, bu yüzden kolaydı. görmek için (Özellikler> Semboloji> bir işaretleyici satırı ekleyin ve sembolü kolayca görebilecek kadar büyük yapın> radyo düğmesini "yalnızca son köşede" seçin (ve isterseniz, önce farklı bir sembole sahip bir işaretleyici satırı ekleyin ve "önce yalnızca tepe noktası ")).

Ayrıca, çizgiler görünüşte yönlü olabilir. Bu nedenle, örneğin A hattının en güney ucunun altındaki B hattının en güney ucuyla (istemediğiniz başka bir uzun düz çizgi) birleşmediğini izlemeniz gerekir.

Bunun gerçekleştiği zaman, bir çizginin yönünü bir uçtan diğerine çevirmek için Gelişmiş İşleme Araç Çubuğunda "Ters satır" kullanabileceğimi ve "ters satır" kullanabileceğimi öğrendim (satırın yerini değiştirmez, sadece satırın başlangıcını çevirir) çizginin sonunda), sonra tekrar çizgileri birleştirin.

Bu konuda iyi bir şey, değişikliklerin / düzenlemelerin mevcut katmanınıza kaydedilmesidir, bu nedenle sonuçları yeni bir şekil dosyası olarak kaydetmenize gerek yoktur (önce bir yedekleme yapın).

QGIS'in çekirdeği ve eklenti geliştiricileri tarafından yapılan çalışmalara sürekli hayran kaldım. Akıllı yapıcı insanların birlikte çalışmaya karar verdiklerinde neler yapabileceklerini gösterir. Teşekkür ederim!


0

OpenJUMP (Plus sürümü) kullanarak:

  1. Dosya> Dosyayı aç
  2. Eklentiler> Topoloji> Ağ topolojisi temizliği ...
  3. Yeni katmana sağ tıklayın (sabit): Veri setini ....

Sonuç bu: görüntü tanımını buraya girin


0

Benim durumumda çizgiler farklı katmanlarda ve farklı özelliklerdedir. Katmanları mmqgis ile birleştirdim ve sonraki adımda çizgileri yapışma ve birleştirme tekniği ile birleştirdim.

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.