Pt:Overpass turbo/Wizard
Servers status · Versions · Development · Technical design · Installation · XAPI compatibility layer · Public transport sketch lines · Applications · Source code and issuesOverpass turbo · Wizard · Overpass turbo shortcuts · MapCSS stylesheets · Export to GeoJSON · mais (português) · Development · Source code and issues · Web siteOverpass Ultra · Examples · Overpass Ultra extensions · MapLibre stylesheets · URL Params · mais (português) · Source code and issues · Web site
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]+"
; ouname~/street$/i
(onde o modificadori
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.
|
key:valuefragment | Busca objetos com uma tag com key key e cujo valor contém o string valuefragment.
|
key~regex key~=regex |
Busca objetos com uma tag com key key e cujo valor corresponde à expressão regular regex.
ou |
~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.
|
key=* key==* |
Corresponde a objetos com uma tag com key key.
|
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.
|
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.
|
key!=* key!==* |
Busca objetos que NÃO possuem uma tag com a key key.
|
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.: |
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 |
in place | Corresponde a objetos que estão dentro de uma área com o nome place :
|
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):
|
global | Corresponde a objetos globalmente, sem qualquer restrição por localização :
|
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):
|
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):
|
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