Ospita tu stesso OpenStreetMap

OpenStreetMap (OSM) è una mappa mondiale gratuita creata in modo collaborativo da persone di tutto il mondo: gratuita, aperta e indipendente. Mentre Google Maps, in quanto leader di mercato, è spesso la prima scelta per le mappe digitali, OSM si basa su un principio completamente diverso: una comunità collaborativa che raccoglie, migliora e rende disponibili gratuitamente dati geografici.


Perché è importante? Perché le mappe sono conoscenza e la conoscenza dovrebbe essere gratuita. Per singole applicazioni, potrebbe essere utile ospitare autonomamente i dati OSM per sviluppare soluzioni di mappe personalizzate e mantenere il controllo sui dati e sulla loro presentazione. L'auto-hosting di OSM offre diversi vantaggi:

  • Indipendenza: Non dipendi da servizi esterni e hai il pieno controllo sui dati della carta.
  • Adattabilità: È possibile personalizzare lo stile della mappa e i dati visualizzati in base alle proprie esigenze.
  • Protezione dati: Tutti i dati sono ospitati localmente. Non vengono richiamate API esterne.

Esistono due metodi principali per visualizzare le mappe:

  • Piastrelle della griglia: File di immagini predefiniti per diversi livelli di zoom. Sono facili da implementare, ma offrono meno flessibilità nella personalizzazione dello stile della mappa.
  • Piastrelle vettoriali: Contiene dati geografici sotto forma di vettori (punti, linee, poligoni) che vengono renderizzati lato client. Ciò consente regolazioni flessibili del design della mappa e una visualizzazione nitida a tutti i livelli di zoom. Tuttavia, il rendering richiede una maggiore potenza di calcolo sul dispositivo client.

I riquadri vettoriali sono particolarmente adatti all'auto-hosting poiché offrono maggiori possibilità di personalizzazione e sono più efficienti. Per le mappe regionali con aree più piccole, spesso è sufficiente circa 1 GB di spazio sul disco rigido. Ha senso utilizzare gli SSD perché offrono vantaggi in termini di velocità durante il caricamento dei riquadri. Le tessere vettoriali statiche non richiedono un server di mappe in esecuzione (ad esempio TileServer GL o Mapnik), richiedono una manutenzione inferiore e comportano un carico di lavoro inferiore sul server: sono ideali per progetti di piccole dimensioni con sezioni di mappa fisse.

Il mio piccolo pacco AiutoOsm facilita il processo di creazione e distribuzione di tile vettoriali da .osm.pbfFile. I riquadri di delimitazione personalizzati consentono agli sviluppatori di estrarre aree geografiche specifiche e di generare file boilerplate corrispondenti che possono essere caricati direttamente su un server. Ciò semplifica notevolmente l'integrazione dei dati OSM nei progetti web. Per utilizzare osmhelper è necessaria una certa preparazione. La libreria si basa su strumenti quali osmio, mbutile e piastrellista che deve essere installato.

Installazione di osmio

L'osmio è uno strumento potente per l'elaborazione dei dati OSM.

mkdir osmium
cd osmium
wget https://github.com/osmcode/osmium-tool/archive/refs/tags/v1.16.0.tar.gz
tar -xzf v1.16.0.tar.gz
cd osmium-tool-1.16.0
apt-get install libosmium2-dev libprotozero-dev nlohmann-json3-dev libboost-program-options-dev libbz2-dev zlib1g-dev liblz4-dev libexpat1-dev cmake pandoc
mkdir build
cd build
cmake ..
make
make install
cd ..
cd ..
rm -rf ./osmium
exec env -i HOME=$HOME bash -l
osmium --version

Installazione di mbutil

mbutil è uno strumento basato su Python per lavorare con MBTiles.

git clone https://github.com/mapbox/mbutil.git
cd mbutil
python setup.py install
cd ..
rm -rf ./mbutil
exec env -i HOME=$HOME bash -l
mb-util --version

Installazione di piastrellista

tilemaker è uno strumento open source che converte i dati OSM direttamente in tile vettoriali.

apt install build-essential libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev lua5.1 liblua5.1-0-dev libshp-dev libsqlite3-dev rapidjson-dev
git clone https://github.com/systemed/tilemaker.git
cd tilemaker
make
make install
cd ..
rm -rf ./tilemaker
exec env -i HOME=$HOME bash -l
tilemaker --help

Scarica lo script di conversione

mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh

Utilizzo di osmhelper

Dopo aver installato gli strumenti necessari, osmhelper può essere utilizzato per generare tile vettoriali e prepararli per l'hosting:

./convert.sh \
    --url https://download.geofabrik.de/europe/germany-latest.osm.pbf \
    --lat-min 47.27 \
    --lon-min 8.97 \
    --lat-max 50.57 \
    --lon-max 13.84 \
    --compress

Questo processo consente di distribuire sezioni di mappe personalizzate in modo efficiente e senza la necessità di un server di mappe dinamico. Integrare i dati di OpenStreetMap nei propri progetti può essere complesso, soprattutto quando si tratta di hosting e distribuzione. Poiché Google Maps detiene il monopolio delle soluzioni di mappatura, molti sviluppatori sono alla ricerca di alternative. osmhelper semplifica l'inizio dell'hosting dei tuoi dati OpenStreetMap. In questo modo avrai il controllo completo sulle tue mappe, nessuna restrizione API e la possibilità di aggiungere i tuoi livelli di dati.

La maggior parte delle persone conosce Google Maps come la soluzione standard per le mappe digitali. Ma pochi sanno che OpenStreetMap è un'ottima alternativa, senza restrizioni commerciali o costi nascosti. Mentre Google Maps addebita tariffe per l'utilizzo dell'API e raccoglie dati degli utenti, OSM è gratuito, aperto e supportato da una comunità globale. OSM è la Wikipedia delle mappe mondiali: chiunque può contribuire, aggiungere strade, sentieri escursionistici o POI (Punti di interesse) e quindi migliorare la mappa mondiale gratuita.

Indietro