Combinar linhas para compor rua

Quando fazer e quando não fazer?

Sempre que não houver diferença justificada de tags entre os segmentos (por exemplo, se um segmento for oneway=yes e o outro oneway=no, obviamente não pode juntar) e não houver relação entre um dos segmentos e outro segmento (por exemplo, restrições de conversão).

Por diferença justificada, entenda que é possível que um mapeador tenha mapeado as características de uma rua (digamos, surface=asphalt) em um segmento, deixando o outro em branco, por simples omissão (não percebeu que havia mais de um segmento). Dessa forma, há que se verificar (a campo, se necessário) se os trechos de fato diferem.

Isto posto, muitas vezes linhas compridas são segmentadas afim de garantir um número máximo de pontos e/ou tamanho. Por exemplo, um trecho longo da BR-116 pode ser quebrado em diferentes segmentos (e ter mais de dois pontos ainda que seja uma linha reta), por diversas questões (performance, aparecer num determinado bounding box em caso de download, etc).

[]s
Arlindo

Excelente explicação.

Dentro de uma cidade, uma mesma rua pode ter segmentos com diferentes valores para highway, OK? E se esses segmentos são unidos (mas não combinados), o roteamento ainda poderá OK, não é? Mas e quando os segmentos estão separados, por exemplo por um canteiro ou uma geometria confusa?

Sim, muito boa!

Obrigado.

e os relacionamentos são usados para agrupar estas seções https://www.openstreetmap.org/relation/62899

muralito, trocando em miúdos (mas não tão miúdos), o que significa (o porquê ou o “para que”) e como faz uma relação dessas (etapas descritas por cima, não um passo-a-passo)?

Magno,
Esta relação que o muralito citou é somente para autoestradas (type=route & route=road).

É usada porque autoestradas tendem a ser bem extensas, e talvez seja útil agrupar ou até mesmo visualizar a estrada inteira.

Falando nisso, pessoal quem for separar uma autoestrada em diferentes partes, por favor adicione essas partes na relação da autoestrada, se ela existir.

É bastante comum que uma mesma rua tenha diferentes valores da tag highway. Um trecho pode ser mais utilizado que outro. Por exemplo:

http://www.openstreetmap.org/#map=18/-22.82718/-43.31041

Note as ruas Comandante Coelho e Barão de Melgaço. Na parte principal, são de mão única, utilizadas por ônibus e cortam o bairro. Os trechos menores são bem mais residenciais, tem quebra-molas, limite de velocidade inferior, um deles é sem saída etc. Um trecho é highway=tertiary e o outro highway=residential.

Da forma que o Nominatim (busca do OSM) funciona, se você procurar por uma das ruas, ele informará os dois trechos, mas somente se os valores de highway forem diferentes (infelizmente). Por exemplo, experimente procurar por “Rua Comandante Coelho” e depois por “Rua Capitão Cruz” - a última busca retornará somente o segmento menor (e eu não sei porque, se é aleatório ou pelo ID, o ID do segmento menor é maior (mais novo) do que o segmento maior (mais velho) - 190858955 vs. 43280929). Mas o roteamento funciona corretamente.

Este último exemplo é interessante, porque apesar de ser o mesmo logradouro, não há conexão entre as duas partes - um motorista deve ir até o próximo retorno para transpor o canteiro central, então obviamente tem que ser dois segmentos independentes.

s
Arlindo

Mas isso certamente deve ser um bug a ser corrigido, não é?

Qual último exemplo?

Parece que sim.

O da Rua Capitão Cruz.

s

Um motorista menos familiarizado com o navegador GPS facilmente pode pensar: “Mas eu já estou na Rua Capitão Cruz, e o fim da rua é ali. Cadê a casa?”

Entendi o problema?

Update:

Ei… segundo o Google, a Rua Capitão Cruz não é interrompida! Mas o que tem é como um retorno duplo, não perfeitamente alinhado com a rua. Por um lado, não é o canteiro. A propósito, como mapear isso?