Leaflet w R

Pokazaliśmy Wam jakiś czas temu jak prezentować wyniki swoich analiz na mapach z wykorzystaniem ggmap. Dzisiaj zaprezentujemy Wam jak używać pakietu leaflet w R do tworzenia interaktywnych map. Dodatkowo potrzebować będziemy bibliotek raster i sf do wczytania i przetworzenia warstw wejściowych:

Do naszego ćwiczenia użyjemy warstwy wektorowe używane już wcześniej: koleje i drogi.  Wczytajmy je:

Znajdźmy przejazdy:

Wczytajmy jeszcze raster. Użyjemy NMT dla Mazowsza:

Wczytany raster nie ma nadanego układu współrzędnych. Poprawmy to:

projection(dem) = CRS(„+init=EPSG:2180”)

Przytniemy NMT do zasięgu warstwy dróg:

Otwórzmy podstawę mapy używając leaflet i dodając domyśle kafle podkładu mapy OSM:

Wyświetlmy mapę:

leaflet_1

Dodajmy do mapy warstwę rastrową NMT, z przezroczystością 0.8 funkcją addRasterImage:

leaflet_2

Dodajmy warstwę dróg (kolor niebieski) i linii kolejowych (kolor czerwony) korzystając z addPolylines. Dla warstw wektorowych konieczna jest transformacja do układu geograficznego z użyciem st_transform:

leaflet_3

Wcześniej wykonaliśmy intersekcje dwóch wczytanych warstw, uzyskując warstwę punktową z przejazdami. Dodajmy ją do naszej mapy używając addCircleMakers:

leaflet_4

Nasza mapa zawiera już wszystkie warstwy. Mapa jest interaktywna – możemy dowolnie się po niej poruszać.

Czy zwróciliście uwagę że dla każdej funkcji dodającej warstwę zdefiniowaliśmy atrybut group. Wartości tego atrybutu wykorzystamy w ostatnim kroku dodając do mapy listę warstw. Podzielimy warstwy na te wyświetlane niezależnie (baseGroups) i te które mogą się nakładać (overlayGroups).

Ostatecznie mapa wygląda i działa tak:

Post miał na celu tylko przybliżyć Wam możliwości pakietu leaflet. Posiada on wiele większe możliwości nie wspomniane dzisiaj, które musicie odkryć sami. Rozszerzyć wiedzę o użytych dzisiaj funkcjach bibliotek raster i sf możecie w naszym Kursie GIS w R.

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Translate using Google Translate»
Social media & sharing icons powered by UltimatelySocial

Podoba Ci się nasza strona? Odwiedź nasz profil