OpenStreetMap

Colorindo rodovias

Posted by naoliv on 15 June 2015 in Brazilian Portuguese (Português do Brasil)

Mais uma da série "Formas diferentes de visualizar o mapa"

Não sei se todos conhecem, mas existe um tipo de relação específica para rotas de rodovias/estradas.

Todas as relações, de modo geral, servem para agrupar objetos com uma mesma característica ou para compartilhar elementos (evitando assim objetos desnecessários ou duplicados no mapa).

No caso das relações de rota, é algo muito útil para associar as várias partes de uma mesma rodovia, para representar diferentes trechos compartilhados¹, rotas turísticas (a Estrada Real é um bom exemplo que poderia ser mapeado no OSM), verificar continuidade, entre outras coisas.


¹ O que seria um "trecho compartilhado"?

Peguemos um trecho qualquer da SP-330, a Rodovia Anhanguera:
http://www.openstreetmap.org/way/241173757

Este mesmo trecho faz parte de "duas" rodovias (ou de outra forma, possui duas denominações):

Este pedaço poderia fazer parte de tantas outras rodovias ou rotas (turísticas, de ônibus, etc) quanto for necessário, sempre utilizando relações para isso.


Mas bem, quem trabalha com relações de rota já deve ter tido dificuldade de visualizá-las no JOSM. Ou a minha ignorância é grande e não consegui achar como fazer isso no JOSM ou ele realmente não tem uma opção de destacar todos os trechos que fazem parte de uma relação (e manter o destaque, mesmo selecionando e editando outros objetos).

Só que isso é muito fácil com, é claro, mágica!

Para os exemplos vamos trabalhar com essa pequena área: Área de exemplo

Quem abre o local no JOSM não enxerga em um primeiro momento o que compõe a SP-330 ou outra rodovia qualquer: Visualização padrão

Tudo é representado da mesma forma.

No JOSM até é possível selecionar a relação, dando para ver os objetos que a compõem: Relação selecionada

Mas se selecionar ou for trabalhar com outro objeto, o destaque some.

No entanto podemos sempre destacar todos os caminhos que fazem parte da relação da SP-330, independente dela estar selecionada ou não: Destaque relação

Na cor roxa temos todos os caminhos que possuem highway e que são elementos de uma relação de rota com ref=SP-330:

relation[type=route][ref=SP-330] > way[highway] {
        color: purple;
}

Mas que uso prático alguém poderia ter com isso, além visualizar a rodovia?
É possível enxergar rapidamente alguns trechos que deveriam fazer parte da relação.
Por exemplo, faz de conta que esqueceram de adicionar um dos lados da rodovia na relação. Teríamos uma das mãos sem destaque em roxo: Faltando na relação

Essa faixa da direita precisaria ser adicionada à relação.

Ou então para achar trechos errados, que não deveriam fazer parte da relação: Trechos errados

O trecho em roxo à esquerda claramente não deveria estar incluído nessa relação, já que é outra rodovia (a Washington Luís, SP-310).

Outra coisa que podemos fazer, ainda trabalhando nas rodovias, é destacar os trechos que possuem pedágio.

Trechos que pagam pedágio são representados por toll=yes no OSM, e devem ser utilizados apenas nas partes onde só é possível trafegar com o pagamento de pedágio.
Ou seja, o trecho anterior ao pedágio onde não existe alternativa a não ser seguir em frente e pagar a tarifa, e o trecho após o pedágio, onde só é possível trafegar tendo passado necessariamente pelo pedágio (são os trechos onde não tem como escapar do pedágio, portanto). Não é para se utilizar em toda a extensão da rodovia para indicar que ela possui concessão ou pedágio em alguns trechos.

É muito importante entender isso para representar de forma correta os pedágios na rodovia. Isso influencia diretamente o cálculo de roteadores que possuem a opção "evitar pedágios".

Ainda utilizando o mesmo local, podemos ver os trechos que estão marcados com toll=yes, em verde limão:

Pedágios

way[highway][toll=yes] {
        color: lime;
}

Se for analisar este trecho é possível ver que não está correto o uso de toll=yes (praticamente a rodovia inteira está com a tag, mesmo onde é possível dirigir sem pagar pedágio).

O correto nesse caso deve ser: Pedágios corretos

Dá para ver que quem for entrar na Rodovia Washington Luís, vindo do norte, não vai pagar pedágio. Quem for ficar rodando que nem bobo no trevo também não vai pagar pedágio. Mas obrigatoriamente quem veio do sul e está chegando neste trevo, teve que pagar pedágio, assim como quem está indo na direção sul também pagará.

Misturar vários parâmetros e cores também é possível.
Por exemplo, caminhos que fazem parte da SP-330 e que possuem a tag de pedágio:

relation[type=route][ref=SP-330] > way[highway][toll=yes] {
        color: purple;
        casing-color: yellow;
        casing-width: 2;
}

Para diferenciar dos outros exemplos, este utiliza um caminho roxo com bordas em amarelo: Pedágio e SP

Já temos aqui então outro uso prático para as cores: ver classificações ou marcações erradas. Todo mundo já pode começar a arrumar as relações quebradas e todos os pedágios das rodovias ;-)

Quem for mexer nessa parte de verificação e controle de qualidade das rodovias também pode, em algum momento, querer saber os trechos que algum usuário modificou por último (talvez para verificar locais que foram incorretamente reclassificados, adicionado pedágios, etc).

Não dá para fazer diretamente com MapCSS, mas dá para acessar a função de busca do JOSM através do MapCSS, com JOSM_search().
A busca de objetos de um usuário no JOSM é feita com user:NomeDoUsuário. Por exemplo, para ver o que eu modifiquei por último, basta buscar no JOSM por user:naoliv.
Essa busca só funciona nos objetos abertos no JOSM e apenas retorna a última pessoa que modificou os dados.

Unindo então a busca do JOSM por objetos modificados com algum parâmetro de seleção do MapCSS, podemos ver todas as rodovias que alguém modificou em alguma área.

Utilizando Ribeirão Preto como exemplo: Ribeirão Preto

/* destaca tudo o que fui o último a modificar */
way[highway][eval(JOSM_search("user:naoliv"))] {
        color: fuchsia;
        z-index: 1;
}

/* escurece todo o resto */
*[eval(JOSM_search("-user:naoliv"))] {
        color: #313131;
        fill-color: #313131;
        symbol-size: 1;
        icon-opacity: 0;
        symbol-stroke-color: #313131;
        text: "";
}

Os destaques em rosa (em homenagem ao nosso amigo leitoso) são as ruas onde a última modificação é minha.

Entendendo isso dá para aplicar mais estilos para várias outras situações ou necessidades.
Pode-se dar destaque em ruas que não possuem superfície, número de faixas, velocidade máxima, nome, etc.
É o que muitos dos estilos do JOSM fazem.

Location: Rodovia Anhanguera, Cordeirópolis, Microrregião de Limeira, Mesorregião de Piracicaba, São Paulo, Região Sudeste, 13484270, Brasil

Comment from Skippern on 15 June 2015 at 23:55

Olhando esse stylesheet parecendo differente também

DNIT

Login to leave a comment