Atlas kontrolowany przez dwie warstwy - Wersja do druku +- Forum QGIS (http://forum.quantum-gis.pl) +-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html) +--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html) +--- Wątek: Atlas kontrolowany przez dwie warstwy (/thread-1630.html) |
Atlas kontrolowany przez dwie warstwy - koszatka443 - 02-05-2018 Cześć, Proszę o pomoc. Chciałabym stworzyć atlas kontrolowany przez dwie warstwy. Największy widok mapy jest kontrolowany przez warstwę punktową i to jest ok. Natomiast mam problem z mini mapkami zlokalizowanymi w lewym dolnym rogu (podgląd w załączniku). Chciałabym, aby wyświetlał się wyłącznie dystrykt, na którym znajduje się punkt, a nie cała okolica. Próbowałam filtrować poligony dystryktów przez polecenie $id = $atlasfeatureid, ale wyświetlają się wtedy losowe dystrykty, niekompatybilne z punktami. Możliwe, że problem tkwi w układzie współrzędnych: punkty są w 4326, a poligony w 2180. Nie mogę zmienić ich układu, gdyż w przeciwnym razie warstwy te nie nakładają się na siebie (nie wiem z czego to wynika, ale tak jest). Drugi problem dotyczy mapy wszystkich dystryktów. Chciałabym, aby w mapie podglądu wyświetlał się dokładny kontur aktualnego dystryktu, a nie kwadrat obejmujący mniej więcej jego powierzchnię. Czy jest coś takiego możliwe? Zaznaczam, że w mapie wszystkich dystryktów geometria została uproszczona, a w pojedynczych wyświetlanych dystryktach nie. Mimo to nie sądzę, żeby to bardzo wpływało na estetykę dużej mapy, ponieważ jest stosunkowo mała i tego typu szczegóły nie powinny przykuwać wzroku. RE: Atlas kontrolowany przez dwie warstwy - koszatka443 - 02-05-2018 Przepraszam, przypadkowo zduplikowałam post. Proszę o usunięcie. RE: Atlas kontrolowany przez dwie warstwy - adrboc - 02-05-2018 Cześć, odpowiadając na Twoje pytanie: 1. W pierwszej kolejności musisz wiedzieć w jakim dystrykcie leży dany punkt w warstwie punktowej. Możesz do tego wykorzystać narzędzie "Złącz atrybuty według lokalizacji" i w ten sposób opisać warstwę punktową. Dzięki temu warstwa punktowa "zdobędzie" unikalne id danego dystryktu. 2. Następnie należy użyć unikalnego filtrowania w warstwie z dystryktami tak, aby warstwa stylizowała obiekt aktualnego dystryktu zgodnie z Twoim zamierzeniem, czyli: - włączasz w warstwie z dystryktami styl na wartość unikalną i wpisujesz ręcznie wartości 0 i 1, - następnie w pasku wybory kolumny klikasz na wyrażenie i wpisujesz: case when @atlas_pagename = "jpt_nazwa_" then 1 else 0 end gdzie "@atlas_pagename" musi być zdefiniowany jako nazwa Twojego dystryktu a "jpt_nazwa_" to nazwa kolumny w której znajduje się nazwa dystryktu użytego do nazwania strony atlasu. Efekt końcowy: Z drugą mapą należy postąpić podobnie. RE: Atlas kontrolowany przez dwie warstwy - robert - 03-05-2018 > Przepraszam, przypadkowo zduplikowałam post. Proszę o usunięcie. Nie ma problemu, ale dzięki za jasną informację. Post usunięty. RE: Atlas kontrolowany przez dwie warstwy - koszatka443 - 14-05-2018 Dziękuję za odpowiedź. Mam jednak nadal problem z tym tematem i chciałabym prosić o dalszą pomoc. Czy na te działania, które opisałeś, mogą mieć wpływ różny układ współrzędnych punktów i dystryktów? Punkty są w 4326, a dystrykty w 2180 i zastanawiam się czy to z tego powodu nie działają prawidłowo opisane przez Ciebie funkcje. Drugie pytanie: czy mogę ręcznie określić numery id dystryktów i również ręcznie dodać kolumnę z id dystryktów do tabeli atrybutów punktów zamiast wykonywać złączenia wg lokalizacji? Ta funkcja również nie działa prawdopodobnie z powodu odmiennych układów współrzędnych. RE: Atlas kontrolowany przez dwie warstwy - adrboc - 16-05-2018 Odpowiadając na Twoje pytanie dotyczące układów - muszą być w tym samym SRID (odwzorowaniu), inaczej złączenie atrybutów według lokalizacji nie zadziała. Jeżeli chodzi o drugie pytanie dotyczące id - to tak możesz zrobić to ręcznie. Zasada jest taka, że mając dla przykładu teryt gminy wiesz w jakim jest ona powiecie i województwie. Podejrzewam, że Twoje ID dystryktu również może opierać się na podobnej zasadzie. Najmniejszy obiekt danej jednostki ( w moim przykładzie gmina) musi "wiedzieć" o id jednostki nadrzędnej, dzięki temu będzie można wyświetlić ją na mapie. Jeżeli nazwa id jest złożona tak jak w przypadku terytu należy posłużyć się funkcją do fragmentu tekstu "substr()". RE: Atlas kontrolowany przez dwie warstwy - koszatka443 - 22-05-2018 Dziękuję za odpowiedź i pomoc, wszystko działa! Pojawił się jednakże kolejny problem. Mianowicie: dystrykty z mini mapki środkują się w obrębie swojego obszaru pod względem położenia punktu. Tzn. nie są wyśrodkowane przez wzgląd na swoje rozmiary i swój centroid, tylko na fakt, w którym miejscu tego dystryktu znajduje się punkt (miejsce na dystrykcie, w którym zlokalizowany jest punkt, znajduje się w środku obszaru przeznaczonego dla mini dystryktu). Widoki poglądowe w załączniku. Psuje to całą estetykę mapy: dystrykty "wędrują" po różnych krańcach swojego obszaru, nieraz się ucinają. Czy jest możliwość wyśrodkowania tych dystryktów z mini mapki przez wzgląd na ich rozmiar/centroid? |