No osm2pgsql, como é preenchida a tabela planet_osm_roads?

11

Estou usando o osm2pgsql para preencher um banco de dados OSM da América do Norte do planet.osm.

Eu gosto da simplicidade do esquema PostGIS resultante, mas estou um pouco confuso com seu conteúdo.

Eu tenho as duas mesas planet_osm_roadse planet_osm_line. Eu assumi que planet_osm_roads continha todos os dados da rodovia, mas depois descobri que ela contém apenas uma fração das rodovias em alguns dos tipos de rodovias.

Por exemplo, planet_osm_line possui mais de 12.000.000 de linhas com um valor de 'estrada' de 'residencial'. No entanto, planet_osm_roads possui apenas 2.000. Em comparação, ambas as tabelas têm o mesmo número de características de 'auto-estrada'. Observando os dados, não sei dizer por que alguns recursos estariam em uma tabela, mas não na outra.

Eu realmente gostaria de ver as regras que o osm2pgsql usa para direcionar recursos de linha para cada tabela.

Tentei examinar o código-fonte osm2pgsql para esclarecer o mistério, mas até agora não encontrei o que procurava.

Qualquer sugestão muito bem-vinda.

tomfumb
fonte

Respostas:

9
  • planet_osm_line: contém todas as formas importadas
  • planet_osm_point: contém todos os nós importados com tags
  • planet_osm_polygon: contém todos os polígonos importados. As relações parecem estar resolvidas para isso.
  • planet_osm_roads: contém um subconjunto planet_osm_lineadequado para renderização em baixos níveis de zoom. planet_osm_linecontém muitos elementos para renderizar nos mapas de visão geral.

use osm_line

Para um bom exemplo, visite - http://www.opencyclemap.org/?zoom=5&lat=39.98469&lon=-99.18887&layers=B00, que mostra as rotas / maneiras coordenadas por cores.

source http://wiki.openstreetmap.org/wiki/Osm2pgsql/schema#Tables_Created

Mapperz
fonte
4

planet_osm_roads contém apenas maneiras usadas para renderizar baixos níveis de zoom, como estradas, rios etc. Não contém detalhes como estradas residenciais, riachos e vários outros recursos normalmente renderizados apenas com zoom alto.

As definições padrão de transformação da tag C do que adicionar à tabela de estradas são tagtransform.cpp

Se você deseja personalizar isso, provavelmente é melhor escrever uma transformação de tag lua . Por exemplo, você pode ver style.lua , a transformação de tag lua de exemplo.

Paul Norman
fonte