[Talk-de] Datenbankschema
Frederik Ramm
frederik at remote.org
Fr Feb 12 14:35:54 UTC 2010
Hallo,
stefan.priess at iav.de wrote:
> vielen Dank für deine Antwort. Ich dachte eigentlich das es eine
> Verknüpfung gibt ala osm_id aus planet_osm_point und id aus
> planet_osm_nodes, so dass ich über ein einfaches sql statements die
> lat und lon von allen städten anzeigen kann. das ist wohl nicht
> möglich?!? oder gibt es irgendwo eine formel wie man aus der BLOB die
> infos wieder rausziehen kann?
Bei dem, was Jochen "BLOB" nennt, handelt es sich um die ganz normalen
PostGIS-Geometrie-Objekte. In der von osm2pgsql erzeugten Datenbank sind
die Punkte und Linien schon vorverarbeitet - Punkte gefiltert, und
Linien bereits zu Geometrien aufbereitet. Man sieht also im Normalfall
nicht mehr, aus welchen Nodes ein Way bestand.
Ich weiss immer noch nicht, was Du genau suchst; Du kennst offenbar die
Tabelle planet_osm_point bereits, also wieso machst Du nicht einfach
select name,ST_astext(way) from planet_osm_point where place='city'
das ergibt
name | st_astext
----------------+------------------------------------------
Wuppertal | POINT(799641.031048544 6668598.58571099)
Remscheid | POINT(800930.489238199 6653126.0210699)
Recklinghausen | POINT(801584.290871526 6730239.35942524)
Bochum | POINT(803356.018491145 6707233.31587142)
Herne | POINT(803690.711672164 6716977.54088121)
Witten | POINT(816542.26858552 6698964.10991715)
...
Die Koordinaten sind hier in Mercator-Koordinaten angegeben, das kannst
Du entweder mit st_transform wieder nach lat/lon umrechnen, oder Du
verwendest bei osm2pgsql gleich das Flag -l, dann hast Du an der
gleichen Stelle lat/lon.
Die Tabelle planet_osm_nodes gibt es nur, wenn Du beim Importieren den
wesentlich langsameren Modus --slim gewaehlt hast; diese Tabelle
enthaelt dann die Original-OSM-Nodes mit Tags.
Ein Datenbankschema, das noch aehnlicher dem "echten" OSM-Schema ist und
in dem sich alle Tags in eigenen Tabellen befinden, bekommst Du, wenn Du
statt mit osm2pgsql die Daten mit osmosis in eine PostGIS (oder auch
MySQL) einliest.
Bye
Frederik
Mehr Informationen über die Mailingliste Talk-de