Quali sono i valori validi per le impostazioni di etichettatura "definite dai dati"?


9

Sto usando QGIS 1.8. Vorrei personalizzare le funzionalità delle etichette su uno shapefile esistente utilizzando il nuovo motore di etichette e l'opzione "Impostazioni definite dai dati". Vorrei sapere quali dovrebbero essere i tipi di campi della tabella degli attributi per ciascuna delle impostazioni: tutte e 7 le opzioni dei caratteri, tutte le 2 opzioni del buffer e tutte e 6 le opzioni di posizione. Dovrebbero essere tutti campi numerici, o del testo o entrambi? Voglio creare correttamente questi campi nella tabella degli attributi in modo da poterli mappare alle impostazioni del campo etichetta. Non riesco a trovare informazioni sui tipi di campo corretti da nessuna parte. Grazie per i tuoi pensieri

Risposte:


16

Non esiste un set completo di documentazione per le funzionalità di etichettatura definite dai dati, ma ecco una ripartizione dei loro valori e di come vengono utilizzati dal motore di etichettatura PAL di QGIS nella versione 1.8:

  • Dimensione [ reale ] Definisce la dimensione del carattere, sebbene il modo in cui il numero viene interpretato dipende dall'impostazione per il livello (punti o unità della mappa), che non può essere definito in 1.8.
  • Grassetto, corsivo, sottolineato, barrato [ intero ] Booleano di 1 o 0 (acceso / spento) per lo stile del carattere. È meglio usare un carattere tipografico che contenga effettivamente un carattere grassetto o corsivo per quegli stili.
  • Color [ stringa ] Un valore di colore denominato accettato dalla funzione pubblica QColor :: setNamedColor ( name ) . #RRGGBBSi consiglia il formato esadecimale regolare di .
  • Famiglia [ stringa ] Un nome di famiglia QFont per la corrispondenza dei caratteri . Nota che puoi anche specificare il nome della fonderia. Consulta la descrizione di QFont (nei documenti per la tua versione di Qt) per maggiori informazioni sulla corrispondenza dei caratteri per nome.
  • BufferSize [ reale ] Definisce la dimensione del buffer in mm. Non esiste un'opzione per impostarlo in unità della mappa in 1.8. Il buffer è costituito da una copia riempita e accarezzata del testo dell'etichetta, ma dietro di essa. Il tratto viene applicato on-line, il che significa che il buffering visivo oltre il testo avrà la metà della dimensione definita.

    Ci saranno artefatti evidenti nel buffer di grandi dimensioni, relativamente alla dimensione del testo (problema Qt con la tecnica utilizzata). Se la dimensione del carattere per l'etichetta è definita in unità della mappa e si imposta un buffer in mm, ci saranno problemi visivi con i due ridimensionamenti a velocità diverse durante lo zoom sullo schermo, anche se possono avere un aspetto coerente quando si stampa la mappa su una scala nota, per la quale dovrai calcolare il buffer corretto in mm.
  • BufferColor [ stringa ] Come il colore del testo sopra. Si noti che in 1.8 questo si applica sia al riempimento che al tratto del buffer.
  • Distanza etichetta [ reale ] Distanza definita per l'etichetta dalla funzione , determinata dalla soluzione di layout PAL dinamico per il tipo di livello specificato (nella scheda Avanzate), ad es. Sopra o sotto la linea, dal punto, ecc.

    Nota: questo sembra solo per funzionare quando non si è 'bloccato' l'etichetta con i dati definiti coordinate X e Y, ovvero la posizione dell'etichetta è ancora calcolata dinamicamente. La distanza è relativa all'impostazione del livello di livello per mm o unità della mappa nella scheda Avanzate. Anche in questo caso la colonna della tabella dovrà essere configurata per il tipo di coordinate del layer (ad esempio lat / long).
  • Coordinata X, coordinata Y [ reale ] Coordinate definite nel CRS del livello , ad esempio lat / long per alcuni e metri per altri. La posizione definita da queste coordinate è il punto di rotazione dell'etichetta , che può cambiare in relazione alla tecnica di posizionamento del motore o al modo in cui sono stati definiti gli allineamenti orizzontale e verticale.

    Mentre QGIS può eseguire trasformazioni di coordinate al volo, è meglio avere i livelli di etichettatura tutti nello stesso CRS, quindi non ci sono problemi con lo spostamento delle etichette a causa di una trasformazione funky. Poiché i valori dei campi delle colonne X e Y nella tua origine dati sono relativi al CRS, avrai bisogno di una precisione molto maggiore quando lavori con lat / long che con meter, anche se entrambi avranno bisogno di una larghezza di buone dimensioni, rispetto alla precisione di mappatura desiderata .

Le seguenti colonne non possono essere definite come dati se X e Y non sono già definiti. Questa è una regressione di alcune funzionalità del vecchio motore di etichettatura (come la definizione della rotazione indipendente da X e Y), ma è come funziona attualmente l'etichettatura avanzata in 1.8.

  • Allineamento orizzontale [ stringa ] (sinistra, centro, destra) Allineamento orizzontale del testo dell'etichetta rispetto al punto di rotazione dell'etichetta .

  • Allineamento verticale [ stringa ] (inferiore, base, metà e maiuscolo o superiore) Allineamento verticale del testo dell'etichetta rispetto al punto di rotazione dell'etichetta . Cap e Top sono trattati allo stesso modo. Base è la linea di base per il carattere.

    Nota: la modifica degli allineamenti orizzontali o verticali dopo aver definito X e Y comporterà lo spostamento del testo rispetto al punto di rotazione fisso dell'etichetta, probabilmente non quello desiderato. Il punto di rotazione può essere diverso da quello predefinito (Sinistra, Inferiore) dato il metodo di posizionamento (ad es. Il livello del punto con il punto sopra impostato sarà impostato su Centro, Metà, vedi immagine). È meglio sperimentare lo strumento Modifica etichetta per "vedere" dove si trova il punto di rotazione e in che modo la modifica delle impostazioni di allineamento influirà sull'etichetta.

inserisci qui la descrizione dell'immagine
Etichetta con allineamenti al centro e a metà e spostati in una nuova posizione, offset dal punto funzione

  • Rotazione [ reale ] (0,00-360,00) Numero di gradi nella rotazione antioraria dell'etichetta attorno al punto di rotazione. Lo strumento Ruota etichetta, quando si utilizza il tasto modificatore Ctl (Cmd su Mac) arrotonderà gli incrementi di rotazione a 15 gradi.

Se sei disposto a provare le build notturne di QGIS dal ramo master o compilarlo tu stesso, troverai i lavori correnti in quest'area che include già i seguenti:

inserisci qui la descrizione dell'immagine
Barra degli strumenti di etichettatura avanzata con icone "stile GIS"

  • Strumento Pin / Unpin Labels per 'bloccare o sbloccare' in modo interattivo l'etichetta memorizzando automaticamente i dati di posizione dell'etichetta del motore PAL nei campi X, Y della tabella degli attributi e facoltativamente Rotazione. Strumento complementare per evidenziare le etichette appuntate.

  • Strumento Mostra / Nascondi etichette per mostrare o nascondere in modo interattivo un'etichetta utilizzando un nuovo campo definito di dati chiamato, abbastanza sorprendentemente, "Mostra etichetta".

  • Miglioramenti continui delle caratteristiche dell'etichetta, come la visualizzazione in base alla scala, la trasparenza e lo stile dei caratteri.


2

Puoi provare il nuovo plug-in EasyCustomLabeling (http://hub.qgis.org/projects/easycustomlabeling) che duplica un livello e aggiunge i campi di etichettatura "definiti dai dati". Ecco i tipi di definizioni dei campi utilizzati in quel plug-in:

QgsField ("LblX", QVariant.Double, "numeric", 10, 2)
QgsField ("LblY", QVariant.Double, "numeric", 10, 2)
QgsField ("LblAlignH", QVariant.String, "varchar", 12)
QgsField ("LblAlignV", QVariant.String, "varchar", 12)
QgsField ("LblSize", QVariant.Int, "integer", 1)
QgsField ("LblRot", QVariant.Double, "numeric", 10, 2)
QgsField ("LblBold", QVariant.Int, "integer", 1)
QgsField ("LblItalic", QVariant.Int, "integer", 1)
QgsField ("LblColor", QVariant.String, "varchar", 7)
QgsField ("LblFont", QVariant.String, "varchar",64)
QgsField ("LblUnder", QVariant.Int, "integer", 1)

Spero che sia d'aiuto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.