Wie wird in osm2pgsql die Tabelle planet_osm_roads gefüllt?

11

Ich verwende osm2pgsql, um eine nordamerikanische OSM-Datenbank von planet.osm zu füllen.

Mir gefällt, wie einfach das resultierende PostGIS-Schema ist, aber der Inhalt verwirrt mich ein wenig.

Ich habe die beiden Tische planet_osm_roadsund planet_osm_line. Ich nahm an, dass planet_osm_roads alle Autobahndaten enthielt, entdeckte dann aber, dass es nur einen Bruchteil der Straßen in einigen der 'Autobahn'-Typen enthält.

Zum Beispiel hat planet_osm_line über 12.000.000 Leitungen mit einem "Autobahn" -Wert von "Wohnen". Planet_osm_roads hat jedoch nur 2.000. Im Vergleich dazu weisen beide Tabellen die gleiche Anzahl von Autobahnmerkmalen auf. Wenn ich mir die Daten ansehe, kann ich nicht sagen, warum einige Funktionen in der einen Tabelle enthalten sind, aber nicht in der anderen.

Ich würde wirklich gerne die Regeln sehen, die osm2pgsql verwendet, um Linien-Features in jede Tabelle zu leiten.

Ich habe versucht, den Quellcode von osm2pgsql zu durchsuchen, um das Rätsel zu lösen, aber bisher habe ich nicht gefunden, wonach ich suche.

Anregungen sehr willkommen.

Tomfumb
quelle

Antworten:

9
  • planet_osm_line: enthält alle importierten Wege
  • planet_osm_point: enthält alle importierten Knoten mit Tags
  • planet_osm_polygon: enthält alle importierten Polygone. Die Beziehungen scheinen dafür gelöst zu sein.
  • planet_osm_roads: enthält eine Teilmenge von, planet_osm_linedie zum Rendern bei niedrigen Zoomstufen geeignet ist. planet_osm_lineenthält zu viele Elemente, um auf Übersichtskarten gerendert zu werden.

benutze osm_line

Ein gutes Beispiel finden Sie unter http://www.opencyclemap.org/?zoom=5&lat=39.98469&lon=-99.18887&layers=B00, in dem die farblich koordinierten Routen / Wege angezeigt werden.

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

Mapperz
quelle
4

planet_osm_roads Enthält nur Möglichkeiten, die zum Rendern niedriger Zoomstufen verwendet werden, z. B. Autobahnen, Flüsse usw. Es enthält keine Details wie Wohnstraßen, Bäche und verschiedene andere Funktionen, die normalerweise nur bei hohem Zoom gerendert werden.

Die Standarddefinitionen für die C-Tag-Transformation, die der Straßentabelle hinzugefügt werden sollen, lauten tagtransform.cpp

Wenn Sie dies anpassen möchten, schreiben Sie wahrscheinlich am besten eine Lua-Tag-Transformation . Als Beispiel sehen Sie style.lua , die Beispiel-Lua-Tag-Transformation.

Paul Norman
quelle