“¡Oh! ¡Veo ese edificio!” exclama Bob. “Así que el cajero automático está justo al otro lado, ¿no?”.
Mientras Bob caminaba hacia el edificio, se dio cuenta de una cosa importante: ¡no sabía dónde está la entrada! Parece que tenemos que escribirle otra consulta.
Con la consulta actual, hemos encontrado el edificio, pero tenemos que localizar un punto concreto: la entrada.
Un edificio, dado que generalmente es un polígono visto desde el mapa, se define como una “entrada”. Sin embargo, una entrada suele ser sólo un punto en el mapa, un punto con una ubicación específica. Entonces, ¿cómo cree que se representan en Overpass? Si has adivinado por node
, ¡entonces has acertado!
¿Recuerdas cuando te dije que las “vías” se definen como una lista ordenada de nodos? Algunos de estos nodos se pueden etiquetar aún más, tomando diferentes valores como entradas. En la siguiente consulta aprenderemos a buscar un nodo específico (una entrada) que forme parte de una vía
.
nodo
específico que forme parte de una way
. El filtro recurse
hace justamente eso - te permite encontrar el node
de una way
.recurse
, necesitas empezar con tu elemento objetivo, y una clave para el elemento fuente dentro de paréntesis. En nuestro ejemplo, nuestro elemento de destino es un node
, mientras que nuestro elemento de origen es un way
, por lo que necesitamos utilizar la sintaxis nodo(w);
.way
ya está disponible cuando realicemos la consulta de sus nodos. Así que tenemos que colocar la sentencia node(w)
después de que la vía está establecido, pero antes de la sentencia out;
.way
s son sólo un montón de node
s, y con el filtro recurse
, mostramos estos nodos en lugar de la forma real.recurse
recursó a través del way
y devolvió los nodos
que lo componen, aún necesitamos filtrar más los nodos
para mostrar sólo las entradas. Por suerte, podemos utilizar el filtro [entrance=yes]
para ello.node(w)
), una sentencia out
simple funcionará bien - ¡asegúrate de eliminar el modificador geom
!