[Talk-br] Relações

Fernando Trebien fernando.trebien em gmail.com
Segunda Julho 15 21:20:32 UTC 2013


Então, Erick, pra resumir:
- nós (nodes) têm somente tags e posição
- linhas (ways) têm tags e uma lista de nós; um par da sequência forma um
segmento de reta, o par seguinte forma o segmento seguinte da linha, etc. e
a ordem dos nós dá a direção da linha
  (áreas nada mais são do que linhas fechadas, ou seja, primeiro nó =
último nó)
- relações (relations) têm tags e membros com papéis, onde cada membro pode
ser qualquer coisa (nó, linha ou relação)

E agora exemplificando.

*Rota representando o sentido bairro > centro de uma linha de ônibus*
http://www.openstreetmap.org/browse/relation/2727021

Repare nas etiquetas descrevendo a linha de ônibus e nos membros com os
seus papéis "forward", "backward" e "stop". Especificação completa desse
tipo de relação:
http://wiki.openstreetmap.org/wiki/Relation:route#Bus_routes_.28also_trolley_bus.29

*Rota representando todas as partes de uma rodovia*
http://www.openstreetmap.org/browse/relation/155359

Repare nas tags "network", "ref", "type" e "route" e também que os membros
têm papéis "forward" e "backward" tal como na rota de ônibus. Especificação
completa desse tipo de relação:
http://wiki.openstreetmap.org/wiki/Relation:route#Road_routes

*Restrição de conversão proibindo fazer o retorno*
http://www.openstreetmap.org/browse/relation/3077198

Repare nos papéis "via" - um nó - e "from" e "to" - ambos linhas.
Especificação completa:
http://wiki.openstreetmap.org/wiki/Relation:restriction

*Multipolígono representando um delta*
http://www.openstreetmap.org/browse/relation/86833

Repare nos membros com papéis "outer" - borda externa - e "inner" - borda
interna. Especificação completa:
http://wiki.openstreetmap.org/wiki/Relation:multipolygon

*Fronteira definindo uma mesorregião*
http://www.openstreetmap.org/browse/relation/2844354

Repare nas etiquetas "admin_level" e "type=boundary", também repare nos
papéis "outer" e "inner" que funcionam exatamente da mesma forma que nos
multipolígonos. Especificação completa:
http://wiki.openstreetmap.org/wiki/Relation:boundary

*Fronteiras definindo um bairro e uma cidade*
http://www.openstreetmap.org/browse/relation/2727083
http://www.openstreetmap.org/browse/relation/242397

Repare o valor em "admin_level" em cada uma e os membros "label" e
"admin_centre" (que aparecem com uma função similar.

*Um rio que serve como fronteira em várias relações de fronteira*
http://www.openstreetmap.org/browse/way/227577336

Repare lá no final a seção "Parte de". Esse rio é membro das relações que
representam as fronteiras de dois países (Brasil e Uruguai), de um estado
brasileiro (Rio Grande do Sul), uma cidade brasileira (Jaguarão) e uma
região uruguaia (Cerro Largo), além de uma microrregião brasileira e da
relação que representa a região Sul do Brasil.

(OBS: a tag "name" desse rio está "errada". Combinei com um uruguaio que
usaríamos a convenção européia de colocar ambos os nomes, em português e
espanhol, separados por " / ", em ordem alfabética, mas ainda não tive
tempo de atualizar toda a fronteira.)

Pra mais detalhes, eis a lista das principais relações usadas no
OpenStreetMap: http://wiki.openstreetmap.org/wiki/Types_of_relation

A relação associatedStreet é pouco usada no Brasil, mas muito usada na
Europa. A relação public_transport é nova e provavelmente será mais usada
no futuro (faz mais diferença em lugares em que as paradas são complexas e
atendem a vários modos de transporte simultaneamente). A relação
route_master é usada para agrupar rotas (como os dois sentidos e as
variações de uma mesma linha de ônibus), mas não sei de nenhum sistema que
faça uso dela. Nunca vi usarem enforcement, bridge e tunnel.

A relação site é meio polêmica (frequentemente usada sem necessidade) mas é
muito usada. Tem gente que mapeia, por exemplo, a área de uma universidade,
os prédios, daí agrupa tudo numa relação "site". Muitos defendem que isso
não é necessário e que uma aplicação deveria ser capaz de determinar que o
prédio pertence à universidade usando um algoritmo geométrico simples.
Outros (que defendem sistemas mais fáceis de programar) preferem que a
informação de continência seja expressa por relações porque daí não envolve
nenhum algoritmo geométrico complicado (mas também há espaço para erros bem
grosseiros). É praticamente uma extensão da discussão sobre o uso das tags
"is_in" (que é contra-indicado).

2013/7/15 Fernando Trebien <fernando.trebien em gmail.com>:
> Outro exemplo importante: as relações "boundary" agrupam os pedaços de
> fronteira que delimitam um bairro, uma cidade, um estado, um país, um
> continente, e adicionam informação como o nó "admin_centre" que
representa o
> "centro" da cidade (geralmente o marco zero, e também o lugar onde se
> desenha o nome da cidade).
>
> On Jul 15, 2013 1:14 PM, "Fernando Trebien" <fernando.trebien em gmail.com>
> wrote:
>>
>> Uma relação, como qualquer outro elemento, tem tags. A diferença é que
uma
>> relação, além das tags, possui membros. Os membros podem ser de qualquer
>> tipo, inclusive podem ser outras relações. Cada membro tem um papel
("role")
>> que especifica a sua função na relação.
>>
>> Por exemplo, relações de rotas de ônibus têm membros com os papéis
>> "forward" e "backward" indicando a direção da rota em uma via. Além
disso, a
>> relação tem tags especificando o nome e o número da rota. Relações de
>> restrição de conversão têm 3 membros: "from" e "to" (especificando de
onde
>> para onde que vale a restrição) e "via" especificando o nó que junta os
dois
>> segmentos, exatamente onde vale a restrição. Essas não têm tags
obrigatórias
>> (exceto "type=restriction") mas pode ter tags como "fixme" e "note".
>>
>> On Jul 15, 2013 1:07 PM, "Fernando Trebien" <fernando.trebien em gmail.com>
>> wrote:
>>>
>>> São importantíssimas. As relações agrupam coisas (como todos os pedaços
>>> de uma rodovia e duas vias e um nó numa restrição de conversão). Sem
elas,
>>> não seria possível obter o traçado completo de uma rodovia, nem várias
rotas
>>> (por exemplo, de ônibus) que compartilham parte de um trajeto, nem
>>> especificar que é proibido fazer o retorno ou dobrar à direita. Nem
desenhar
>>> polígonos com buracos. Enfim, há muitos usos.
>>>
>>> On Jul 15, 2013 12:18 PM, "Erick de Oliveira Leal"
>>> <erickdeoliveiraleal em gmail.com> wrote:
>>>>
>>>> Alguém pode me explicar o que são relações, pq vi que tem algumas
>>>> rodovias que usam isso, e qual a importância delas?
>>>>
>>>> _______________________________________________
>>>> Talk-br mailing list
>>>> Talk-br em openstreetmap.org
>>>> http://lists.openstreetmap.org/listinfo/talk-br
>>>>
>



-- 
Fernando Trebien
+55 (51) 9962-5409

"The speed of computer chips doubles every 18 months." (Moore's law)
"The speed of software halves every 18 months." (Gates' law)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.openstreetmap.org/pipermail/talk-br/attachments/20130715/f191eb27/attachment.html>


Mais detalhes sobre a lista de discussão Talk-br