11. Visualización de Mapas I#
11.1. Librerías para Mapas con Python#
Librería |
Descripción |
|---|---|
Arcy |
Sirve para el análisis espacial, la conversión de datos, la administración y la producción de mapas utilizando los programas SIG de ESRI. |
Geopandas |
Es un proyecto de código abierto que facilita el trabajo con datos geoespaciales en Python y extiende los tipos de datos utilizados por pandas para permitir operaciones espaciales en tipos geométricos. |
Cartopy |
Cartopy es un paquete de Python diseñado para el procesamiento de datos geoespaciales con el fin de producir mapas y otros análisis de datos geoespaciales. |
GDAL/OGR |
Es una biblioteca traductora para formatos de datos geoespaciales raster y vectoriales que se publica bajo una licencia de código abierto de estilo MIT por la Open Source Geospatial Foundation. |
Geemap |
Es un paquete de Python para el análisis y visualización geoespacial interactivos con Google Earth Engine (GEE), que es una plataforma de computación en la nube con un catálogo de múltiples petabytes de imágenes satelitales y conjuntos de datos geoespaciales. |
Geopy |
Es una librería que permite acceder a servicios de geocodificación,facilita a desarrolladores de Python localizar las coordenadas de direcciones, ciudades, países y puntos de referencia en todo el mundo mediante geocodificadores de terceros y otras fuentes de datos. |
11.2. Librería Folium#
¿Qué es Folium?
11.3. Creación de un Mapa#
import folium as fl
import pandas as pd
import geopandas as gpd
from folium import plugins
import folium
from folium.plugins import MiniMap
from folium.plugins import FloatImage, Fullscreen
Web de mapas de leaflet con folium
11.3.1. Mapa Base - Leaflet - OpenStreetMap#
“OpenStreetMap”
“Mapbox Bright”
“Mapbox Control Room”
“Stamen” (“Terrain”, “Toner” y “Watercolor”)
“Cloudmade” (Requiere una llave del API)
“Mapbox” (Requiere una llave del API)
“CartoDB” (“positron” y “dark_matter”)
¿Qué es OpenStreetMap?
Web de OpenStreetMap
mapa_base= fl.Map()
mapa_base
mapa_base.save("001_mapa_base.html")
11.3.2. Latitud - Longitud - Única Ubicación#
¿Cómo obtener las coordenadas de un lugar?
# Colegio San Francisc Javier: -41.48342776832596, -72.88303959993823
CSFJ=fl.Map (location=[-41.485252250380675, -72.89014208945709], zoom_start=18)
CSFJ
CSFJ.save("002_mapa_CSF.html")
11.3.3. Marcador - Circulo - Logo#
CSFJ02=fl.Map(location=[-41.48342776832596, -72.88303959993823], zoom_start=18)
imagen_01= "/Users/claudiorojas/Documents/Consultora Iteracion Data Science/Logos/Fiverr Premium Kit v2 Iteracion/PNG Logo Files/Transparent Logo.png"
FloatImage(imagen_01,left=90, bottom=90).add_to(CSFJ02)
fl.Marker(location=[-41.485252250380675, -72.89014208945709], icon=fl.Icon(color="purple",icon="heart"), tooltip="<b>CSFJ</b>").add_to(CSFJ02)
fl.Circle(location=[-41.485252250380675, -72.89014208945709], color="orange",fill_color="red",weight=10, fill_opacity=0.4, tooltip="Jesuitas").add_to(CSFJ02)
CSFJ02
# Si deseas guardar el mapa en formato html en tu computador: CSFJ02.save("002_mapa_CSF.html")
11.3.4. Tipos de Tiles (Teselas):#
¿Qué es Tiles?
11.3.4.1. Mini Mapa - Tiles - FullScreen#
CSFJ03=fl.Map(location=[-41.48342776832596, -72.88303959993823], zoom_start=18, tiles="CartoDB Positron") #Revisar porque no siempre el tile funciona
#CSFJ02=fl.Map(location=[-41.48342776832596, -72.88303959993823], zoom_start=18)
imagen_01= "/Users/claudiorojas/Documents/Consultora Iteracion Data Science/Logos/Fiverr Premium Kit v2 Iteracion/PNG Logo Files/Transparent Logo.png"
FloatImage(imagen_01,left=90, bottom=90).add_to(CSFJ03)
fl.Marker(location=[-41.485252250380675, -72.89014208945709], icon=fl.Icon(color="purple",icon="heart"), tooltip="<b>CSFJ</b>").add_to(CSFJ03)
fl.Circle(location=[-41.485252250380675, -72.89014208945709], color="orange",fill_color="red",weight=10, fill_opacity=0.4, tooltip="Jesuitas").add_to(CSFJ03)
#MiniMap(position="bottomleft",toggle_display= True).add_to(CSFJ02)
MiniMap(position="bottomleft",toggle_display= True, tile_layer="CartoDB Positron").add_to(CSFJ03) #revisar porque no siempre tile funciona
CSFJ03
# Si deseas guardar el mapa en formato html en tu computador: CSFJ03.save("002_mapa_CSF.html")
11.3.5. Configuración Popup#
¿Qué es Popup?
CSFJ05=fl.Map(location=[-41.48342776832596, -72.88303959993823], zoom_start=18, tiles="CartoDB Positron") #Revisar porque no siempre el tile funciona
html_001='''
<b style="font-family: Arial; "><b>Lugar: Colegio San Francisco Javier</b><br>
<b style="font-family: Arial; ">Latitud: -41.48342776832596</b><br>
<b style="font-family: Arial; ">Longitud: -72.88303959993823</b><br><br>
<b style="font-family: Arial; ">web: <a href="https://goo.su/tM65oO9" target= "_blank">Colegio San Francisco Javier</b><br><br>
<center><img src="https://goo.su/LFaJ" width=200 height=100></center>
'''
iframe = fl.IFrame(html=html_001,width=300,height=250)
fl.Marker(location=[-41.485252250380675, -72.89014208945709], icon=fl.Icon(color="purple",icon="heart"), popup=fl.Popup(iframe), tooltip="<b>CSFJ</b>").add_to(CSFJ05)
fl.Circle(location=[-41.485252250380675, -72.89014208945709], color="orange",fill_color="red",weight=10, fill_opacity=0.4, tooltip="Jesuitas").add_to(CSFJ05)
MiniMap(position="bottomleft",toggle_display= True, tile_layer="CartoDB Positron").add_to(CSFJ05) #revisar porque no siempre tile funciona
fl.TileLayer("Stamen Terrain").add_to(CSFJ05)
fl.TileLayer("stamen toner").add_to(CSFJ05)
fl.TileLayer("CartoDB Positron").add_to(CSFJ05)
fl.TileLayer("stamenwatercolor").add_to(CSFJ05)
fl.TileLayer("OpenStreetMap").add_to(CSFJ05)
fl.TileLayer("Cartodb dark_matter").add_to(CSFJ04)
fl.LayerControl(position="bottomright").add_to(CSFJ05)
CSFJ05
# Si deseas guardar el mapa en formato html en tu computador:
CSFJ05.save("002_mapa_CSF.html")
11.3.6. Multiples Marcadores#
html_001='''
<b style="font-family: Arial; "><b>Lugar: Colegio San Francisco Javier</b><br>
<b style="font-family: Arial; ">Latitud: -41.48342776832596</b><br>
<b style="font-family: Arial; ">Longitud: -72.88303959993823</b><br><br>
<b style="font-family: Arial; ">web: <a href="https://goo.su/tM65oO9" target= "_blank">Colegio San Francisco Javier</b><br><br>
<center><img src="https://goo.su/LFaJ" width=200 height=100></center>
'''
html_002='''
<b style="font-family: Arial; "><b>Lugar: Universidad San Sebastián</b><br>
<b style="font-family: Arial; ">Latitud: -41.46805828626035</b><br>
<b style="font-family: Arial; ">Longitud: -72.90724385396024</b><br><br>
<b style="font-family: Arial; ">web: <a href="https://onx.la/9f9f9" target= "_blank">Universidad San Sebastián</b><br><br>
<center><img src="https://www.uss.cl" width=200 height=100></center>
'''
html_003='''
<b style="font-family: Arial; "><b>Lugar: Mall Alerce</b><br>
<b style="font-family: Arial; ">Latitud: -41.45911787343535</b><br>
<b style="font-family: Arial; ">Longitud: -72.92277920892815</b><br><br>
<b style="font-family: Arial; ">web: <a href="http://www.pasmar.cl/paseo-alerce/" target= "_blank">Mall Alerce</b><br><br>
<center><img src="https://goo.su/zjBH" width=200 height=100></center>
'''
iframe_1 = fl.IFrame(html=html_001,width=300,height=250)
iframe_2 = fl.IFrame(html=html_002,width=300,height=250)
iframe_3 = fl.IFrame(html=html_003,width=300,height=250)
Centro=fl.Map(location=[-41.45979327156361, -72.92269337820014], zoom_start=18)
fl.Marker(location=[-41.485252250380675,-72.89014208945709], icon=fl.Icon(color="purple",icon="heart"), popup=fl.Popup(iframe_1), tooltip="<b>CSFJ</b>").add_to(Centro)
fl.Marker(location=[-41.46805828626035,-72.90724385396024], icon=fl.Icon(color="red",icon="tower"), popup=fl.Popup(iframe_2), tooltip="<b>USS</b>").add_to(Centro)
fl.Marker(location=[-41.45911787343535,-72.92277920892815], icon=fl.Icon(color="blue",icon="flag"), popup=fl.Popup(iframe_3), tooltip="<b>Mall</b>").add_to(Centro)
Centro
# Si deseas guardar el mapa en formato html en tu computador:
Centro.save("003_mapa_CSF.html")