Narzędzia użytkownika

Narzędzia witryny


r_mapy

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
r_mapy [2015/02/20 14:30]
zozlak
r_mapy [2015/02/26 14:07]
zozlak
Linia 17: Linia 17:
   * wczytania z bazy danych kontekstowych i opisu obszaru w formacie GeoJSON dla każdego JST   * wczytania z bazy danych kontekstowych i opisu obszaru w formacie GeoJSON dla każdego JST
   * ręcznego złączenia tego w jeden obiekt GeoJSON typu //​FeatureCollection//​   * ręcznego złączenia tego w jeden obiekt GeoJSON typu //​FeatureCollection//​
-  * sparsowania ​na format pakietu ​//rgdal//+  * skonwertowanie ​na obiekt R klasy //SpatialPolygonsDataFrame// 
 +  * skonwertowanie na ramkę danych, którą będzie potrafił zwizualizować ggplot
  
-Przykład dla gmin województwa ​dolnośląskiego ​w latach 2008 i 2013.+Przykład dla gmin województwa ​opolskiego ​w latach 2008 i 2013.
  
 <code rsplus> <code rsplus>
 library(ZPD) library(ZPD)
 library(rgdal) library(rgdal)
 +library(ggplot2)
  
 # pobranie z bazy # pobranie z bazy
Linia 30: Linia 32:
   SELECT ​   SELECT ​
     id_wojewodztwa * 10000 + id_powiatu * 100 + id_gminy AS teryt,     id_wojewodztwa * 10000 + id_powiatu * 100 + id_gminy AS teryt,
-    rodzaj_gminy,​  +    rodzaj_gminy, rok
-    ST_AsGeoJSON(geom) AS geojson ​+    ST_AsGeoJSON(geom) AS geojson
   FROM teryt_gminy   FROM teryt_gminy
-  WHERE id_wojewodztwa = AND rok IN (2008, 2013)+  WHERE id_wojewodztwa = 16 AND rok IN (2008, 2013)
 " "
 podklady = tbl(src, sql(zapytanie)) %>% podklady = tbl(src, sql(zapytanie)) %>%
Linia 51: Linia 53:
   mutate(geojson = paste0('​{"​type":​ "​FeatureCollection",​ "​features":​ [', geojson, '​]}'​))   mutate(geojson = paste0('​{"​type":​ "​FeatureCollection",​ "​features":​ [', geojson, '​]}'​))
  
-# konwersja na obiekty rgdal +# konwersja na SpatialPolygonsDataFrame wraz z dorzuceniem centroidów 
-mapy = sapply(podklady$geojson,​ readOGR, layer = "​OGRGeoJSON"​) +mapy.backup ​lapply(podklady$geojson, ​function(x){ 
-names(mapy) = podklady$rok+  x = readOGR(x, layer = "​OGRGeoJSON"​, stringsAsFactors = F
 +  ​x@data = cbind(x@data, setNames(as.data.frame(coordinates(x)),​ c('​x',​ '​y'​))) 
 +  return(x) 
 +}) 
 + 
 +# konwersja na ramkę danych rysowalną dla ggplot-a 
 +mapy = lapply(mapy.backup,​ function(mapa)
 +  ramkaDanych ​fortify(mapa) 
 +  ramkaDanych$id = as.numeric(ramkaDanych$id) 
 +  return(left_join(ramkaDanych,​ mapa@data)) 
 +}) 
 +mapy = bind_rows(mapy)
  
 # weryfikacja # weryfikacja
-plot(mapy[[1]]+ggplot(mapy %>% filter(rok == 2013), aes(x = long, y = lat, fill = rodzaj_gminy,​ group = id)) + 
-head(mapy[[1]]@data)+  ​geom_polygon(colour = '#​000000'​)
 </​code>​ </​code>​
  
  
r_mapy.txt · ostatnio zmienione: 2015/02/26 14:07 przez zozlak