Resposta rápida é "quase nunca".
Sempre vejo as pessoas mapeando uma ponte/viaduto em uma rodovia e colocando o trecho que passa debaixo desse viaduto como "túnel", de forma errada.
Exemplos (pontes com uma borda azul e túneis com uma borda alaranjada):
Nesses casos não é para utilizar um túnel passando debaixo da ponte/viaduto.
Ou se utiliza um túnel ou uma ponte, mas não os dois (e nesses exemplo o correto é, se não na maioria das vezes, sempre utilizar uma ponte)
Como já tenho um banco SpatiaLite com SP + MG eu pensei numa forma de detectar isso:
SELECT
'w' || a.osm_id || ' w' || b.osm_id AS 'ways',
Intersection(a.GEOMETRY, b.GEOMETRY) AS 'geometria'
FROM
lines AS a,
lines AS b
WHERE
a.ROWID IN (SELECT ROWID FROM SpatialIndex WHERE f_table_name = 'lines' AND search_frame = b.Geometry) AND
a.highway IS NOT NULL AND
b.highway IS NOT NULL AND
a.other_tags LIKE '%"bridge"=>%' AND
b.other_tags LIKE '%"tunnel"=>%' AND
Crosses(a.GEOMETRY, b.GEOMETRY)
E dá certo! (alguns dos exemplos são as imagens do começo).
Ele retorna uma coluna contendo o id
dos dois caminhos que se interceptam (uma ponte e um túnel) e uma geometria da interseção (caso queira adicionar um nó de fixme
para verificar)
Mais uma Gambiarra que funciona™ para a minha lista de coisas verificadas.
Então ao ver um caminho passando debaixo de uma ponte, não é para transformá-lo em túnel. Essas passagens debaixo de uma ponte não são túneis (em geral).
0sem comentários ainda