#------------------------------------------------------------------------#
# variaciones de la cartografía                                         #


library(maptools) # referencia para mapas
s <- readShapeSpatial("map/map.shp") # leer forma de formato
summary(es) # no muy fácil de leer...
plot(s) # Francia!
#------------------------------------------------------------------------#
library(sf)                               # para tener sf::st_read 
s_ <-sf::st_read("map/map.shp", stringsAsFactors = FALSE)
summary(s_)
plot(s_[,c("CODE","NAME1","geometry"), ]) # dept y regiones 
        

s_vosgos <- s_[s_$CODE=="FR.VG", ]  # extracción vosges
                                    # Rq : main se especifica en plot.sf
plot(s_vosgos[ ,c("CODE","geometry")], 
     main ="Los Vosgos")       


s_lorena <- s_[s_$NAME1=="Lorraine", ] # extracción Lorraine
summary(s_lorena)
plot(s_lorena[,c("MM_UID","geometry")], 
     main ="La Lorena")
#------------------------------------------------------------------------#
library(RColorBrewer)                    # para controlar los colores
coul <- brewer.pal(5, "Blues")
plot(s_lorena[,c("MM_UID","geometry")], 
     main ="La Lorena", 
     col = coul) 


c_ <-sf::st_read("commune/COMMUNE.shp",  # las comunidades francesas
                 stringsAsFactors = FALSE)
summary(c_)

#------------------------------------------------------------------------#
library(lambda.tools)                    # para la función map
s_lorena$NAME2 <- map(s_lorena$NAME2, toupper) # en mayúsculas
lorena         <- unique(s_lorena$NAME2)       # conjunto
lorena
c_lorena<- c_[c_$NOM_DEPT %in% lorena, ] # extrae las comunidades
                                             # de Lorraine

                                             # extrae las comunidades
                                             # superiores
c_lorena_alta <- c_lorena[c_lorena$Z_MOYEN >= 890, ]

                                             # plot en varios
                                             # lugares
plot(c_lorena[,c("CODE_DEPT","geometry")],
     main ="Comunidades más altas de Lorena",
     border = "yellow" )
legend(xjust = 3, title = "Departamentos")

pointLabel(c_lorena_alta$X_CENTROID,
           c_lorena_alta$Y_CENTROID,
           c_lorena_alta$NOM_COM,
           allowSmallOverlap = FALSE, 
           method = c("SANN"),
           cex=1,
           col="black")
                                    
points(c_lorena_alta$X_CENTROID,         # añade los puntos
       c_lorena_alta$Y_CENTROID,
       pch = "O",  
       col="red")

                                # rasters
library(dismo)                  # raster básicos de google
mymapkey = "pk-tHVbDiymfUL"
mygeokey = "Skxe99-adfKeax"
fr <- gmap("France",
           scale = 2,
           type = "roadmap",
           map_key=mymapkey, 
           geocode_key=mygeokey)    # es suficiente con pedir

summary(fr)
plot(fr)

                                # recuperación de coordenadas
geocode(c('Geradmer', 'Xonrupt, France', "Lorraine"),
        geocode_key=mygeokey)



lr <- gmap("Lorraine",
           scale = 2,
           type = "roadmap" ,
           map_key=mymapkey, 
           geocode_key=mygeokey)  

summary(lr)
plot(lr)


lr <- gmap("Lorraine",
           scale = 2,
  style="feature:road.local|element:geometry|hue:0x00ff00|saturation:90
  &style=feature:landscape|element:geometry|lightness:-90",zoom = 10, 
           type='hybrid',
  map_key=mymapkey, 
  geocode_key=mygeokey)   

summary(lr)
plot(lr)

#------------------------------------------------------------------------#
require(tmap)          # simple y claro
qtm(shp = s_lorena,  # lectura forma
    fill = "NAME2", 
    fill.palette = "-Blues", 
    fill.title   = "Departamento")


library(mapview)      # mapas inteactivos

                      # lo más sencillo
mapview(c_lorena, 
        zcol = c("Z_MOYEN"), 
        legend           = TRUE)

mapview(s_lorena,   # lectura forma
        zcol = c("NAME2"), 
        legend = TRUE)

                       # mapas sincronizados
library(RColorBrewer)  # gestión de los colores
clrs <- colorRampPalette(brewer.pal(9, "Greens"))
mapview(c_lorena, 
               zcol = c("Z_MOYEN"), 
               legend = TRUE, 
               col.regions = clrs)
mapview(c_lorena_alta, 
               zcol = c("NOM_COM"), 
               legend = TRUE)
map1 <-mapview(c_lorena, 
               zcol = c("Z_MOYEN"), 
               legend = TRUE, 
               col.regions = clrs)
map2 <-mapview(c_lorena_alta, 
               zcol = c("NOM_COM"), 
               legend = TRUE)
map1+map2

#------------------------------------------------------------------------#

