Dans osm2pgsql, comment la table planet_osm_roads est-elle remplie?

11

J'utilise osm2pgsql pour remplir une base de données OSM d'Amérique du Nord à partir de planet.osm.

J'aime la simplicité du schéma PostGIS résultant, mais je suis un peu confus par son contenu.

J'ai les deux tables planet_osm_roadset planet_osm_line. J'ai supposé que planet_osm_roads contenait toutes les données d'autoroute, mais j'ai découvert qu'il ne contenait qu'une fraction des routes dans certains des types d '«autoroutes».

Par exemple, planet_osm_line a plus de 12 000 000 lignes avec une valeur «autoroute» de «résidentiel». Cependant, planet_osm_roads n'en a que 2 000. En comparaison, les deux tableaux ont le même nombre de caractéristiques «autoroutières». En regardant les données, je ne peux pas dire pourquoi certaines fonctionnalités seraient dans une table mais pas dans l'autre.

J'aimerais vraiment voir les règles que l'osm2pgsql utilise pour diriger les entités linéaires dans chaque table.

J'ai essayé de parcourir le code source osm2pgsql pour faire la lumière sur le mystère, mais jusqu'à présent, je n'ai pas trouvé ce que je cherchais.

Toutes suggestions très bienvenues.

tomfumb
la source

Réponses:

9
  • planet_osm_line: contient toutes les manières importées
  • planet_osm_point: contient tous les nœuds importés avec des balises
  • planet_osm_polygon: contient tous les polygones importés. Les relations semblent être résolues pour cela.
  • planet_osm_roads: contient un sous-ensemble planet_osm_lineapproprié pour le rendu à de faibles niveaux de zoom. planet_osm_linecontient trop d'éléments à afficher sur les cartes de synthèse.

utilisez osm_line

Pour un bon exemple, visitez - http://www.opencyclemap.org/?zoom=5&lat=39.98469&lon=-99.18887&layers=B00 qui montre la couleur des itinéraires / voies coordonnée.

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

Mapperz
la source
4

planet_osm_roads contient uniquement des moyens utilisés pour le rendu de faibles niveaux de zoom, tels que les autoroutes, les rivières, etc.

Les définitions de transformation de balise C par défaut de ce qu'il faut ajouter à la table des routes sont tagtransform.cpp

Si vous souhaitez personnaliser cela, vous feriez probablement mieux d' écrire une transformation de balise lua . Pour un exemple, vous pouvez voir style.lua , l'exemple de transformation de balise lua.

Paul Norman
la source