È possibile selezionare solo una linea di contorno per l'etichettatura?
Ho numerose etichette per ogni riga e preferirò etichettare solo quelle principali, come 1000 m
e1500 m
È possibile selezionare solo una linea di contorno per l'etichettatura?
Ho numerose etichette per ogni riga e preferirò etichettare solo quelle principali, come 1000 m
e1500 m
Risposte:
In QGIS 2.6 (forse anche nelle versioni precedenti, non lo so) puoi farlo nella sezione Proprietà, Labels
scheda, Rendering
sezione Livello . Circa a metà dell'elenco delle opzioni di rendering è presente un pulsante che consente di scrivere un'espressione che definirà l'elenco delle funzionalità che verranno effettivamente etichettate. La tua espressione sarebbe qualcosa di simile "Elevation" IN (1000, 1500)
. Ecco il pulsante (in giallo), ho impostato questo per etichettare solo i contorni con un valore di elevazione di 32:
Un approccio sarebbe quello di caricare lo strato di contorno e modellarlo. Quindi carica di nuovo lo stesso livello e applica un filtro (fai clic con il pulsante destro del mouse sul livello e passa a 'Filtro ..') Usa un'espressione di filtro simile a quella mostrata nell'immagine. Nel mio caso volevo contorni importanti ad intervalli verticali di 50 metri e il campo contenente i valori di elevazione era chiamato "valore prop".
Quando lo strato filtrato che mostra i contorni principali è stato caricato, applicare le etichette dei contorni e (se necessario) rafforzare lo stile della linea come mostrato.
L'espressione del filtro:
("prop_value" % 50) = 0
selezionerà anche i contorni a intervalli verticali di 50 metri. Funziona con i database Spatialite, non sono sicuro dei file di forma.
Sto usando questo approccio che rende abbastanza semplice l'etichettatura e la visualizzazione dei contorni per condizione.
Uso le "Proprietà definite dai dati" della larghezza e dei colori del simbolo di linea con un'espressione (vedi screenshot 1) con la quale puoi applicare diverse larghezze di linea in base a condizioni personalizzate e un'espressione simile per l'etichettatura (vedi screenshot 2).
Basta mettere i valori necessari per le espressioni e questo è tutto.
Ad esempio, se si desidera nascondere contorni diversi da 500 m, è possibile utilizzare questa espressione per le proprietà definite dal simbolo della linea:
CASE WHEN Elevation / 500 - floor(Elevation / 500) = 0 then
color_rgba(255,255,255,100)
else
color_rgba(255,255,255,0)
end
cioè per etichettare solo intervalli di 500m usare questa espressione per:
CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END
cioè per applicare una larghezza di linea diversa utilizzare un'espressione come questa per le proprietà definite dai dati:
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
Un'altra espressione utile è "ELEV" LIKE '%00'
(passaggio 100m) o "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'
(passaggio 50m) o "ELEV" LIKE '%0'
(passaggio 10m) ecc., Dove "ELEV" è il mio campo di elevazione dei dati. La seconda opzione funziona solo se 50 è un multiplo dell'intervallo (10m o 5m ...).