Traducir el blog
Cómo geolocalizar ciudades en el mapamundi
🔝To translate this blog post to your language, select it in the top left Google box.
Tal día como hoy de hace 12 años escribí el primer artículo de este blog, en el que sigo dando "guerra", y que seguiré publicando mientras tenga lectores que me sigan, a los que tengo que agradecer que visiten este blog a menudo para llegar algún día a los dos millones de páginas vistas (a ver si no hacen falta otros 10 años para alcanzar el segundo millón de visitas).
En un artículo anterior publiqué un Mapa con Relojes Mundiales que puedes descargar desde aquí:
En otro artículo expliqué cómo cambiar, en tiempo real, la representación plana del planeta Tierra, con zonas de día y de noche:
En este artículo explicaré cómo se añade una nueva ciudad al mapamundi llamando a una Web API.
Si en el Mapa con Relojes Mundiales se hace clic en el icono con el símbolo ➕, y luego se introduce un nombre de ciudad en la celda AA2, esa ciudad se busca con la Nominatim API y, las primeras 20 ciudades encontradas, se cargan en el rango de celdas: AA3:AA22
Al seleccionar una de esas 20 ciudades encontradas, la geolocaliza en el mapamundi y pregunta si se quiere añadir esa nueva ciudad al mapa, como se puede ver en esta captura de pantalla:
La abreviación API se refiere a los Interfaces de Programación de Aplicaciones, que permiten consultar grandes bases de datos desde una Web API, mediante un servidor que atiende mensajes de solicitud-respuesta definidas, normalmente expresados en formato JSON o XML, por medio de un mensaje basado en HTTP a través de la web.
En este caso llamaremos a la API de la web Nominatim (Open-source geocoding with OpenStreetMap (OSM) data), que nos devolverá la latitud y longitud de cualquier ciudad del mundo en cuestión de milisegundos.
Para poder encontrar hasta 20 ciudades o pueblos al introducir un nombre en la celda AA2, se ejecuta la macro GetLatLongCity, del módulo modCiudadNueva que, mediante un objeto XML, hace una llamada "GET" para obtener datos desde la página web que llama al servidor de Nominatim API:
https://nominatim.openstreetmap.org/search?format=xml&limit=20&accept-language=en&q=" & sCity
Siendo: sCity el nombre de la ciudad buscada, por ejemplo: Zaragoza, en esta página web:
https://nominatim.openstreetmap.org/search?format=xml&limit=20&accept-language=en&q=Zaragoza
En la llamada a la API se incluye:
- format=xml, con el formato del archivo de salida.
- limit=20, con el número máximo de resultados.
- accept-language=en, con el lenguaje de búsqueda, en este caso en inglés (=en). Para español habría que cambiar a: =es.
Código de la macro que llama a Nominatim API, y que devuelve xml.responsetext con la respuesta, que es cargada en la celda A1 de la hoja 'Ciudades':
Nominatim indexa entidades con nombre (o numeradas) dentro del conjunto de datos de OpenStreetMap (OSM), que es un mapa del mundo creado por gente como tú o como yo, y que es de uso libre bajo una licencia abierta.
La Nominatim API consulta los datos buscando objetos OSM por nombre o tipo, y esta documentada en esta página en inglés:
La API de búsqueda (/search) permite buscar una ubicación a partir de una descripción o dirección textual. Nominatim API Search admite consultas de búsqueda estructuradas y de formato libre.
En la siguiente página se detallan las políticas de uso de esta API.
Me quedo con esta frase:
"En principio, estamos contentos de que la API pública sea utilizada por usuarios externos para usos creativos e inesperados."
El resultado de la búsqueda es un archivo con formato XML, del que solamente interesa obtener los valores de estas 3 etiquetas para cada uno de los 20 resultados de la búsqueda:
- display_name: con el nombre de la ciudad o pueblo encontrado.
- lat: con la latitud geográfica en formato decimal.
- lon: con la longitud geográfica en formato decimal.
Para extraer esos 3 valores se puede hacer importando los datos XML de un servicio web en la hoja de cálculo de Excel, como se explica aquí:
¡O mediante fórmulas! ¡que es como a mí me gusta!, pues tengo todo el control sobre las etiquetas que quiero extraer.
En la celda A1 de la hoja 'Ciudades' está el resultado de la búsqueda con Nominatim API.
En la columna B he escrito los 3 nombres de las etiquetas, repetidos 20 veces, de las que quiero obtener su valor: lat, lon y display_name, con el signo igual (=).
En la celda A2 he escrito esta fórmula arrastrada hacia abajo hasta la celda A61:
=SI.ERROR(EXTRAE(A1;C1+LARGO(B1)+1;LARGO(A1)-C1-LARGO(B1));"")
En la columna C está la fórmula que busca la posición de las etiquetas de la columna B en la columna A:
=SI.ERROR(ENCONTRAR(B1;A1);"")
La fórmula de la columna D extrae los valores de cada una de las etiquetas XML:
=SI.ERROR(IZQUIERDA(A2;ENCONTRAR("'";A2)-1);"")
En las columna E a K he creado una tabla de ciudades y fórmulas auxiliares para conseguir la lista de hasta 20 ciudades encontradas, lo que no voy a explicar por falta de espacio...
En la fila 24 se encuentra la ciudad seleccionada, con su latitud y longitud, su región y país.
La nueva ciudad sustituirá a una ciudad anteriormente programada en la hoja 'Relojes' y obtendrá su geolocalización en el mapamundi mediante la función LocalizarCiudad, que devuelve la posición en el mapa del punto que representa a la ciudad:
Esta función se llama en la macro PreguntarCiudad para obtener la longitud y latitud de la nueva ciudad, tanto en la hoja 'Relojes' como en la hoja 'Mundo':
Y así he podido geolocalizar cualquier ciudad del planeta Tierra en el mapamundi con relojes.
¿Qué te parece? ¿Cómo te quedas?
Mi lista de blogs
-
7 Way to Unprotect a Sheet in Microsoft Excel - Want to learn how to unprotect Excel sheets? Read this Microsoft Excel tutorial until the end to master this must-have Excel skill. You can protect an Exce...Hace 2 horas
-
Creating sequential lists in Excel - I recently discovered that Excel has a new SEQUENCE function that will return a sequence of increasing numbers in a column, row, or 2D range. Use of the ne...Hace 8 horas
-
Mi ajedrez en Excel - 🔝*Select the language of this blog post in the Google box at the top left. * Con este ajedrez, hecho totalmente en Excel, puedes jugar al ajedrez y ...Hace 1 día
-
Reproductor Multimedia en Excel para Música y Video - Si estás interesado en adentrarte al mundo de la automatización en Excel, especialmente en el ámbito multimedia, ¡has llegado al […] The post Reproductor...Hace 2 días
-
EXPORTAR DATOS DE UNA GALERIA DE POWER APPS A EXCEL - Hola a todos, Hoy vamos a toca uno de los temas más recurrentes cuando trabajamos en Power Apps, (bueno y en cualquier aplicación que no … La entrada EX...Hace 3 días
-
Plantillas y recursos Excel, contabilidad y TIC - Todos los recursos Excel del blog. Puedes acceder a más información pulsando en el título de cada recurso. Plantilla Excel informe resultados empresa. En...Hace 3 días
-
Can Excel Handle Piping Pressure Drop Calcs? - If you’ve ever found yourself grappling with the task of calculating pressure drops in piping systems, you’re in the right place. In this post, I’ll […]Hace 5 días
-
What's New in Excel (April 2024) - Welcome to the April 2024 update. Generating multiple formula columns, creating complex formula columns that span across multiple tables, and new ways t...Hace 1 semana
-
Semiprimos suma de los primeros - (Ver entradas anteriores sobre números semiprimos) Cualquier número elegido al azar no tiene que ser suma de los primeros números de cierto tipo, como pr...Hace 1 semana
-
Excel Dependent Drop Down Lists – Block Changes - One of my favourite Excel features is a data validation drop down list. In just a couple of minutes, you can make a list of items, then make that list appe...Hace 1 semana
-
Announcing Power BI Dashboard Contest (win $500 prizes!) - Hey there, I have a SUPER exciting announcement! April is about to get a whole lot sweeter with our Power BI Dashboard Contest! Your mission, should you ...Hace 4 semanas
-
Minutos de juego y puntos. El Espanyol, sus finales de partido y mis enfados - Pienso que el Espanyol este 2024 se está dejando muchos puntos al final de los partidos. Cuando el ... Leer más » The post Minutos de juego y puntos. El ...Hace 5 semanas
-
TikTok’s search evolution - 2 in 5 Americans use TikTok as a search engine. Nearly 1 in 10 Gen Zers are more likely to rely on TikTok than Google as a search engine. More than half of...Hace 1 mes
-
Aprende cómo usar la función #Filtrar con rangos de fechas SIN macros 📋 [VIDEO] - ¿Alguna vez te has preguntado cómo puedes filtrar tus datos por fechas específicas en Excel de manera rápida y eficiente? En este video, voy a enseñarte pa...Hace 2 meses
-
MASTERCLASS Gratis – Gráfica de Gestión Proyectos en #EXCEL. - Aprende a crear un Gráfico de CURVA S, ideal para GESTIÓN DE PROYECTOS, porque te permite identificar como esta tu proyecto tanto en COSTOS como en TIEMP...Hace 2 meses
-
Interés compuesto con Excel - En la imagen, se presenta un esquema de las distintas funciones Excel para calcular el valor del dinero en el tiempo mediante la capitalización compuesta...Hace 3 meses
-
Demos cursos de Excel 2007, 2010, 2013, 2016, 365 - Puedes consultar las demostraciones de los siguientes capítulos de los cursos Excel. Demo cursos ExcelHace 3 meses
-
El sistema operativo no está configurado para ejecutar esta aplicacion. - Si esta semana habéis recibido el mensaje "El sistema operativo no está configurado para ejecutar esta aplicacion" cuanto intentásteis abrir alguna aplic...Hace 7 meses
-
Atajos esenciales de Excel que todo profesional debe conocer - Manejar Excel con destreza puede ser el superpoder que no sabías que necesitabas. Agiliza tus tareas diarias y sorprende a tus colegas con estos atajos c...Hace 9 meses
-
Unblocking and Enabling Macros - When Windows detects that a file has come from a computer other than the one you're using, it marks the file as coming from the web, and blocks the file....Hace 1 año
-
-
Navigating Outlook Favorites - I have these four favorites defined in Outlook: From the inbox, I could hit Shift+F6 to get into the Favorites area but sometimes I would end up in no man’...Hace 1 año
-
Office Scripts: Trabajando con Tablas - [image: Office Scripts: Trabajando con Tablas] Me he dado cuenta que últimamente solo escribo de lenguaje M (es mi pequeño vicio)... pero hay que liberar l...Hace 1 año
-
Progress on the Block Protocol - Since the 1990s, the web has been a publishing place for human-readable documents. Documents published on the web are in HTML. HTML has a little bit of… Re...Hace 1 año
-
Hello world! - [image: Hello world!] Welcome to WordPress. This is your first post. Edit or delete it, then start writing!Hace 1 año
-
Decálogo para realizar Trabajos de Fin de Grado (TFGs) y de Fin de Máster (TFMs) - 1.- Tanto TFGs como TFMs son un requisito para graduarse a la vez que una oportunidad para aprender. Así, el tiempo que se le dedica es muy variable. De...Hace 2 años
-
London Excel Meetup Workbooks - The workbooks used in my presentation on “Analytical and Interactive Dashboards in Excel” at the London Excel Meetup, September 3, 2020Hace 3 años
-
Cálculo de jornada que termina al día siguiente (Power Query) y despedida - [image: Cálculo de jornada que termina al día siguiente (Power Query) y despedida] Este blog se ha ocupado de cálculos de tiempo con bastante intensidad, c...Hace 4 años
-
Dimensiones-Propiedades de perfiles de acero (IMCA) - Saludos compañeros, en esta oportunidad compartimos esta Planilla Excel que contiene las Propiedades y dimensiones de diferentes tipos de perfiles de acero...Hace 4 años
-
-
-
-
-
-
No Response to "Cómo geolocalizar ciudades en el mapamundi"
Leave A Reply
Dime si te gusta lo que lees y, si no te gusta, dime por qué. Tengo habilitada la moderación de comentarios. Tu comentario se publicará pronto.