In osm2pgsql come viene popolata la tabella planet_osm_roads?


11

Sto usando osm2pgsql per popolare un database OSM del Nord America da planet.osm.

Mi piace quanto sia semplice lo schema PostGIS risultante, ma sono un po 'confuso dal suo contenuto.

Ho i due tavoli planet_osm_roadse planet_osm_line. Supponevo che planet_osm_roads contenesse tutti i dati dell'autostrada, ma poi ho scoperto che contiene solo una frazione delle strade in alcuni tipi di "autostrada".

Ad esempio, planet_osm_line ha oltre 12.000.000 di linee con un valore "autostrada" di "residenziale". Tuttavia, planet_osm_roads ha solo 2.000. In confronto, entrambe le tabelle hanno lo stesso numero di funzionalità "autostrada". Guardando i dati non posso dire perché alcune funzionalità si troverebbero in una tabella ma non nell'altra.

Mi piacerebbe davvero vedere le regole utilizzate da osm2pgsql per indirizzare le funzioni di linea in ogni tabella.

Ho provato a cercare nel codice sorgente osm2pgsql per fare luce sul mistero, ma finora non ho trovato quello che cercavo.

Qualche suggerimento molto gradito.

Risposte:


9
  • planet_osm_line: contiene tutti i modi importati
  • planet_osm_point: contiene tutti i nodi importati con tag
  • planet_osm_polygon: contiene tutti i poligoni importati. Le relazioni sembrano risolte per questo.
  • planet_osm_roads: contiene un sottoinsieme di planet_osm_lineadatto per il rendering a livelli di zoom bassi. planet_osm_linecontiene troppi elementi per il rendering su mappe panoramiche.

usa osm_line

Per un buon esempio visita: http://www.opencyclemap.org/?zoom=5&lat=39.98469&lon=-99.18887&layers=B00 che mostra i percorsi / i modi in cui il colore è coordinato.

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


4

planet_osm_roads contiene solo modi che vengono utilizzati per il rendering di livelli di zoom bassi, come autostrade, fiumi, ecc. Non contiene dettagli come strade residenziali, ruscelli e varie altre funzioni normalmente visualizzate solo con zoom elevato.

Il tag C predefinito trasforma le definizioni di cosa aggiungere alla tabella delle strade sono tagtransform.cpp

Se vuoi personalizzarlo, probabilmente è meglio scrivere una trasformazione di tag lua . Ad esempio, puoi vedere style.lua , il tag lua di esempio trasformato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.