Domiary na mapie w QGIS
Czasem musimy zmierzyć się z zadaniem pokazania domiarów odległościowych ilustrujących detale obiektów wizualizowanych w GIS. Co prawda w QGIS istnieje narzędzie o nazwie „linijka”, ale takiego pomiaru nie można wydrukować. Dziś krok po kroku jak rozwiązać ten problem.
Założenia
Musi powstać obiekt prezentujący domiar liniowy, który jest widoczny także w wydruku. Ma mieć postać strzałki z obustronnymi grotami oraz etykietę prezentującą długość linii (wszystko w tym samym, różowym, kolorze). Dodatkowo długość ma się aktualizować automatycznie zarówno podczas rysowania nowego obiektu jak i jego edycji geometrycznej. Rozwiązanie ma bazować na pliku typu ESRI Shapefile.
Tworzenie nowej warstwy
Tworzymy nową warstwę korzystając z menu Warstwa -> Twórz Warstwę -> Nowa warstwa Shapefile. W oknie które się otworzy wybieramy kolejno Nazwę pliku, Kodowanie (domyślnie UTF-8), Typ geometrii: Linia, oraz układ współrzędnych (w moim przypadku 2000 strefa 8; EPSG: 2179, ale może być dowolny).
Następnie dodajemy nowe pola:
1. uuid (identyfikator unikalny, typ: Tekstowy, długość 38)
2. dlugosc (długość domiaru, typ: Liczby dziesiętne, długość 10, dokładność:2)
oraz usuwamy zbędne pole id – nie będzie nam potrzebne.
Tak utworzona warstwa pojawi się w liście warstw aplikacji.
Automatyczne wypełnianie pól
Zgodnie z założeniami tworzona linia powinna się wymiarować automatycznie. W tym celu klikamy prawym klawiszem na właściwości warstwy i przechodzimy do zakładki: Formularz atrybutów.
W środkowym oknie widzimy atrybuty utworzone w pierwszym kroku (uuid, dlugosc), klikamy pierwszy z nich i uzupełniamy: Alias (Identyfikator) oraz Domyślne -> Wartość domyślna: uuid() oraz zaznaczamy opcję Zastosuj wartość domyślną podczas aktualizacji.
W ten sposób realizujemy funkcjonalność polegająca na automatycznym nadaniu identyfikatora tworzonego obiektu. Następnie klikamy na atrybut dlugosc i wypełnimy odpowiednio: Alias (Długość) oraz Domyślne -> Wartość domyślna: round($length, 2) oraz zaznaczamy opcję Zastosuj wartość domyślną podczas aktualizacji.
W ten sposób realizujemy funkcjonalność polegająca na automatycznym obliczeniu długości tworzonego obiektu. W ramach dodatkowego zabezpieczenia użyto funkcji zaokrąglania wyniku do dwóch miejsc po przecinku. Klikamy Zastosuj.
Tworzymy styl strzałki
Pozostając w otwartym oknie przechodzimy do zakładki Styl i ustawiamy kolejno: Typ symbolu: Strzałka, Typ grotu: podwójna, Rodzaj strzałki: zwykła, Szerokość strzałki: 0,20, Długość grotu: 2,10, Grubość grotu: 0,70. Odznaczamy opcję: Zakrzywione strzałki.
Przechodzimy w tym samym oknie do opcji Proste wypełnienie definiując kolejno Kolor wypełnienia: różowy, Styl obrysu: bez linii. Następnie klikamy Zastosuj.
Definiujemy etykietę
Pozostając w otwartym oknie przechodzimy do zakładki Etykiety i ustawiamy kolejno: Proste etykiety, Etykietuj z dlugosc, Rozmiar: 8,00, kolor: różowy i klikamy Zastosuj
Opcjonalnie możemy dodać otoczkę wokół obiektu. Klikamy menu: Otoczka, Zaznaczamy opcję: Rysuj otoczkę, podajemy rozmiar: 0,80 i kolor: biały. Klikamy Zastosuj
Zapisujemy styl
Aby móc korzystać ze wszystkich elementów zdefiniowanych powyżej w kilku projektach należy zapisać styl. Na dole otwartego okna klikamy Styl-> Zapisz styl. Otworzy się okno dialogowe, w którym należy podać miejsce zapisania stylu oraz opcji eksportu. Styl zapisujemy w katalogu z warstwą używając nazwy warstw. To ważne, bo dzięki temu dodanie warstwy w przyszłości automatycznie doda do projektu reguły stylu, etykietowania opcji automatycznego wypełniania wartości wiele innych elementów.
Testujemy naszą warstwę
Po zdefiniowaniu wartości domyślnych i zapisaniu stylu przetestujemy naszą nową warstwę. Przełączamy warstwę w tryb edycji i wybierając narzędzie Rysuj linię kreślimy ją na mapie. Po jej narysowaniu klikamy prawym przyciskiem myszy (w celu zakończenia edycji) co spowoduje wyświetlenie okna Atrybuty obiektu. Jak widzisz zawiera ono nazwy atrybutów zdefiniowane w polu Alias oraz wypełnione domyślnymi wartościami pola formularza (wygenerowany jednorazowy identyfikator oraz długość wykreślonej linii).
Po zatwierdzeniu przyciskiem OK. Otrzymujemy nowy obiekt w zdefiniowanym kształcie i kolorze wraz z etykietą prezentującą długość narysowanego obiektu.
Podsumowanie i ograniczenia
Otworzony obiekt pomocniczy ma wszystkie zdefiniowane na wstępie style i właściwości i możemy go bez przeszkód wydrukować (jest widoczny w edytorze wydruków).
W tym miejscu należy wspomnieć o istotnym ograniczeniu. Aby strzałka wyświetlała się prawidłowo, może ona mieć wyłącznie pojedynczy segment – w przeciwnym razie każdy segment stanie się oddzielną strzałką, a etykieta z długością dotyczyć będzie całego obiektu.
Zachęcam więc do eksperymentów. Dla miłośników odkrytych światów zamieszczam gotowy przykład do pobrania, a resztę zachęcam do eksperymentów i komentowania.
To się nazywa wymiarowaniem. A ArcGISie jest jakaś opcja wymiarowania, ale trzeba zrobić geobazę, dimensioning i inne tego typu pierdoły. Z tego względu używam takiej samej metody jak powyżej 🙂 Tylko nie da się robić kreseczek | | jak w AutoCADzie.
Tytuł wpisu odnosi się do operacji związanej z metodą domiarów prostokątnych – dość popularnej w geodezji. Wymiarowanie elementów w QGIS można osiągnąć dużo prościej 😉