Jak połączyć etykietę i punkt za pomocą linii / strzałki?

12

Czy w QGIS jest możliwe połączenie etykiet i punktów linią / strzałką lub czymś takim? Na mojej mapie nie jest jasne, która etykieta pasuje do jej punktu. Nie mogę tego zbliżyć, ponieważ jest jeszcze wiele innych punktów.wprowadź opis zdjęcia tutaj

kevkev
źródło
Rozwiązanie xof działa dla mnie. Ale chciałbym wiedzieć, czy można mieć krótką legendę w mojej liście kształtów ... nie tak jak ten przykład poniżej, z już krótką etykietą ... ! [Mój test ] ( i.stack.imgur.com/8VWoN .png ) Dziękuję!
MathieuG

Odpowiedzi:

7
  • Najpierw utwórz pola etykiet dla pozycji X i Y etykiet w tabeli punktów.

  • Aktywuj pozycjonowanie X i Y we właściwościach twojej warstwy.

nadpisanie

  • Utwórz nowy styl „Wyrażenie generatora” w swoim stylu punktowym, ustaw go na typ linii, a następnie użyj następujących formuł:

    make_line (make_point ($ x, $ y), make_point („LABEL_X”, „LABEL_Y”))

Jako rozszerzenie możesz użyć różnych pól (lub użyć wtyczki, aby je wszystkie utworzyć), aby kontrolować, gdzie będzie punkt wyrównania. Możesz użyć pola rotacji oraz pola wyrównania pionowego i poziomego.

stylizacja

Linia przesunie się zgodnie z pozycją etykiety, ponieważ jej punkt docelowy jest powiązany z polem pozycji etykiety.

gisnside
źródło
5

Możesz spróbować pobrać i zainstalować wtyczkę EasyCustomLabeling z Wtyczki > Zarządzaj i instaluj wtyczki , tworzy to zduplikowaną warstwę pamięci wybranej warstwy wektorowej i zawiera te same atrybuty.

( Pamiętaj, że aby poprawnie zapisać warstwę pamięci , musisz także pobrać i zainstalować wtyczkę Memory Layer Saver ). Opisano to w opisie wtyczki ).

Po utworzeniu warstwy etykiet możesz grać z umieszczeniem etykiety i stylem tej warstwy, aby spróbować uzyskać to, czego szukasz:

Podłącz

Ustawienia warstwy etykiet

Warstwa etykiety

Mam nadzieję że to pomoże!

Joseph
źródło
dziękuję @ Joseph. Czy to prawda, że ​​za pomocą tej wtyczki mogę wybrać tylko jeden atrybut? (btw: czy to powinno być również nowe pytanie?)
kevkev
Nie! Nie, jeśli jest to proste pytanie tak / nie =). Ale masz rację, tylko jeden atrybut na warstwę, więc możesz utworzyć wiele warstw etykiet, jeśli chcesz.
Joseph
Właściwie jest to możliwe. Po utworzeniu warstwy etykiety można tam zmienić atrybuty: D
kevkev
@KevinSuhr - Brilliant! Dzięki, nauczyłem się czegoś =)
Joseph
1
Z posta @underdark; Typowym przypadkiem użycia jest chęć pokazania wielu wartości atrybutów na etykiecie obiektu. Za pomocą kalkulatora pola można łączyć je w etykiety wieloliniowe. Wystarczy połączyć pola z || operator i dodaj „\ n” (nowa linia) wszędzie tam, gdzie powinien wystąpić podział linii: Pole1 || „\ n” || Field2
Lee
4

W przypadku metody gisinside: można pominąć pierwszy krok ręcznego dodawania atrybutów x / y dla etykiet; (może od QGIS3?) istnieje już zmienna pomocnicza dla pozycjonowania etykiet. Zmienne są odpowiednio wywoływane: „auxiliary_storage_labeling_positionx” i „auxiliary_storage_labeling_positiony”.

Więc w kroku nr. 2 możesz użyć tego wyrażenia do narysowania linii:

make_line (make_point ($ x, $ y), make_point („auxiliary_storage_labeling_positionx”, „auxiliary_storage_labeling_positiony”))

Należy jednak pamiętać, że zmienne pomocnicze mają przypisaną wartość tylko wtedy, gdy dotkniesz / przeniesiesz etykiety za pomocą narzędzia move-label-tool. Dlatego widzisz tylko wiersze etykiet, które zostały ręcznie przesunięte.

Xof
źródło
2

Jeśli korzystasz z PostGIS do danych przestrzennych, ten post https://sigsemgrilhetas.wordpress.com/2015/01/12/etiquetas-com-guias-em-qgis-e-postgis-labels-leading-lines-with- qgis-and-postgis / autor Alexandre Neto wyjaśnia, w jaki sposób linie wiodące można dodawać do punktów w bazie danych.

Jest to dobrze napisany samouczek, który warto przeczytać, a także post w filmie, który pokazuje, jak to działa.

Mam nadzieję że to pomoże.

Zawietrzny
źródło