En este articulo, mostraré como crear un mapa con Folium en Python, por diferentes vías.
Folium es una librería fantástica, que nos permite crear mapas de un modo simple y ágil y que puede ser una magnifica alternativa a basemap.
La forma básica de crear un mapa en Folium es :
import folium
from folium import plugins
import ipywidgets
import pandas as pd
import numpy as np
folium.Map()#aqui llamamos al mapa simple
Otra forma simple, es crear el mapa, acotando elemento como el zoom, el área, la escala y tamaño del mapa y una dirección especifica. Esta ultima mediante su latitud y longitud.
folium.Map(location=[39.473861, -0.360830], zoom_start=80, width=500, height= 600, control_scale=True)
Esta muestra además la escala y se puede controlar el tamaño del mapa
Controlar el tamaño del mapa
También podemos controlar el tamaño del mapa es empleando el modulo figure()
de la librería branca()
.
from branca.element import Figure
#folium.Map()
map_1= folium.Map(location=[39.473861, -0.360830], zoom_start=80, control_scale=True)
map_1
fig = Figure(width=1000, height=500)
fig.add_child(map_1)
fig
Guardar el mapa
Para guardar el mapa en folium
, basta con darle un ruta al método save()
Tipos de mapas con widgets
Con folium es fácil añadir widgets a los mapas, que los hacen muy útiles y amplian mucho las posibiidades de visualización.
En el ejemplo mostramos diferentes vistas de un mapa, empleando los widgets:
#seleccion de los widgets
select_widgets=ipywidgets.Select(
options=['Open Street Map', 'Terrain', 'Watercolor', 'Positron', 'Dark Mater'],
value = 'Open Street Map',
description ='Tipos de mapa:',
disable= False)
def selectMap(maptype):
if maptype == "Open Street Map":
display(folium.Map(location=[39.473861, -0.360830], zoom_start=80, control_scale=True))
if maptype == "Terrain":
display(folium.Map(location=[-12.055815, -77.0567980], zoom_start=50, control_scale=True))
if maptype == "Watercolor":
display(folium.Map(location=[20.0521337, -75.860336], zoom_start=10, tiles='Stamen Watercolor', control_scale=True))
if maptype == "Positron":
display(folium.Map(location=[40.410610, -3.490617], zoom_start=10, tiles='CartoDB Positron', control_scale=True))
if maptype == "Dark Mater":
display(folium.Map(location=[40.410610, -3.490617], zoom_start=10, tiles='CartoDB Dark_Matter', control_scale=True))
#interactuando entre el widget y la funcion
ipywidgets.interact(selectMap, maptype=select_widgets)
Hay mucho mas que sacar de Folium, como mapas de calor, así que te invito a investigar esta útil librería y sacarle jugo a sus enormes posibilidades.
Espero que esto sirva de ayuda a alguien. Muchas gracias.
Pocos saben lo mucho que debemos saber, para darnos cuenta de lo poco que sabemos
R. Tagore