Pt:Overpass turbo/Wizard

From OpenStreetMap Wiki
Jump to navigation Jump to search
1. Selecione o Wizard no menu do Overpass;
2. Escreva os termos de pesquisa;
3. Aperte o botão "run"...
4. ... e veja seus resultados

Introdução

O Query Wizard do Overpass turbo facilita consultas de objetos OSM, convertendo linguagem comum em código.
Exemplo: para procurar por "fontes de água potável", ou "hotel", tudo o que você precisa fazer é abrir o Wizard e digitar a tag (etiqueta) apropriada: amenity=drinking_water, ou tourism=hotel.

Sintaxe: A pesquisa no Wizard é semelhante à no JOSM (search/filter). Consiste em expressões de filtro individuais. Exemplo: key=value (para uma pesquisa de qualquer "tag" simples) ou type:node (para restringir o resultado a "nós").

Também podem ser combinados com operações lógicas como and ou or. Exemplos:
amenity=drinking_water and type:node ou (highway=primary or highway=secondary) and type:way

Abrangência:
Por default a abrangência da busca é na atual viewport (janela) de mapa. Mas também pode ser por filtro de localização.
Exemplo: tourism=museum in Florianópolis

Filtros Simplificados

Intelligent Wizard

Em vez de pesquisas de tags, também é possível filtrar simples e diretamente por "categorias" de objetos.
Exemplo: pode-se usar apenas os termos simples Hotel (ou hotel), "Drinking Water" (ou "drinking water"), Hospital, etc.,
ao invés de tags completas correspondentes (como tourism=hotel). Isso funciona para todos os objetos para os quais há um preset definido no editor iD.

Wildcards (Curingas)

É possível buscar valores de tags (key=value ) com wildcards (um curinga, que cobre qualquer valor).
Exemplo: Sabe-se que todas as estradas estaduais no Rio Grande do Sul começam com o valor ERS, que é seguido por um número variável (como ERS-020, ERS-118, ERS-244, etc). E sabe-se que este valor está na tag ref=*. Deste modo,

  • uma busca no Wizard por: ref~"^ERS*", retornará todas as "ERS-xxx" na área.

Filtros de Tags

Se o valor de um dos elementos de tags (key; value) contém espaços em branco ou outros caracteres especiais (Como ": & ⁄ - #", caracteres não-ascii, etc.), deve ser incluído "entre aspas":

  • Ex: name="New York" ou "addr:housenumber"=*

Expressões regulares podem ser fornecidas como strings simples ou com a (conhecida) notação regex:

  • Ex: ref~"[0-9]+" ; ou name~/street$/i (onde o modificador i faz a correspondência "case-INsensitive", i.e. tanto faz se em Maiúsculas ou minúsculas)
selector description
key=value

key==value

Busca objetos com uma tag com key key e valor value.
  • Exemplos: name=Brasília ; name="Salto de Pirapora"
key:valuefragment Busca objetos com uma tag com key key e cujo valor contém o string valuefragment.
  • Exemplos: name:toranti retorna Votorantim ; name:"alto de Pira" retorna Salto de Pirapora
key~regex

key~=regex
key like regex

Busca objetos com uma tag com key key e cujo valor corresponde à expressão regular regex.
  • Exemplos: erros de grafia como "du" ao invés de "do" em meio de nome, name~" du " ;

ou name~"Av. ", quando ao invés de "Avenida" (no OSM o correto é por extenso).

~keyregex~regex

~keyregex~=regex

Busca objetos com uma tag com uma key que corresponde à expressão regular keyregex e cujo valor corresponde à expressão regular regex.
  • Exemplo: ~high~sec retorna highway=secondary
key=*

key==*
key is not null

Corresponde a objetos com uma tag com key key.
  • Exemplo: layer=* retorna layer=2, layer=1, layer=-1, etc
NEGAÇÃO:
key!=value

key!==value

O caracter ! indica a busca por objetos que NÃO possuem uma tag com key key e o valor value.
  • Exemplo: layer!=* and bridge=yes retorna todas as pontes em que falta a tag layer (em geral, pelo menos layer=1; portanto, a corrigí-las).
key!~regex

key not like value

Busca: a) objetos que possuem uma tag com key key e cujo valor NÃO corresponde à expressão regular regex; b) objetos que NÃO possuem uma tag com key key.
  • Exemplo: highway!~sec retorna tudo que não é highway, e toda highway que não é secondary.
key!=*

key!==*
key is null

Busca objetos que NÃO possuem uma tag com a key key.
  • Exemplo: highway!=* retorna tudo que não é highway.

Filtros de Metadados

selector description
type:osm-type Busca objetos que possuem o type osm-type (node, way ou relation). Ex.: type:relation
id:osm-id Busca objetos que possuem o id (número identificador) osm-id. Ex.: id:34567423 retorna o nó "Brasília"
user:osm-user Busca objetos que foram modificados por último pelo usuário osm-user. Ex.: user:Blumpsy
uid:osm-uid Busca objetos que foram modificados por último por um usuário com o user-id osm-uid .

Ex.: uid:64226 (para o caso de exemplo user:Blumpsy)

newer:date Busca objetos que foram adicionados ou modificados em uma data mais recente que date. Ex.: newer:"4 weeks"

O parâmetro de data para o seletor newer pode ser uma string de tempo ISO 8601 (ex. "2013-11-24T19:01:00Z").
Ou uma data relativa que indica a quantidade relativa de tempo no passado:

  • newer:1day (Seleciona tudo o que foi adicionado ou modificado nas últimas 24 horas)
  • newer:"4 weeks" (Seleciona tudo o que foi adicionado ou modificado nas últimas 4 semanas)

Unidades de tempo válidas são: second(s), minute(s), hour(s), day(s), week(s), month(s) and year(s).

Filtros de Localização

Por padrão, o Wizard cria consultas que pesquisam na atual view-port do mapa.
Porém, você também pode procurar em lugares diferentes ou mesmo em todo o mundo, especificando um filtro de localização no final da pesquisa

Os nomes de lugares ( place ) mencionados abaixo são primeiramente passados através de uma pesquisa Nominatim.
Isso significa que você pode usar qualquer nome de local, como usado na caixa de pesquisa OSM, comoː nomes de cidades, POIs, endereços, etc.

  • Resultados podem cair fora da sua janela de mapa (viewport); nestes casos, use o botão zoom to data para localizá-lo.
selector description
(bbox) Por default, corresponde a objetos que estão dentro da view-port atual. (atualmente não é possível entrar bbox manual na janela do Wizard, só no painel de código).

Porém, se desejar restringir mais a área da tela, desenhe uma nova bbox com o botão do Wizard manually select bbox.
(bbox (ou Bounding_Box), é o código para os limites em coordenadas da janela desejada. Sua notação é em graus decimais. Ex. para Goiás: (-19.5900,-53.3100,-12.3400,-45.8400), na ordem (esq.,base,dir.,topo) (ouː Sul,Oeste,Norte,Leste = mín.Longitude,mín.Latitude,máx.Long.,máx.Lat.)).

in place Corresponde a objetos que estão dentro de uma área com o nome place :

tourism=museum in Florianópolis

around place Corresponde a objetos que estão na vizinhança de um objeto com o nome place (sendo que a ordem dos endereços não importa):

amenity=restaurant around "Avenida Octávio Mangabeira, 1200, Salvador" (ou "1200, Salvador, Avenida Octávio Mangabeira")

global Corresponde a objetos globalmente, sem qualquer restrição por localização :

name="Frankfurt am Main" global

Filtros Compostos (and ou or)

São os chamados Operadores Booleanosː and ou or.

operator description
X or Y

X || Y, X | Y

Busca objetos que tem ou uma tag, ou a outra tag, i.e., "qualquer uma" ou "as duas" tags (com key key e valor value):

highway=unclassified or surface=unpaved

X and Y

X && Y, X & Y

Busca objetos que tem ao mesmo tempo ambas as tags indicadas, i.e., necessariamente "todas" as tags indicadas (com key key e valor value):

amenity=drinking_water and type:node

Todos os operadores booleanos podem ser usados com parênteses (...) para composição complexa e mudar a prioridade da operação, comoː

  • (highway=primary or highway=secondary) and type:way
  • (highway=bus_stop or railway=platform) and shelter=yes

Utilizando a URL para alimentar o Wizard

Você pode criar links para overpass turbo contendo parâmetros que serão utilizados pelo Wizard para criar uma consulta no momento em que a página for carregada.
Exemplo: http://overpass-turbo.eu/?w=pub+in+dublin. A vantagem é que essas URLs são curtas e razoavelmente legíveis para o usuário.

Para automaticamente rodar a consulta (query) e exibir resultados ao abrir, adicione no final do link &R.
Exemplo: http://overpass-turbo.eu/?w=pub+in+dublin&R

Este recurso também é utilizado pelo site de busca DuckDuckGo: você apenas precisa digitar sua pesquisa na janela de busca, seguida de !otw (significaː "Overpass Turbo Wizard"), que remete à pagina do "OTW" com esta pesquisa.

Detalhes Técnicos

O Wizard define sua própria gramática (grammar) escrita em PEG.js (PEG.js) (um simples gerador de análises para JavaScript).

A consulta analisada (uma árvore de operações e filtros booleanos) é então normalizada em forma disjuntiva normal (Forma normal disjuntiva):
(A∧B∧…) ∨ (X∧Y∧…) ∨ … , o que é muito mais fácil de representar como uma consulta Overpass (ou seja, uma simples união de consultas).
Depois disso, uma consulta Overpass QL é construída de modo bastante trivial.
Para alguns filtros, são usados atalhos de consulta especiais query-shortcuts (como {{geocodeArea:*}} para uma pesquisa de … in Area).


Outros exemplos de consultas

(se você tem modelos de consultas que ainda não foram citadas nesta página, adicione daqui para baixo)

-

-


Páginas com outros exemplos:
https://wiki.openstreetmap.org/wiki/Overpass_turbo/Extended_Overpass_Turbo_Queries
https://wiki.openstreetmap.org/wiki/Overpass_turbo/Examples