ES:Overpass turbo/Asistente

From OpenStreetMap Wiki
Jump to navigation Jump to search
Overpass API logo.svg
edit
API de Overpass · Referencia de lenguaje · Guía de lenguaje · Términos técnicos · Áreas · Ejemplos de consultas · Ejemplos avanzados · Edición dispersa · ID permanente · Preguntas frecuentes · más (español) · Sitio web
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 incidencias
Overpass turbo · Asistente · Atajos de Overpass turbo · Hojas de estilo MapCSS · Exportar a GeoJSON · más (español) · Desarrollo · Código fuente e incidencias · Sitio web
Visita overpass-turbo.eu y sigue estos pasos:
1. Selecciona el asistente en la barra de herramientas
2. Introduce lo que deseas buscar
3. Presiona el botón
4. Disfruta de los resultados

«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 entre sí 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

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
clave like regex

Coincide con objetos que tienen una etiqueta con la clave clave y cuyo valor coincide con la  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==*
clave is not null

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:
a) objetos que tienen una etiqueta con una clave clave y cuyo valor no coincide con la expresión regular regex
b) objetos que no tienen una etiqueta con una clave clave
clave!=*

clave!==*
clave is null

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 modificador i 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.*".

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 (regex), 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).