Verhindern, dass Textlabels andere Marker in QGIS überlappen?

14

Gibt es in QGIS eine Möglichkeit, zu verhindern, dass sich Textbeschriftungen mit Symbolen überschneiden, mit denen eine Punktebene beschriftet wird?

In der folgenden Beispielkarte gibt es zwei Ebenen:

  1. Straßenschicht, die mit der neuen Etikettiermaschine beschriftet wird.
  2. Eine Punktebene, die mit Hilfe von SVG-Symbolen Autobahnschilde anzeigt.

Ich habe andere Anwendungsfälle dafür, wie zum Beispiel das Verhindern von Überlappungen von Bahnhofssymbolen. In diesem Beispiel könnte ich den Punkt einfach verschieben, in anderen Fällen, z. B. einer U-Bahn-Station, ist dies jedoch keine praktikable Lösung.

Eine mögliche Lösung, über die ich nachdenke, wäre:

  1. Hinzufügen einer Spalte zur DBF-Datei der Punktebene.
  2. Füllen Sie die hinzugefügte Spalte entweder mit Null oder einem Leerzeichen.
  3. Aktivieren der Beschriftung von QGIS [neuer Stil] für die hinzugefügte Spalte.

Ist das der richtige Weg oder gibt es eine bessere Methode?

Beispielkarte

QGIS-Info: Ich verwende die Versionen 1.7.4 und eine kürzlich kompilierte Version 1.8 unter Mac OS 10.7.4. Linux- und Windows-Versionen stehen mir ebenfalls zur Verfügung.


Fortschrittsaktualisierung : Die oben beschriebene Methode funktioniert, obwohl zwei Änderungen am Prozess erforderlich sind.

  1. Anstelle eines Leerzeichens oder einer Null muss ein nicht unterbrechendes Leerzeichen verwendet werden. Beim Testen habe ich festgestellt, dass Felder mit Null nicht gerendert werden und Felder mit nur einem Leerzeichen in Null konvertiert werden . ( Informationen zum Eingeben eines nicht unterbrechenden Leerzeichens finden Sie auf dieser Wikipedia-Seite .)
  2. Stellen Sie beim Festlegen der Einstellungen für die Ebenenbeschriftung auf der Registerkarte Erweitert die Platzierung auf Über den Punkt . Stellen Sie die Priorität auch so ein, dass sie höher ist als alle anderen beschrifteten Ebenen.

Abhängig von der Größe des verwendeten Symbols sind möglicherweise einige Experimente erforderlich, damit die Funktionen wie erwartet ausgeführt werden können. Je nach den Umständen ist es möglicherweise einfacher, mehrere Zeichen zu verwenden, als zu versuchen, die Schriftstärke und / oder -größe zu erhöhen.

Beispielkarte 2

Getestet mit QGIS 1.7 und einem kürzlich kompilierten 1.8 unter Mac OS 10.7.4.

DMan
quelle
1
Sie können auch Ihre eigenen Fragen beantworten. Ich möchte Ihre Lösung abstimmen.
Underdunkel
Sie können Verkettung wie ich tun: hier
jlSta

Antworten:

8

Die beste konsistente Lösung, die ich bisher habe, entspricht der oben beschriebenen. Angenommen, eine SHP-Datei wird verwendet, sind die Schritte:

  1. Öffnen Sie die DBF-Datei entweder mit einer Tabellenkalkulationsanwendung wie LibreOffice, Excel oder dem QGIS Table Manager-Plugin.
  2. Fügen Sie der Tabelle eine Spalte hinzu. Wenn ein Datentyp erforderlich ist, verwenden Sie eine Zeichenfolge.
  3. Füllen Sie die Zellen mit einem nicht unterbrechenden Leerzeichen . Wenn Sie fertig sind, speichern Sie die Änderungen. ( Informationen zum Eingeben eines nicht unterbrechenden Leerzeichens finden Sie auf dieser Wikipedia-Seite .)
  4. Öffnen Sie die Ebenenbeschriftungseinstellungen für die Punktebene. Stellen Sie auf der Registerkarte "Erweitert" die Platzierung auf "Über Punkt" ein und legen Sie die Priorität so fest, dass sie höher ist als alle anderen beschrifteten Ebenen.
DMan
quelle
2
In 2.14 müssen Sie nicht einmal eine neue Spalte hinzufügen.
Fügen Sie
3

Ich weiß, dass dies alt ist, aber Sie können der Tabelle, die diese Informationen enthält, eine Spalte mit den Angaben "X-Koordinate" und "Y-Koordinate" (doppelte Genauigkeit) hinzufügen und dann in den Ebeneneigenschaften unter "Beschriftungen" die Registerkarte "Definierte Dateneinstellungen" aufrufen und ändern X-Koordinate und Y-Koordinate entsprechend. Sobald Sie dies getan haben, können Sie das Etikett mit der Schaltfläche zum Verschieben des Etiketts freihändig verschieben.

Jeff Cameron
quelle
1

Ich habe gerade eine andere Antwort auf ein ähnliches Problem gepostet. Der Ansatz verwendet SVG-Symbole anstelle von Ebenen und verwendet überschriebene Daten, um den Pfad zu einem bestimmten SVG-Symbol für jeden Attributwert (cp) festzulegen. Meine Antwort auf Symbole über Beschriftungen in Karte QGIS

Jochen Schwarze
quelle
0

Sie könnten mit dem Versatz des Etiketts experimentieren.

Ich finde, dass die Etikettenpositionierung dynamischer ist, wenn ich sie auf ungefähr 2 mm einstelle.

Willy
quelle
Nein, das habe ich nicht versucht. Der Hauptgrund, warum ich die Etikettenpositionierung nicht geändert habe, ist, dass das Straßennetz in anderen Bereichen der Karte (nicht abgebildet) erheblich dichter ist. Im obigen Beispiel kann das Problem behoben werden, indem das Symbol um ca. 2 mm (in eine beliebige Richtung) verschoben wird. In anderen Teilen der Karte wird das Symbol jedoch wahrscheinlich tiefer in eine andere Bezeichnung eingefügt.
DMan
Probieren Sie es aus, das Etikett wird wahrscheinlich an eine neue dynamische Position verschoben. Vielleicht nicht das, was Sie wollen, aber der einzige Weg, es herauszufinden, ist es, es zu versuchen. Die Option, die ich verwende, befindet sich auf der Registerkarte "Erweitert" des neuen Beschriftungswerkzeugs (das sich in der Symbolleiste befindet und nicht im Dialogfeld "Eigenschaften" des Layers).
Willy