Crear un mapa con Folium en Python

logo python

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)

Otros artículos sobre Python

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