Uniemożliwiasz nakładanie się etykiet tekstowych na inne znaczniki w QGIS?

14

Czy istnieje sposób w QGIS, aby zapobiec nakładaniu się etykiet tekstowych na ikony stosowane do oznaczania warstwy punktowej?

Na poniższej przykładowej mapie są dwie warstwy:

  1. Warstwa dróg, która jest oznakowana przy użyciu nowego silnika do etykietowania.
  2. Warstwa punktowa, która wykorzystuje ikony svg do wyświetlania tarcz autostrady.

Mam do tego inne zastosowania, takie jak zapobieganie nakładaniu się ikon stacji kolejowej. W tym przykładzie mógłbym po prostu przenieść punkt, jednak w innych przypadkach, takich jak stacja metra, nie jest to realne rozwiązanie.

Możliwe rozwiązanie, które rozważam, obejmowałoby:

  1. Dodanie kolumny do pliku dbf warstwy punktowej.
  2. Wypełnianie dodanej kolumny wartością Null lub spacją.
  3. Włączanie etykietowania [nowego stylu] QGIS dla dodanej kolumny.

Czy to jest dobra droga, czy jest lepsza metoda?

Przykładowa mapa

Informacje QGIS: Używam wersji 1.7.4 i ostatnio skompilowanej wersji 1.8 w systemie Mac OS 10.7.4. Dostępne są również wersje dla systemów Linux i Windows.


Aktualizacja postępów : Metoda opisana powyżej działa, chociaż wymagane są dwie modyfikacje procesu.

  1. Zamiast używać znaku spacji lub wartości Null , należy użyć spacji niełamliwej . Podczas testowania znalazłem, pola z Null nie są renderowane, a pola z tylko spacjami są konwertowane na Null . (Zobacz tę stronę Wikipedii, aby uzyskać informacje na temat wpisywania spacji niełamliwych ).
  2. Podczas ustawiania ustawień etykietowania warstw na karcie Zaawansowane ustaw opcję Umieszczenie na Over Point . Ustaw także Priorytet tak, aby był wyższy niż jakiekolwiek inne warstwy z etykietami.

W zależności od rozmiaru użytej ikony może być konieczne przeprowadzenie pewnych eksperymentów, aby wszystko działało zgodnie z oczekiwaniami. W zależności od okoliczności może być łatwiej używać wielu znaków, niż próbować zwiększyć wagę i / lub rozmiar czcionki.

Przykładowa mapa 2

Testowane z QGIS 1.7 i niedawno skompilowanym 1.8 na Mac OS 10.7.4.

DMan
źródło
1
Możesz także odpowiedzieć na własne pytania. Chciałbym głosować za twoim rozwiązaniem.
podmrok
Możesz zrobić konkatenację tak jak ja: tutaj
jlSta

Odpowiedzi:

8

Najlepsze spójne rozwiązanie, jakie do tej pory mam, jest zgodne z tym, co przedstawiłem powyżej. Zakładając, że plik SHP jest używany, kroki są następujące:

  1. Otwórz plik dbf w aplikacji do obsługi arkuszy kalkulacyjnych, takiej jak LibreOffice, Excel lub wtyczka QGIS Table Manager.
  2. Dodaj kolumnę do tabeli. Jeśli wymagany jest typ danych, użyj ciągu znaków.
  3. Wypełnij komórki niełamliwym miejscem . Po zakończeniu zapisz zmiany. (Zobacz tę stronę Wikipedii, aby uzyskać informacje na temat wpisywania spacji niełamliwych).
  4. Otwórz Ustawienia etykietowania warstw dla warstwy punktowej. Na karcie Zaawansowane ustaw Umieszczenie na Ponad punkt i ustaw Priorytet tak, aby był wyższy niż jakiekolwiek inne warstwy z etykietami.
DMan
źródło
2
W 2.14 nie musisz nawet dodawać nowej kolumny, po prostu wpisz „” jako etykietę
raphael
3

Wiem, że to stare, ale możesz dodać kolumnę „Współrzędna X” i „Współrzędna Y” (podwójna precyzja) do tabeli, która zawiera te informacje, a następnie przejść do karty „Ustawienia danych zdefiniowanych” w obszarze Etykiety we właściwościach warstwy i zmienić Współrzędna X i współrzędna Y odpowiednio. Po wykonaniu tej czynności możesz przenieść etykietę odręcznie za pomocą przycisku Przenieś etykietę.

Jeff Cameron
źródło
1

Właśnie opublikowałem kolejną odpowiedź na podobny problem. Podejście wykorzystuje symbole svg zamiast warstw i wykorzystuje przesłonięcie danych, aby ustawić ścieżkę do odrębnego symbolu svg dla każdej wartości atrybutu, cp. moja odpowiedź na symbole powyżej etykiet w mapie QGIS

Jochen Schwarze
źródło
0

Możesz eksperymentować z przesunięciem etykiety.

Uważam, że pozwala to na bardziej dynamiczne pozycjonowanie etykiet, jeśli ustawię je na około 2 mm.

Willy
źródło
Nie, nie próbowałem tego zrobić. Głównym powodem, dla którego nie zmieniłem pozycjonowania etykiety, jest to, że w innych obszarach mapy (nie pokazano) sieć dróg jest znacznie gęstsza. W powyższym przykładzie przesunięcie ikony o około 2 mm (w dowolnym kierunku) rozwiązałoby problem. Jednak w innych częściach mapy prawdopodobnie wcisnąłby ikonę głębiej w inną etykietę.
DMan
Spróbuj, etykieta prawdopodobnie zmieni się na nową pozycję dynamiczną. Może nie to, czego chcesz, ale jedynym sposobem, aby się dowiedzieć, jest spróbować. Opcja, której używam, znajduje się w zakładce zaawansowanej nowego narzędzia do etykietowania (która znajduje się na pasku narzędzi, a nie w oknie dialogowym właściwości warstwy).
Willy,