Memilih hanya satu garis kontur untuk dilabeli di QGIS?

12

Apakah mungkin untuk memilih hanya satu garis kontur untuk pelabelan?

Saya memiliki banyak label untuk setiap baris dan saya akan memilih untuk hanya label yang utama, seperti 1000 mdan1500 m

catindri
sumber
Tidak yakin apakah ini duplikat, tetapi dapatkah Anda melihat di gis.stackexchange.com/q/89501/1297 dan gis.stackexchange.com/q/59778/1297 untuk melihat apakah itu membuat Anda lebih dekat dengan apa yang Anda lakukan mencari? Dan kemudian saya pikir itu akan membantu pertanyaan Anda jika Anda memberikan beberapa detail tentang apa yang Anda coba dan mungkin di mana kesalahannya.
SaultDon

Jawaban:

13

Di QGIS 2.6 (mungkin versi sebelumnya juga, saya tidak tahu) Anda bisa melakukan ini di bawah Layer Properties, Labelstab, Renderingbagian. Tentang setengah jalan daftar opsi render adalah tombol yang akan membiarkan Anda menulis ekspresi yang akan menentukan daftar fitur yang sebenarnya akan diberi label. Ekspresi Anda akan seperti "Elevation" IN (1000, 1500). Inilah tombolnya (berwarna kuning), saya hanya mengatur ini untuk memberi label kontur dengan nilai ketinggian 32:

masukkan deskripsi gambar di sini

Dan C
sumber
11

Salah satu pendekatan akan memuat lapisan kontur dan gaya itu. Kemudian muat layer yang sama lagi dan terapkan filter (klik kanan pada layer dan turun ke 'Filter ..') Gunakan ekspresi filter yang mirip dengan yang ditunjukkan pada gambar. Dalam kasus saya, saya ingin kontur utama pada interval vertikal 50 meter dan bidang yang berisi nilai ketinggian disebut "prop_value".

Ketika lapisan yang difilter memperlihatkan kontur utama telah dimuat, terapkan label kontur dan (jika perlu) perkuat gaya garis seperti yang ditunjukkan.

masukkan deskripsi gambar di sini

Ekspresi filter:

("prop_value" % 50) = 0

juga akan memilih kontur pada interval vertikal 50 meter. Bekerja dengan database Spatialite, tidak yakin tentang shapefile.

nhopton
sumber
6

Saya menggunakan pendekatan ini yang membuat pelabelan dan tampilan kontur dengan kondisi cukup mudah.

Saya menggunakan "Properti yang ditentukan data" dari lebar simbol garis dan warna kontur garis dengan ekspresi (lihat tangkapan layar 1) dimana Anda dapat menerapkan lebar garis yang berbeda berdasarkan kondisi khusus dan ekspresi yang sama untuk pelabelan (lihat tangkapan layar 2).

Masukkan saja nilai yang dibutuhkan ke ekspresi dan itu saja.

Yaitu jika Anda ingin menyembunyikan kontur selain 500 m, Anda bisa menggunakan ekspresi ini untuk properti yang ditentukan standar dari simbol garis:

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

yaitu untuk pelabelan interval hanya 500 m menggunakan ungkapan ini untuk:

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

yaitu untuk menerapkan lebar garis yang berbeda, gunakan ekspresi seperti ini untuk properti yang ditentukan data:

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

tangkapan layar 1 tangkapan layar 2

Kay
sumber
@catindri, Pikiran untuk memeriksa jawaban ..
Kay
3

Ekspresi nyaman lain adalah "ELEV" LIKE '%00'(langkah 100m) atau "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'(langkah 50m) atau "ELEV" LIKE '%0'(langkah 10m) dll, di mana "ELEV" adalah bidang elevasi data saya. Opsi kedua hanya berfungsi jika 50 adalah kelipatan interval (10m atau 5m ...).

Antonis
sumber