Birden çok niteliğe dayalı olarak QGIS'deki noktalar nasıl şekillendirilir


13

Depremlerin gösterilmesinde faydalı bir yol bulmaya çalışırken, yönetmenin o kadar kolay olmadığını fark ettim.

Nokta büyüklüğünden "Büyüklük", "Tarih" ve "Derinlik" tanımak istiyorum. Gibi bir şey:

  • boyut: büyüklüğüne göre
  • derinlik: temel renk (ör. <15 kırmızı, 15-30 sarı,> 30 mavi)
  • tarih:% 100 renkten beyaza gölgelendirme olarak renk yoğunluğu ...

Düzinelerce kural tanımlamadan bunu yapmanın bir yolu var mı?

Yanıtlar:


14

Kural tabanlı etiketlemeyi neden kullanmıyorsunuz? Özellik verilerinize göre birden fazla degradeler için kategoriler kullanırsanız görevi çok kolaylaştırabilirsiniz. Benim bakış açımdan kural tabanlı etiketlemede kategorileri kullanmak QGIS'in belediye başkanının avantajlarından biridir.

Verileriniz için (yapıyı bilmeden) aşağıdaki iş akışını tavsiye ederim:

  • Kategorize veya dereceli nokta şekillendirici (beyaz veya grimsi stil) aracılığıyla tarih değerleri için kural tabanlı basit bir degrade yapın .
  • "Gelişmiş" ve "boyut ölçeklendirilmiş alan" ı tıklayarak noktaların boyutunu ayarlayın. Burada puanlarınızın büyüklüğünü seçin . Ortaya çıkan stili SLD stili olarak kaydedin!
  • , Kural tabanlı etiketleme git senin SLD'yi jn yüklemek ve sizin için için sevme renk gradyanı ile rightclick bir kategori (veya aralık) başına her veri noktası için eklemek derinlik ve her ruleset uygulayın.

Bunun gibi (bir kategorideki kurallar hakkında bir kategori de yapabilirsiniz ;-)): resim açıklamasını buraya girin

  • Daha sonra, oluşturma sırasını ayarlamayı ve noktaların boyutlarını kontrol etmeyi unutmayın.

Bu çözümün sitenizdeki bazı çabalara (fare tıkanıklıkları) bağlı olduğunu anlıyorum, ancak sonunda güzel bir harita her zaman çabaya değer.



4

QGIS 2.8 için güncellendi

Bunun gibi veriler varsayarsak:

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

Veri tanımlı stili kullanarak, büyüklük alanı tarafından kontrol edilecek boyutu ayarlayın.

Tarih ve derinliğe göre tanımlanan renk için aşağıdaki ifadeyi kullanabilirsiniz

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

1900'den itibaren "eski" noktalar beyaz hsl (x, x, 100) olurken yeni noktalar hsl'ye (x, x, 50) kadar daha renklidir.


3

Diğer seçenek, veri katmanı stilinin her biri için kullanılabilen bir boyut yardımcısı kullanmaktır. Nokta verilerinizi belirli bir özelliği kullanarak renge göre kategorize ettiğinizi varsayalım. Her kategoriyi sağ tıklayın ve Boyutu Değiştir'i seçin. Bir boyut iletişim kutusu görüntülemelidir. Ardından ifade filtresini tıklayın ve ardından Boyut Yardımcısı'nı seçin.

resim açıklamasını buraya girin

Boyut yardımcısı iletişim kutusu, boyutlandırılacak sütunu seçme seçeneğine sahiptir. Ayrıca, simgelerinizi ölçeklendirmek istediğiniz ölçek yöntemini seçebilir ve ardından boyut aralığını ve veri değerlerinizin karşılık gelen aralığını sağlayabilirsiniz. resim açıklamasını buraya girin Bunu verilerinizin her kategorisi için yapmanız gerekeceğini unutmayın.


Bu cevabın neden daha fazla oy verilmediğini bilmiyorum - bu istediğim şey ve çok hızlı
Scott Staniewicz

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.