ES:API de Overpass/Capa de compatibilidad XAPI

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

Capa de compatibilidad XAPI

Véase también: Generador de consultas Overpass XAPI (harrywood.co.uk)

Como se pidió en el SOTM-EU 2011, la API de Overpass tiene una capa de compatibilidad para la consultas XAPI más comunes. Las URL base son

http://overpass.openstreetmap.ru/cgi/xapi?

o

http://www.overpass-api.de/api/xapi?

Las únicas diferencias sustanciales son que la API de Overpass no entrega datos de conjuntos de cambios, usuario, versión y marcas de tiempo de forma predeterminada (a menos que se quiera volver a añadir los datos al servidor principal; de todas formas estos datos no son necesarios) y no devuelve relaciones que contengan elementos descargados.

Sin embargo, si quieres que los datos sean utilizables en algunas herramientas (por ejemplo, JOSM, Osmosis) puedes añadir [@meta] a tu solicitud de xapi, y los obtendrás.

Llamada al mapa

Se admiten ambas versiones de la llamada al mapa, donde la variante con mapa tiene ligeras ventajas de rendimiento:

http://www.overpass-api.de/api/xapi?map?bbox=7.1,51.2,7.2,51.3

http://www.overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.2,51.3]

El orden de los cuatro números es izquierda, abajo, derecha, arriba:

http://www.overpass-api.de/api/xapi?map?bbox=izquierda,abajo,derecha,arriba

  • izquierda es la longitud del lado izquierdo (más occidental) del recuadro delimitador, o lonmín.
  • abajo es la latitud del lado inferior (más al sur) del recuadro delimitador, o latmín.
  • derecha es la longitud del lado derecho (más oriental) del recuadro delimitador, o lonmax.
  • arriba es la latitud del lado superior (más al norte) del cuadro redelimitador, o latmax.

Ejemplo para el punto final /api/map endpoint - este punto final se usa también en la página web principal de OpenStreetMap bajo la opción «Exportar».

http://overpass-api.de/api/map?bbox=7.04717,50.95702,7.05125,50.95856

Etiquetas y recuadros delimitador

Para nodos, vías y relaciones es posible combinar arbitrariamente muchos criterios de búsqueda de etiquetas con exactamente un valor o ningún valor:

http://www.overpass-api.de/api/xapi?node[name=Wuppertal-Barmen]

http://www.overpass-api.de/api/xapi?node[name=Wuppertal-Barmen][railway=halt]

http://www.overpass-api.de/api/xapi?node[name=Wuppertal-Barmen][railway=*]

O se puede tomar como máximo un solo criterio de búsqueda conectado por «o»: you can take at most one search criteria connecting by or: Lo siguiente encuentra cualquier nodo que tenga el nombre de Wuppertal-Barmen o Wuppertal-Oberbarmen.

http://www.overpass-api.de/api/xapi?node[name=Wuppertal-Barmen|Wuppertal-Oberbarmen]

De la misma forma, se puede combinar cualquiera de las posibilidades anteriores con, a lo sumo, un recuadro delimitador:

http://www.overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.2,51.3]

http://www.overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.2,51.3][highway=bus_stop]

http://www.overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.2,51.3][name=Wuppertal-Barmen][railway=halt]

http://www.overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.2,51.3][highway=bus_stop|traffic_signals]

http://www.overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.2,51.3][highway=*]

Vías y relaciones se comportan de forma similar: Una vía o relación pertenece a un recuadro delimitador si tiene como miembro un nodo dentro del recuadro delimitador. O para las relaciones, si una vía miembro tiene a su vez un nodo en el recuadro delimitador como miembro.

http://www.overpass-api.de/api/xapi?way[name=Fischertal]

http://www.overpass-api.de/api/xapi?way[name=Südstraße|Fischertal]

http://www.overpass-api.de/api/xapi?way[name=Fischertal][bridge=yes]

http://www.overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.2,51.3]

http://www.overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.2,51.3][name=Südstraße]

http://www.overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.2,51.3][name=Südstraße][bridge=yes]

http://www.overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.2,51.3][name=Südstraße|Weststraße]

http://www.overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.2,51.3][maxspeed=*]

La misma historia para relaciones:

http://www.overpass-api.de/api/xapi?relation[ref=603]

http://www.overpass-api.de/api/xapi?relation[ref=603|613]

http://www.overpass-api.de/api/xapi?relation[network=VRR][ref=603]

http://www.overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.2,51.3]

http://www.overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.2,51.3][ref=603]

http://www.overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.2,51.3][network=VRR][ref=603]

http://www.overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.2,51.3][ref=603|613]

http://www.overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.2,51.3][ref=*]

O también cualquier clase de elemento:

http://www.overpass-api.de/api/xapi?*[ref=603]

http://www.overpass-api.de/api/xapi?*[ref=603|613]

http://www.overpass-api.de/api/xapi?*[network=VRR][ref=603]

http://www.overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.2,51.3]

http://www.overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.2,51.3][name=Weststraße]

http://www.overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.2,51.3][network=VRR][ref=603]

http://www.overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.2,51.3][ref=603|613]

http://www.overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.2,51.3][ref=*]

Metadatos

Puedes añadir la directiva [@meta] o el punto final xapi_meta a cualquier consulta para obtener también metadatos en los resultados. Esto lleva más tiempo, pero te permitirá abrir los resultados en JOSM.

http://overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?node[bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?way[bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?relation[bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?*[bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?node[highway=bus_stop][bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?node[highway=bus_stop][bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?way[highway=motorway][bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?way[highway=motorway][bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?relation[route=bus][bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?relation[route=bus][bbox=7.1,51.2,7.25,51.3]

http://overpass-api.de/api/xapi?*[highway=*][bbox=7.1,51.2,7.25,51.3][@meta]
http://overpass-api.de/api/xapi_meta?*[highway=*][bbox=7.1,51.2,7.25,51.3]

Puedes usar [@newer=2011-07-01T00:00:00Z] para restringir los resultados a elementos más recientes que la fecha dada.

http://overpass-api.de/api/xapi?node[bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?way[bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?relation[bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?node[highway=bus_stop][bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?way[highway=motorway][bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?relation[route=bus][bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

http://overpass-api.de/api/xapi?*[highway=*][bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z]

Y, por supuesto, también puedes combinar ambos.

http://overpass-api.de/api/xapi?*[highway=*][bbox=7.1,51.2,7.25,51.3][@newer=2011-07-01T00:00:00Z][@meta]

Puedes restringir el resultado a los elementos tocados en último lugar por un usuario específico. En el ejemplo, el usuario Roland Olbricht.

http://overpass-api.de/api/xapi?*[highway=bus_stop][bbox=7.1,51.2,7.25,51.3][@user=Roland Olbricht][@meta]

http://overpass-api.de/api/xapi?*[name=Karlsplatz][highway=bus_stop][@user=Roland Olbricht][@meta]

http://overpass-api.de/api/xapi?*[highway=bus_stop][bbox=7.1,51.2,7.25,51.3][@user=Roland Olbricht][@meta]

O usar en lugar del nombre de usuario el identificador del usuario. En el ejemplo, el identificador del usuario Roland Olbricht, 65282.

http://overpass-api.de/api/xapi?*[highway=bus_stop][bbox=7.1,51.2,7.25,51.3][@uid=65282][@meta]

http://overpass-api.de/api/xapi?*[name=Karlsplatz][highway=bus_stop][@uid=65282][@meta]

http://overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.25,51.3][highway=bus_stop][@uid=65282][@meta]

Migración de la capa de compatibilidad XAPI a Overpass XML/QL

Antes de la introducción de la API de Overpass, XAPI era el único lenguaje de consulta disponible para obtener datos en vivo de OSM. Sin embargo, como la expresividad de su lenguaje es algo limitada, solo se admiten casos de uso sencillo. Con el tiempo, su importancia ha disminuido considerablemente. Se insta a los nuevos usuarios a que empiecen a buscar el asistente de Overpass turbo en su lugar, que viene con una estupenda interfaz gráfica.

Los usuarios actuales de la capa de compatibilidad XAPI de la API Overpass pueden usar el siguiente truco para migrar su consulta basada en XAPI a Overpass XML:

Consulta existente:

http://overpass-api.de/api/xapi?*[bbox=7.1,51.2,7.25,51.3][highway=bus_stop][@uid=65282][@meta]

¿Preparar la cadena de consulta por depuración? (justo después de xapi?):

http://overpass-api.de/api/xapi?debug?*[bbox=7.1,51.2,7.25,51.3][highway=bus_stop][@uid=65282][@meta]

La página resultante incluirá una representación XML de la consulta ejecutada por la API de Overpass:

<query type="node">
  <bbox-query s="51.2" n="51.3" w="7.1" e="7.25"/>
  <has-kv k="highway" v="bus_stop"/>
  <user uid="65282"/>
</query>
<union>
  <item/>
  <query type="way">
    <bbox-query s="51.2" n="51.3" w="7.1" e="7.25"/>
    <has-kv k="highway" v="bus_stop"/>
    <user uid="65282"/>
  </query>
  <recurse type="way-node"/>
</union>
<print mode="meta"/>
<query type="relation">
  <bbox-query s="51.2" n="51.3" w="7.1" e="7.25"/>
  <has-kv k="highway" v="bus_stop"/>
  <user uid="65282"/>
</query>
<print mode="meta"/>