GISProjekt R

GGMap + GGPlot

Wiemy już jak pobrać fragment podkładu z Google Maps. Dzisiaj zaprezentujemy na pobranej mapie nasze dane z użyciem biblioteki ggplot2. Wczytajmy potrzebne biblioteki:

library(rgdal)
library(ggplot2)
library(ggmap)

W naszym poście wykorzystano linie kolejowe, których używaliśmy już wielokrotnie wcześniej. Wczytajmy warstwę:

kolej <- readOGR("D:/","kolej",stringsAsFactors = F)

Do wyświetlenia warstwy wektorowej w ggplot konieczne jest jej przetransformowanie do data frame z użyciem funkcji fortify:

kolej_df <- fortify(kolej)

Do zmiennej map zapisujemy mapę, którą chcemy wyświetlić:

map <- ggplot(kolej_df, aes(x=long,y= lat,group=group)) + geom_path(color = 'red',size=2) + ggtitle("Nasza mapa")

Poszczególne elementy map to:

ggplot() – inicjalizuje obiekt, deklarujemy w nim dane wejściowe (kolej_df) oraz współrzędne i zmienną grupującą aes()

geom_path() – sposób wyświetlania danych jako linie zgodnie z ich zapisem w tabeli wejściowej. Definiujemy tu jeszcze kolor i wielkość linii.

ggtitle() – nazwa tabeli

Wyświetlamy wynik:

print(map)

Dodajmy teraz podkład ggmap do naszych kolei. Najpierw musimy przetransformować warstwę wektorową do układu geograficznego:

kolej_geog = spTransform(kolej,"+init=EPSG:4326")

Pobieramy fragment mapy satelitarnej Google dla warstwy wektorowej:

sat_map <- get_map(location = kolej_geog@bbox, maptype = 'satellite')

Wyświetlamy podkład:

ggmap(sat_map)

Transformujemy warstwę do data frame:

kolej_df <- fortify(kolej_geog)

Zapisujemy mapę w inny sposób niż wcześniej. Podkładem jest sat_map na którą nakładamy geom_path()

map <- ggmap(sat_map) + geom_path(data = kolej_df, aes(x=long,y=lat,group=group),color = 'red',size=2)

Wyświetlamy wynik:

print(map)

Ggplot to bardzo bogata bibliotek do wizualizacji różnego typu danych. Każdy znajdzie w niej coś dla siebie. W tym poście pokazaliśmy jak w prosty sposób wykorzystać ją do wizualizacji warstw shp na podkładach Google Maps, ale na pewno w przyszłości pokażemy Wam w jaki sposób można wykorzystać inne funkcje tej biblioteki.