QGIS'te etiketlemek için yalnızca bir kontur satırı mı seçiyorsunuz?


12

Etiketleme için sadece bir kontur çizgisi seçmek mümkün müdür?

Her satır için çok sayıda etiketim var ve yalnızca ana olanları etiketlemeyi tercih edeceğim 1000 mve1500 m


Bunun bir kopya olup olmadığından emin değilim, ancak gis.stackexchange.com/q/89501/1297 ve gis.stackexchange.com/q/59778/1297 adreslerine bir göz atabilir misiniz? aramak? Ve sonra, denediğiniz şey ve belki de nerede yanlış gittiğiyle ilgili bazı ayrıntılar sağlamanızın sorunuza yardımcı olacağını düşünüyorum.
SaultDon

Yanıtlar:


13

QGIS 2.6'da (belki daha önceki sürümlerde de bilmiyorum) bunu Katman Özellikleri, Labelssekme, Renderingbölüm altında yapabilirsiniz . Oluşturma seçenekleri listesinin yaklaşık yarısı, gerçekten etiketlenecek özelliklerin listesini tanımlayacak bir ifade yazmanıza izin veren bir düğmedir. İfadeniz böyle bir şey olacaktır "Elevation" IN (1000, 1500). İşte düğme (sarı renkte), bu sadece 32 yükseklik değeri olan konturları etiketlemek için ayarlanmış:

resim açıklamasını buraya girin


11

Bir yaklaşım, kontur tabakasını yüklemek ve onu şekillendirmek olacaktır. Daha sonra aynı katmanı tekrar yükleyin ve bir filtre uygulayın (katmanı sağ tıklayın ve 'Filtre ..' seçeneğine gidin) Resimde gösterilene benzer bir filtre ifadesi kullanın. Benim durumumda 50 metrelik dikey aralıklarla büyük konturlar istedim ve yükseklik değerlerini içeren alana "prop_value" adı verildi.

Ana konturları gösteren filtrelenmiş katman yüklendiğinde kontur etiketleri uygulayın ve (gerekirse) çizgi stilini gösterildiği gibi güçlendirin.

resim açıklamasını buraya girin

Filtre ifadesi:

("prop_value" % 50) = 0

ayrıca 50 metrelik dikey aralıklarla konturları seçecektir. Spatialite veritabanlarıyla çalışır, şekil dosyaları hakkında emin değilim.


6

Kontur çizgilerinin etiketlenmesini ve gösterilmesini duruma göre oldukça kolay hale getiren bu yaklaşımı kullanıyorum.

Kontur çizgilerinin "Veri tanımlı özellikleri" ni ve kontur çizgilerinin renklerini, özel koşullara ve etiketleme için benzer bir ifadeye göre farklı çizgi genişlikleri uygulayabileceğiniz bir ifadeyle (ekran görüntüsü 1'e bakın) kullanıyorum (ekran görüntüsü 2'ye bakın).

İfadelere gerekli değerleri koyun ve hepsi bu.

Yani 500 metreden farklı kontur çizgilerini gizlemek istiyorsanız, bu ifadeyi çizgi sembolünün veri tanımlı özellikleri için kullanabilirsiniz:

CASE WHEN Elevation / 500 - floor(Elevation / 500) =  0 then 
   color_rgba(255,255,255,100) 
else 
    color_rgba(255,255,255,0) 
end

yani yalnızca 500m aralıklarını etiketlemek için bu ifadeyi şunlar için kullanın:

CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END

yani farklı çizgi genişliği uygulamak için veri tanımlı özellikler için aşağıdaki gibi bir ifade kullanın:

CASE WHEN Elevation / 100 - floor(Elevation / 100) = 0 THEN 
    0.25 
WHEN Elevation / 50 - floor(Elevation / 50) = 0 THEN 
    0.15 
ELSE 
    0.1 
END

ekran görüntüsü 1 ekran görüntüsü 2


@catindri, Bir cevap kontrol etmek için zihin ..
Kay

3

Başka bir uygun ifade "ELEV" LIKE '%00'(adım 100m) veya "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'(adım 50m) veya "ELEV" LIKE '%0'(adım 10m) vb. Olup, burada "ELEV" veri yükseltme alanımdır. İkinci seçenek sadece 50 aralığın katları (10m veya 5m ...) ise işe yarar.

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.