Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Caricamento dei dati sul server

Uno dei processi fondamentali per un tile server con OpenStreetMap è l'infasamento (o caricamento) dei dati geografici: ecco come fare.
Uno dei processi fondamentali per un tile server con OpenStreetMap è l'infasamento (o caricamento) dei dati geografici: ecco come fare.
Link copiato negli appunti

I dati di OpenStreetMap sono disponibili in formato PBF su planet.openstreetmap.org. Possiamo tenere aggiornato il nostro repository

Download dei dati OpenStreetMap più recenti

Se pensiamo di voler utilizzare il file con i dati relativi all'intero pianeta Terra, potremmo scaricarli in questo modo:

mkdir /usr/local/share/maps/planet
cd /usr/local/share/maps/planet
wget http://planet.openstreetmap.org/pbf/planet-latest.osm.pbf

Vista l'entità del download (18 GB circa), è consigliabile però iniziare con piccole prove su aree più ristrette: degli estratti di dati OpenStreetmap sono disponibili in download.geofabrik.de.

Infasamento dei dati

La procedura di caricamento dei dati sul database (o infasamento) è particolarmente intensa dal punto di vista dell'I/O, e potrebbe richiedere diverse ore, se non giorni, a seconda delle prestazioni del server e della dimensione del file scelto.

La scelta più consigliabile è quella di effettuare diverse prove modificando, nel comando seguente, il numero di chunk (-C) e di processi (--number-processes: in genere un buon numero è dato dal numero di core del processore, meno 1):

osm2pgsql --slim -d gis -C 16000 --number-processes 3 ~/planet/planet-latest.osm.pbf

Il processo di infasamento è diviso in due parti. Nella prima parte si può avere un output simile a questo:

Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
NOTICE: table "planet_osm_point" does not exist, skipping
NOTICE: table "planet_osm_point_tmp" does not exist, skipping
Setting up table: planet_osm_line
NOTICE: table "planet_osm_line" does not exist, skipping
NOTICE: table "planet_osm_line_tmp" does not exist, skipping
Setting up table: planet_osm_polygon
NOTICE: table "planet_osm_polygon" does not exist, skipping
NOTICE: table "planet_osm_polygon_tmp" does not exist, skipping
Setting up table: planet_osm_roads
NOTICE: table "planet_osm_roads" does not exist, skipping
NOTICE: table "planet_osm_roads_tmp" does not exist, skipping
Mid: pgsql, scale=100, cache=4096MB, maxblocks=524289*8192
Setting up table: planet_osm_nodes
NOTICE: table "planet_osm_nodes" does not exist, skipping
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "planet_osm_nodes_pkey" for table "planet_osm_nodes"
Setting up table: planet_osm_ways
NOTICE: table "planet_osm_ways" does not exist, skipping
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "planet_osm_ways_pkey" for table "planet_osm_ways"
Setting up table: planet_osm_rels
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "planet_osm_rels_pkey" for table "planet_osm_rels"
Reading in file: /home/user/planet/planet-latest.osm.bz2
Processing: Node(10140k 200.1k/s) Way(0k 0.00k/s) Relation(0k 0.00/s)

Il processo a questo stadio non dovrebbe essere interrotto: non è infatti possibile riprenderlo, se non ricominciando dall'inizio.

Eventuali eccezioni come quelle mostrate di seguito non incidono sul processo.

Processing: Node(593072k) Way(45376k) Relation(87k)
Exception caught processing way id=110802
Exception caught processing way id=110803
Processing: Node(593072k) Way(45376k) Relation(474k)

La seconda e ultima parte ha tempi di esecuzione paragonabili alla prima:

Node stats: total(593072533), max(696096737)
Way stats: total(45376969), max(55410575)
Relation stats: total(484528), max(555276)
Going over pending ways
processing way (752k)
Going over pending relations
node cache: stored: 515463899(86.91%), storage efficiency: 96.01%, hit rate: 85.97%
Committing transaction for planet_osm_roads
Committing transaction for planet_osm_line
Committing transaction for planet_osm_polygon
Sorting data and creating indexes for planet_osm_line
Sorting data and creating indexes for planet_osm_roads
Sorting data and creating indexes for planet_osm_polygon
Committing transaction for planet_osm_point
Sorting data and creating indexes for planet_osm_point
Stopping table: planet_osm_nodes
Stopping table: planet_osm_ways
Stopping table: planet_osm_rels
Building index on table: planet_osm_rels
Stopped table: planet_osm_nodes
Building index on table: planet_osm_ways
Stopped table: planet_osm_rels
Completed planet_osm_point
Completed planet_osm_roads
Completed planet_osm_polygon
Completed planet_osm_line
Stopped table: planet_osm_ways
Osm2pgsql took 86400s overall

Ti consigliamo anche