ES:Overpass turbo/Asistente
Estado de servidores · Versiones · Desarrollo · Diseño técnico · Instalación · Capa de compatibilidad XAPI · Esquemas de transporte público · Aplicaciones · Código fuente e incidenciasOverpass turbo · Asistente · Atajos de Overpass turbo · Hojas de estilo MapCSS · Exportar a GeoJSON · más (español) · Desarrollo · Código fuente e incidencias · Sitio webOverpass Ultra · Examples · Overpass Ultra extensions · Hojas de estilo MapLibre · URL Params · más (español) · Código fuente e incidencias · Sitio web
«Overpass» es un sistema para extraer información de la base de datos de OSM («minar» la base de datos). El «Asistente de consultas» de Overpass te ayuda a hacer esto más fácilmente.
Propósito
Para obtener información de una base de datos se le envía una «consulta» (una pregunta) en un lenguaje que la computadora pueda entender (el «lenguaje de la consulta»).
Escribir consultas de Overpass puede resultar a veces bastante tedioso, repetitivo y requiere primero conocer el lenguaje de consulta. El Asistente de consulta de Overpass te facilita convertir términos simples legibles por humanos en consultas de Overpass plenamente operativas. He aquí un ejemplo: para encontrar fuentes de agua potable, todo lo que tienes que hacer es activar el asistente e introducir la correspondiente etiqueta amenity=drinking_water
.
La sintaxis que el asistente entiende está inspirada en las funciones de búsqueda y filtros de JOSM. Una búsqueda consiste en expresiones de filtros individuales, por ejemplo, key=value
(para una búsqueda simple de etiqueta) o type:node
(para restringir los resultados únicamente a nodos). Estos filtros se pueden combinar mediante operaciones lógicas como and
o or
. Echa un vistazo a los siguientes ejemplos:
tourism=hotel
amenity=drinking_water and type:node
(highway=primary or highway=secondary) and type:way
Por defecto, los datos se buscan en la vista actual del mapa. Pero el asistente también comprende algunos otros filtros de ubicación. He aquí un ejemplo de cómo buscar en cierta ciudad:
tourism=museum in Vienna
El asistente de Overpass turbo usa una sintaxis de consulta simplificada, que tiene que ser siempre introducida en la ventana emergente «Asistente» para su traducción en una nueva consulta Overpass QL. La sintaxis del asistente descrita en esta página wiki es incompatible con la propia de Overpass QL. ¡No mezcles ni combines las dos! |
Asistente inteligente
La forma más sencilla de buscar es usar categorías de objetos. Por ejemplo, se pueden usar los términos Hotel
, "Drinking Water"
, Hospital
, etc. Esto funciona para todos los objetos que disponen de un predefinido en el editor iD.
Búsqueda de etiquetas
Para los significados de «clave» y «valor», por favor, consulta el Glosario.
Selector con alternativas |
Descripción | Ejemplo |
---|---|---|
clave=valor clave==valor |
Coincide con objetos que tienen una etiqueta con la pareja clave-valor especificada. | tourism=museum |
clave:fragmentovalor | Coincide con objetos que tienen una etiqueta con la clave especificada y cuyo valor contiene la cadena dada después del signo : ..
|
cycleway:opp (devuelve cycleway=opposite, cycleway=opposite_track, cycleway=opposite_lane, etc.) |
clave~regex clave~=regex |
Coincide con objetos que tienen una etiqueta con la clave clave y cuyo valor coincide con la expresión regular expresión regular regex. | |
~claveregex~regex ~claveregex~=regex |
Coincide con objetos que tienen una etiqueta con una clave que coincide con la expresión regular claveregex y cuyo valor coincide con la expresión regular regex. | ~building~".*" (devuelve todos los edificios incluso con el prefijo del ciclo de vida) |
clave=* clave==* |
Coincide con objetos que tienen una etiqueta con una clave clave. | |
clave!=valor clave!==valor |
Coincide con objetos que no tienen una etiqueta con una clave clave y el valor valor. | |
clave!~regex clave not like valor |
Coincide con:
|
|
clave!=* clave!==* |
Coincide con objetos que no tienen una etiqueta con la clave clave. |
Si una cadena (por ejemplo, el valor de una de las etiquetas selectores anteriores) contiene espacios en blanco u otro carácter especial (como dos puntos, guiones, caracteres no-ascii, etc.), debe estar encerrada entre comillas:
name="New York"
"addr:housenumber" = *
Las expresiones regulares pueden ser introducidas como cadenas simples o con barras oblicuas como delimitadores: cadenas simples como notaciones de expresiones regulares bien conocidas:
ref ~ "[0-9]+"
name ~ /calle$/i
(el modificadori
distingue entre mayúsculas y minúsculas)image ~ /wikimedia\.commons/
(el caracter de barra invertida\
hace que la expresión coincida con un «.» literal)
Asistente inteligente
En lugar de búsquedas de etiquetas, se puede filtrar por categorías de objetos. Por ejemplo, se pueden usar los términos Hotel
, "Drinking Water"
, Hospital
, etc., en lugar de la correspondiente etiqueta. Esto funciona para todos los objetos que cuentan con un predefinido en el editor iD.
Filtros de metadatos
Selector | Description | Ejemplo |
---|---|---|
type:tipo-osm | Coincide con objetos del tipo (nodo, vía o relación) indicado. | type:node
|
id:id-osm | Coincide con objetos que tienen el identificador OSM indicado. | id:263621287
|
user:usuario-osm | Coincide con objetos que fueron modificados por última vez por el usuario con el nombre de usuario indicado. | user:nombredelusuario
|
uid:idu-osm | Coincide con objetos que fueron modificados por última vez por un usuario con el número de identificador de usuario indicado. | |
newer:fecha | Coincide con los objetos que han sido añadidos o modificados más recientemente que la fecha/hora indicada. (Véase más abajo el formato) |
El parámetro fecha para el selector newer
puede ser:
- una cadena de tiempo en formato ISO 8601 (p. ej.,
"2013-11-24T19:01:00Z"
) o - una fecha relativa, la cual indica una cantidad relativa de tiempo en el pasado:
newer:1day
(selecciona todo lo que ha sido añadido o modificado en las últimas 24 horas)newer:"4 weeks"
(selecciona todo lo añadido o modificado en las últimas 4 semanas)
Se permiten unidades como: segundo(s), minuto(s), hora(s), día(s), semana(s), mese(s) y año(s).
Ejemplo: amenity=drinking_water and newer:"4 weeks"
Filtros de ubicación
El asistente crea por defecto consultas que buscan en la vista actual del mapa (a través de una <bbox-query {{bbox}}/>
). Especificando un filtro de ubicación al final de la búsqueda, también puedes buscar en diferentes lugares o incluso a nivel mundial:
Selector | Descripción |
---|---|
in bbox | (por defecto) Coincide con objetos que están dentro de la vista actual del mapa. |
in lugar | Coincide con objetos que están dentro del área llamada lugar. |
around lugar | Coincide con objetos que están cerca del objeto con nombre lugar. |
global | Búsqueda global de objetos, sin ningún tipo de restricción de ubicación. Para resultados que queden fuera de la vista actual del mapa, usa el control de Zum a datos para ubicarlos. |
Los nombres de lugar antes mencionados pasan primero por una búsqueda en Nominatim. Esto significa que puedes usar cualquier nombre de lugar que también se pueda encontrar en el cuadro de búsqueda de OSM, como nombres de ciudades, puntos de interés, direcciones, etc. (Ten cuidado, ya que buscarás en todos los lugares con ese nombre: hay maneras de evitarlo usando más términos de búsqueda)
tourism=museum in Vienna
amenity=restaurant around "1600 Pennsylvania Ave NW, Washington"
tourism=attraction around "Riesenrad, Wien"
Operadores booleanos
Operador
con alternativas |
Descripción | Ejemplo |
---|---|---|
X or Y X || Y, X | Y |
Coincide con los objetos que cumplen con la condición X o la condición Y. | highway=bus_stop or railway=platform
|
X and Y X && Y, X & Y |
Coincide con los objetos que cumplen con la condición X y la condición Y. | highway=bus_stop and shelter=yes
|
Todos los operadores booleanos pueden ser usados con llaves (paréntesis) para cambiar las prioridades de los operadores:
(highway=bus_stop or railway=platform) and shelter=yes
Asistente relleno con parámetro URL
Puedes crear enlaces a Overpass turbo que usen el asistente de consulta para crear una consulta (que será cargada al inicio y presentada al usuario). Un ejemplo sería http://overpass-turbo.eu/?w=pub+in+dublin
. Dichas URLs a Overpass turbo son bastante cortas y, al menos, algo legibles por humanos.
Agregando &R
a este enlace, la consulta se ejecutará de inmediato y los resultados se mostrarán en el mapa.
Ejemplo: http://overpass-turbo.eu/?w=pub+in+dublin&R
Esta característica también es utilizada por el motor de búsqueda DuckDuckGo: puedes simplemente escribir tu consulta en su cuadro de búsqueda acompañada por !otw
(que significa «Asistente de Overpass Turbo», por sus siglas en inglés: «Overpass Turbo Wizard») y al iniciar la búsqueda te conducirá inmediatamente a la página de Overpass turbo con la consulta que introdujiste.
Puedes usar comodines
Te gustaría ver todos los repetidores de radioaficionados en cierta región de Alemania. Las siglas de los repetidores de radioaficionado en Alemania comienzan con DB0* (dos ejemplos: DB0XS o DB0SR), y estas siglas se encuentran en la etiqueta name.
Solución: usa esta expresión regular: name~"^DB0.*"
.
La sintaxis de comodines soportada se denomina "expresiones regulares extendidas POSIX".
Hasta ahora, cuando se buscaba una etiqueta formada por clave=valor, los comodines solo eran posibles cuando se definía el valor de una etiqueta, no se podía aplicar ningún comodín a la clave. La función para buscar una clave ya está disponible también a través de expresión regular, véase más arriba.
Timeout
Por defecto, [timeout:25]
forma parte de la consulta. Significa que la consulta se detendrá después de pasados 25 segundos. En algunas situaciones, es posible que desees incrementar este valor para permitir consultas que requieran más tiempo.
Limitaciones
El uso del asistente de Overpass turbo desde el navegador no causa demasiado tráfico en los servidores (excepto un uso deliberadamente malicioso). Consulta API de Overpass#Introducción («Puedes asumir con seguridad...»).
Detalles técnicos
La sintaxis del asistente está inspirada en las funciones de búsqueda/filtro de JOSM. El asistente define su propia gramática escrita en PEG.js (un sencillo generador de análisis sintáctico para JavaScript). La consulta de análisis sintáctico (un árbol de operaciones booleanas y filtros) se normaliza entonces en forma normal disyuntiva (A∧B∧…) ∨ (X∧Y∧…) ∨ …
, la cual es mucho más fácil de representar como consulta Overpass (p. ej., una unión simple de consultas). Después de eso, se construye una consulta Overpass QL anotada bastante trivial. Para algunos filtros especiales, se usan atajos de teclado de consulta (tal como {{geocodeArea:*}}
para una búsqueda … in Área
).