Lenguaje de programación R
R es un software libre para graficos, computación
estadística y econometrica, que soporta tareas desde la forma mas
simple, ya que nos permite dar instrucciones, usando código, a nuestros
equipos de cómputo para que realicen tareas específicas https://www.r-project.org/.
Mapas en R
R, ofrece un conjunto de librerías que facilitan la
creación y personalización de mapas interactivos y estáticos.
Libreria leaflet
Con leaflet, puedes agregar marcadores, poligonos,
capas raster y otras anotaciones en el mapa. Además, es posible combinar
‘leaflet’ con otras librerías, como ‘shiny’, para crear
aplicaciones web interactivas que muestren datos geoespaciales.
Proyecto
Este codigo en R crea un mapa interactivo utilizando
“leaflet” y añade marcadores de calor y circulo que representa
las diferentes provincias del departamento de Puno, en
función de sus coordenadas geograficas.
Datos
En este proyecto se trabajara con la dataframe de las provincias del
departamento de Puno el cual esta alojado en GitHub.
mapa1 <- read.table("https://raw.githubusercontent.com/Gretty-Paredes/Mapas-en-R/master/data/13-provincias.txt",header =TRUE,sep=",")
mapa1
Generando mapa interactivo
Iniciaremos creando un mapa de calor:
Editando colores y marcadores
Asigna colores a cada Provincia
# Colores y nombres de etiqueta
colores <- c('#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c',
'#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928')
provin <- levels(as.factor(mapa1$Provincia))
# Cambiando color
paleta <- colorFactor(palette = colores, domain = provin)
leaflet() %>%
addTiles() %>%
addCircleMarkers(data =mapa1, lat = ~Latitud, lng = ~Longitud,
color = ~paleta(Provincia), fill = 1)%>%
addMiniMap()%>%
addResetMapButton()
Añadiendo leyenda
#Leyenda
m <- leaflet() %>%
addTiles() %>%
addCircleMarkers(data =mapa1, lat = ~Latitud, lng =~Longitud,
color = ~paleta(Provincia), fill = 1,popup =paste(sep="<br>","<br><strong>Provincia:</strong>",mapa1$Provincia,
"<br><strong>Capital:</strong>",mapa1$Capital,"<br><strong>Distritos:</strong>",mapa1$Distrito) )%>%
addMiniMap()%>%
addResetMapButton()
m <- m %>%
addLegend(data = mapa1, position = "bottomleft", pal = paleta,
values = ~Provincia, title = "Provincias", opacity = 1,
group = "Leyenda")
m
LS0tDQp0aXRsZTogIk1hcGFzIGVuIFIiDQphdXRob3I6ICJHcmV0dHkgUGFyZWRlcyINCmRhdGU6ICIyMDIzLTEwLTE4Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZGVwdGg6IDMNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBjb2xsYXBzZWQ6IHRydWUNCiAgICBzbW9vdGhfc2Nyb2xsOiB0cnVlDQogICAgdGhlbWU6IGpvdXJuYWwNCiAgICBoaWdobGlnaHQ6IGthdGUNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQoNCmxpYnJhcnkobGVhZmxldCkNCmxpYnJhcnkoaHRtbHdpZGdldHMpDQpsaWJyYXJ5KGxlYWZsZXQuZXh0cmFzKSANCmxpYnJhcnkocndvcmxkeHRyYSkNCmxpYnJhcnkodGlkeXZlcnNlKQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KDQpgYGANCg0KIyBMZW5ndWFqZSBkZSBwcm9ncmFtYWNpw7NuIFINCg0KKipSKiogZXMgdW4gc29mdHdhcmUgbGlicmUgcGFyYSBncmFmaWNvcywgY29tcHV0YWNpw7NuIGVzdGFkw61zdGljYSB5IGVjb25vbWV0cmljYSwgcXVlIHNvcG9ydGEgdGFyZWFzIGRlc2RlIGxhIGZvcm1hIG1hcyBzaW1wbGUsIHlhIHF1ZSBub3MgcGVybWl0ZSBkYXIgaW5zdHJ1Y2Npb25lcywgdXNhbmRvIGPDs2RpZ28sIGEgbnVlc3Ryb3MgZXF1aXBvcyBkZSBjw7NtcHV0byBwYXJhIHF1ZSByZWFsaWNlbiB0YXJlYXMgZXNwZWPDrWZpY2FzIDxodHRwczovL3d3dy5yLXByb2plY3Qub3JnLz4uDQoNCiMgTWFwYXMgZW4gUg0KDQoqKlIqKiwgb2ZyZWNlIHVuIGNvbmp1bnRvIGRlIGxpYnJlcsOtYXMgcXVlIGZhY2lsaXRhbiBsYSBjcmVhY2nDs24geSBwZXJzb25hbGl6YWNpw7NuIGRlIG1hcGFzIGludGVyYWN0aXZvcyB5IGVzdMOhdGljb3MuDQoNCiMjIExpYnJlcmlhIGxlYWZsZXQNCg0KQ29uICoqbGVhZmxldCoqLCBwdWVkZXMgYWdyZWdhciBtYXJjYWRvcmVzLCBwb2xpZ29ub3MsIGNhcGFzIHJhc3RlciB5IG90cmFzIGFub3RhY2lvbmVzIGVuIGVsIG1hcGEuIEFkZW3DoXMsIGVzIHBvc2libGUgY29tYmluYXIgKionbGVhZmxldCcqKiBjb24gb3RyYXMgbGlicmVyw61hcywgY29tbyAnc2hpbnknLCBwYXJhIGNyZWFyIGFwbGljYWNpb25lcyB3ZWIgaW50ZXJhY3RpdmFzIHF1ZSBtdWVzdHJlbiBkYXRvcyBnZW9lc3BhY2lhbGVzLg0KDQojIFByb3llY3RvDQpFc3RlIGNvZGlnbyBlbiAqKlIqKiBjcmVhIHVuIG1hcGEgaW50ZXJhY3Rpdm8gdXRpbGl6YW5kbyBfImxlYWZsZXQiXyB5IGHDsWFkZSBtYXJjYWRvcmVzIGRlIGNhbG9yIHkgY2lyY3VsbyBxdWUgcmVwcmVzZW50YSBsYXMgZGlmZXJlbnRlcyBwcm92aW5jaWFzIGRlbCBkZXBhcnRhbWVudG8gZGUgKipQdW5vKiosIGVuIGZ1bmNpw7NuIGRlIHN1cyBjb29yZGVuYWRhcyBnZW9ncmFmaWNhcy4NCg0KIyMgRGF0b3MNCg0KRW4gZXN0ZSBwcm95ZWN0byBzZSB0cmFiYWphcmEgY29uIGxhIGRhdGFmcmFtZSBkZSBsYXMgcHJvdmluY2lhcyBkZWwgZGVwYXJ0YW1lbnRvIGRlIFB1bm8gZWwgY3VhbCBlc3RhIGFsb2phZG8gZW4gX0dpdEh1Yl8uDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRSwgZmlnLmFsaWduPSdjZW50ZXInLHJvd3MucHJpbnQ9OH0NCm1hcGExIDwtIHJlYWQudGFibGUoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HcmV0dHktUGFyZWRlcy9NYXBhcy1lbi1SL21hc3Rlci9kYXRhLzEzLXByb3ZpbmNpYXMudHh0IixoZWFkZXIgPVRSVUUsc2VwPSIsIikNCm1hcGExDQoNCmBgYA0KDQojIyBHZW5lcmFuZG8gbWFwYSBpbnRlcmFjdGl2bw0KDQpJbmljaWFyZW1vcyBjcmVhbmRvIHVuIG1hcGEgZGUgY2Fsb3I6DQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRSxwcmVzc3VyZSxmaWcuYWxpZ249J2NlbnRlcicsIGVjaG89RkFMU0V9DQoNCm1hcGExIDwtIHJlYWQudGFibGUoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HcmV0dHktUGFyZWRlcy9NYXBhcy1lbi1SL21hc3Rlci9kYXRhLzEzLXByb3ZpbmNpYXMudHh0IixoZWFkZXIgPVRSVUUsc2VwPSIsIikNCg0KIyNHZW5lcmFuZG8gZWwgbWFwYSANCm1hcGExICU+JQ0KbGVhZmxldCgpICU+JQ0KICBhZGRUaWxlcygpICU+JQ0KICBhZGRIZWF0bWFwKGRhdGE9IG1hcGExLGxhdD1tYXBhMSRMYXRpdHVkLGxuZz1tYXBhMSRMb25naXR1ZCxyYWRpdXM9OSklPiUNCiAgYWRkTWluaU1hcCgpJT4lDQogIGFkZFJlc2V0TWFwQnV0dG9uKCkNCiAgDQoNCmBgYA0KDQojIyBFZGl0YW5kbyBjb2xvcmVzIHkgbWFyY2Fkb3Jlcw0KQXNpZ25hIGNvbG9yZXMgYSBjYWRhIF9Qcm92aW5jaWFfDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRSwgZmlnLmFsaWduPSdjZW50ZXInfQ0KIyBDb2xvcmVzIHkgbm9tYnJlcyBkZSBldGlxdWV0YQ0KY29sb3JlcyA8LSBjKCcjYTZjZWUzJywgJyMxZjc4YjQnLCAnI2IyZGY4YScsICcjMzNhMDJjJywgJyNmYjlhOTknLCAnI2UzMWExYycsDQogICAgICAgICAgICAgJyNmZGJmNmYnLCAnI2ZmN2YwMCcsICcjY2FiMmQ2JywgJyM2YTNkOWEnLCAnI2ZmZmY5OScsICcjYjE1OTI4JykNCnByb3ZpbiA8LSBsZXZlbHMoYXMuZmFjdG9yKG1hcGExJFByb3ZpbmNpYSkpDQoNCiMgQ2FtYmlhbmRvIGNvbG9yDQpwYWxldGEgPC0gY29sb3JGYWN0b3IocGFsZXR0ZSA9IGNvbG9yZXMsIGRvbWFpbiA9IHByb3ZpbikNCmxlYWZsZXQoKSAlPiUgDQogIGFkZFRpbGVzKCkgJT4lIA0KICBhZGRDaXJjbGVNYXJrZXJzKGRhdGEgPW1hcGExLCBsYXQgPSB+TGF0aXR1ZCwgbG5nID0gfkxvbmdpdHVkLA0KICAgICAgICAgICAgICAgICAgIGNvbG9yID0gfnBhbGV0YShQcm92aW5jaWEpLCBmaWxsID0gMSklPiUNCiAgYWRkTWluaU1hcCgpJT4lDQogIGFkZFJlc2V0TWFwQnV0dG9uKCkNCg0KDQpgYGANCg0KIyMgQcOxYWRpZW5kbyBwb3B1cA0KTXVlc3RyYSB1biBtZW5zYWplIGVtZXJnZW50ZSBjdWFuZG8gc2UgaGFjZSBjbGljDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRSwgZmlnLmFsaWduPSdjZW50ZXInfQ0KbGVhZmxldCgpICU+JSANCiAgYWRkVGlsZXMoKSAlPiUgDQogIGFkZENpcmNsZU1hcmtlcnMoZGF0YSA9bWFwYTEsIGxhdCA9IH5MYXRpdHVkLCBsbmcgPSB+TG9uZ2l0dWQsDQogICAgICAgICAgICAgICAgICAgY29sb3IgPSB+cGFsZXRhKFByb3ZpbmNpYSksIGZpbGwgPSAxLHBvcHVwID1+UHJvdmluY2lhLCBsYWJlbCA9IH5DYXBpdGFsLGdyb3VwID0gIlByb3ZpbmNpYXMiKSU+JQ0KICBhZGRNaW5pTWFwKCklPiUNCiAgYWRkUmVzZXRNYXBCdXR0b24oKQ0KDQpgYGANCg0KIyMgQcOxYWRpZW5kbyBsZXllbmRhDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRSxmaWcuYWxpZ249J2NlbnRlcid9DQoNCiNMZXllbmRhDQptIDwtIGxlYWZsZXQoKSAlPiUgDQogIGFkZFRpbGVzKCkgJT4lIA0KICBhZGRDaXJjbGVNYXJrZXJzKGRhdGEgPW1hcGExLCBsYXQgPSB+TGF0aXR1ZCwgbG5nID1+TG9uZ2l0dWQsDQogICAgICAgICAgICAgICAgICAgY29sb3IgPSB+cGFsZXRhKFByb3ZpbmNpYSksIGZpbGwgPSAxLHBvcHVwID1wYXN0ZShzZXA9Ijxicj4iLCI8YnI+PHN0cm9uZz5Qcm92aW5jaWE6PC9zdHJvbmc+IixtYXBhMSRQcm92aW5jaWEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGJyPjxzdHJvbmc+Q2FwaXRhbDo8L3N0cm9uZz4iLG1hcGExJENhcGl0YWwsIjxicj48c3Ryb25nPkRpc3RyaXRvczo8L3N0cm9uZz4iLG1hcGExJERpc3RyaXRvKSApJT4lDQogIGFkZE1pbmlNYXAoKSU+JQ0KICBhZGRSZXNldE1hcEJ1dHRvbigpDQptIDwtIG0gJT4lIA0KICBhZGRMZWdlbmQoZGF0YSA9IG1hcGExLCBwb3NpdGlvbiA9ICAiYm90dG9tbGVmdCIsIHBhbCA9IHBhbGV0YSwNCiAgICAgICAgICAgIHZhbHVlcyA9IH5Qcm92aW5jaWEsIHRpdGxlID0gIlByb3ZpbmNpYXMiLCBvcGFjaXR5ID0gMSwNCiAgICAgICAgICAgIGdyb3VwID0gIkxleWVuZGEiKQ0KbQ0KYGBgDQo=