Ich hätte die Anforderung, zusätzlich zu den “normalen” Tabellen eine Lookup-Tabelle (1:n) zu erstellen. In dieser sollten alle osm_id aller highway=* in einer Spalte und in der 2ten Spalte alle osm_id alle Nodes des highway stehen.
Hintergrund: In OSRM bekomme ich die Node-IDs zurück und würde gerne die osm_id des highway abfragen, zu der dieser Node gehört. Mit so einer LookUp-Tabelle wären die Abfragen rasend schnell im Gegensatz zu spatialen Abfragen (welche dann u.U. auch das falsche Ergebnis liefern).
Ist das irgendwie machbar? Oder gibts ne andere (fertige) Möglichkeit, so eine Tabelle aus einem .pbf zu erstellen?
Du musst eigentlich gar nichts machen, wenn du im slim - Mode importiert hast, hat planet_osm_ways das schon.
Siehe
gis=> \d planet_osm_ways
Table "public.planet_osm_ways"
Column | Type | Modifiers
--------+----------+-----------
id | bigint | not null
nodes | bigint[] | not null
tags | text[] |
Ah deine Tabelle hat mich verwirrt, du willst node id → way id
Das ist tatsächlich komplizierter. speziell muss du auf irgendeiner Art so eine Tabelle uptodate halten, was etwas fitzelig ist. Alternativ mit spatialer Abfrage die in Frage kommenden Wege bestimmen und dann die entsprechenden Ways aus obiger Tabelle auf den Node überprüfen, dass sollte halbwegs erträglich schnell gehen.