Impedire che le etichette di testo si sovrappongano ad altri marcatori in QGIS?


14

Esiste un modo in QGIS per impedire alle etichette di testo di sovrapporre le icone utilizzate per etichettare un livello punto?

Nella mappa di esempio mostrata di seguito, ci sono due livelli:

  1. Strato Strade etichettato con il nuovo motore di etichettatura.
  2. Un livello punto che utilizza le icone svg per mostrare gli scudi autostradali.

Ho altri casi d'uso per questo, come prevenire la sovrapposizione delle icone della stazione ferroviaria. In questo esempio, potrei semplicemente spostare il punto, tuttavia, in altri casi, come una stazione della metropolitana, questa non è una soluzione praticabile.

Una possibile soluzione che sto prendendo in considerazione implicherebbe:

  1. Aggiunta di una colonna al file dbf del layer punto.
  2. Riempiendo la colonna aggiunta con Null o uno spazio.
  3. Abilitazione dell'etichettatura [nuovo stile] di QGIS per la colonna aggiunta.

È questa la strada da percorrere o esiste un metodo migliore?

Mappa di esempio

Informazioni QGIS: sto utilizzando le versioni 1.7.4 e una versione recentemente compilata di 1.8 su Mac OS 10.7.4. Sono disponibili anche versioni per Linux e Windows.


Aggiornamento di avanzamento : il metodo che ho descritto sopra funziona anche se sono necessarie due modifiche al processo.

  1. Invece di usare un carattere spaziale o Null , è necessario utilizzare uno spazio non-break . Durante il test che ho trovato, i campi con null non vengono visualizzati e i campi con solo uno o più spazi vengono convertiti in null . (Vedi questa pagina di Wikipedia per informazioni su come digitare uno spazio non-break .)
  2. Durante l'impostazione delle impostazioni di etichettatura layer, nella scheda Avanzate, impostare il posizionamento di Sopra Point . Inoltre, imposta la Priorità in modo tale che sia superiore a qualsiasi altro livello etichettato.

A seconda della dimensione dell'icona utilizzata, potrebbe essere necessaria una sperimentazione per far funzionare le cose come previsto. A seconda delle circostanze, potrebbe essere più semplice utilizzare più caratteri anziché tentare di aumentare il peso e / o la dimensione del carattere.

Mappa di esempio 2

Testato con QGIS 1.7 e recentemente compilato 1.8 su Mac OS 10.7.4.


1
Puoi anche rispondere alle tue domande. Vorrei votare la tua soluzione.
underdark

Puoi concatenare come ho fatto io: qui
jlSta

Risposte:


8

La migliore soluzione coerente che ho finora è sulla falsariga di ciò che ho esposto sopra. Supponendo che venga utilizzato un file SHP, i passaggi sono:

  1. Apri il file dbf con un'applicazione per fogli di calcolo come LibreOffice, Excel o il plug-in QGIS Table Manager.
  2. Aggiungi una colonna alla tabella. Se è richiesto un tipo di dati, utilizzare string.
  3. Riempi le celle con uno spazio continuo . Una volta completato, salva le modifiche. (Vedi questa pagina di Wikipedia per informazioni su come digitare uno spazio non-break.)
  4. Apri le impostazioni di etichettatura dei livelli per il livello punti. Nella scheda Avanzate, imposta Posizionamento su Punto in eccesso e imposta la Priorità in modo tale che sia superiore a qualsiasi altro livello etichettato.

2
In 2.14 non è nemmeno necessario aggiungere una nuova colonna, basta inserire '' come etichetta
raphael,

3

So che questo è vecchio ma potresti aggiungere una colonna "Coordinata X" e "Coordinata Y" (doppia precisione) alla tabella che contiene tali informazioni, quindi vai alla scheda "Impostazioni definite dai dati" in Etichette nelle proprietà del livello e modifica Coordinata X e coordinata Y di conseguenza. Una volta fatto, puoi spostare l'etichetta a mano libera usando il pulsante sposta etichetta.


1

Ho appena pubblicato un'altra risposta a un problema simile. L'approccio utilizza simboli svg invece di layer e utilizza i dati definiti override per impostare il percorso su un simbolo svg distinto per ciascun valore di attributo, cp. la mia risposta ai simboli sopra le etichette nella mappa QGIS


0

Potresti sperimentare l'offset dell'etichetta.

Trovo che permetta al posizionamento dell'etichetta di essere più dinamico, se lo imposto a 2 mm circa.


No, non ho provato a farlo. Il motivo principale per cui non ho modificato il posizionamento dell'etichetta è perché su altre aree della mappa (non nella foto), la rete stradale è notevolmente più densa. Nell'esempio sopra, spostando l'icona di circa 2 mm (qualsiasi direzione) si corregge il problema. Tuttavia, su altre parti della mappa, probabilmente spingerebbe l'icona più a fondo in un'altra etichetta.
DMan,

Fai un tentativo, l'etichetta si sposterà probabilmente in una nuova posizione dinamica. Forse non è quello che vuoi, ma l'unico modo per scoprirlo è provare. L'opzione che uso è nella scheda avanzata del nuovo strumento etichetta (che si trova nella barra degli strumenti non nella finestra di dialogo delle proprietà del livello).
Willy,
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.