OpenStreetMap (OSM) este o hartă gratuită a lumii creată în colaborare de oameni din întreaga lume – gratuită, deschisă și independentă. În timp ce Google Maps, ca lider de piață, este adesea prima alegere pentru hărțile digitale, OSM se bazează pe un principiu complet diferit: o comunitate colaborativă care colectează, îmbunătățește și pune la dispoziție datele geografice în mod gratuit.
De ce este acest lucru important? Pentru că hărțile sunt cunoștințe – iar cunoștințele ar trebui să fie gratuite. Pentru aplicațiile individuale, poate fi util să găzduiți singur datele OSM pentru a dezvolta soluții de hărți personalizate și pentru a păstra controlul asupra datelor și a prezentării acestora. Self-hosting OSM oferă mai multe avantaje:
- Independenţă: Nu sunteți dependent de serviciile externe și aveți control total asupra datelor cardului.
- Adaptabilitate: Puteți personaliza stilul hărții și datele afișate în funcție de propriile nevoi.
- Protejarea datelor: Toate datele sunt găzduite local. Nu sunt apelate API-uri externe.
Există două metode principale de afișare a hărților:
- Plăci de grilă: Fișiere imagine prefabricate pentru diferite niveluri de zoom. Sunt ușor de implementat, dar oferă mai puțină flexibilitate în personalizarea stilului hărții.
- Plăci vectoriale: Conține date geografice sub formă de vectori (puncte, linii, poligoane) care sunt redate pe partea clientului. Acest lucru permite ajustări flexibile ale designului hărții și o afișare clară la toate nivelurile de zoom. Cu toate acestea, redarea necesită mai multă putere de calcul pe dispozitivul client.
Plăcile Vector sunt deosebit de potrivite pentru auto-găzduire, deoarece oferă mai multe opțiuni de personalizare și sunt mai eficiente. Pentru hărțile regionale cu zone mai mici, ~1 GB de spațiu pe hard disk este adesea suficient. Este logic să folosiți SSD-uri deoarece oferă avantaje de viteză la încărcarea plăcilor. Piesele vectoriale statice nu necesită un server de hărți care rulează (de exemplu, TileServer GL sau Mapnik), au cerințe mai mici de întreținere și o încărcare mai mică a serverului - sunt ideale pentru proiecte mai mici cu secțiuni de hărți fixe.
Micul meu pachet osmhelper facilitează procesul de creare și desfășurare a plăcilor vectoriale din .osm.pbf
Fișiere. Cutiile de delimitare personalizate permit dezvoltatorilor să extragă anumite zone geografice și să genereze fișiere standard care pot fi încărcate direct pe un server. Acest lucru face integrarea datelor OSM în proiecte web mult mai ușoară. Pentru a utiliza osmhelper, este necesară o anumită pregătire. Biblioteca se bazează pe instrumente precum osmiu, mbutil și gresieră care trebuie instalat.
Instalarea osmiului
osmium este un instrument puternic pentru procesarea datelor 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
Instalarea mbutil
mbutil este un instrument bazat pe Python pentru lucrul cu 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
Instalare faianta
tilemaker este un instrument open source care convertește datele OSM direct în plăci vectoriale.
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
Descărcați scriptul de conversie
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Folosind osmhelper
După instalarea instrumentelor necesare, osmhelper poate fi folosit pentru a genera plăci vectoriale și a le pregăti pentru găzduire:
./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
Acest proces face posibilă livrarea secțiunilor de hărți personalizate în mod eficient și fără a fi nevoie de un server de hărți dinamic. Integrarea datelor OpenStreetMap în propriile proiecte poate fi complexă, mai ales când vine vorba de găzduire și implementare. Deoarece Google Maps deține monopolul soluțiilor de cartografiere, mulți dezvoltatori caută alternative. osmhelper facilitează începerea găzduirii propriilor date OpenStreetMap. Acest lucru vă oferă control deplin asupra hărților dvs., fără restricții API și posibilitatea de a adăuga propriile straturi de date.
Majoritatea oamenilor cunosc Google Maps ca fiind soluția standard pentru hărți digitale. Dar puțini oameni știu că OpenStreetMap este o alternativă excelentă – fără restricții comerciale sau costuri ascunse. În timp ce Google Maps percepe taxe de utilizare API și colectează date despre utilizatori, OSM este gratuit, deschis și susținut de o comunitate globală. OSM este Wikipedia lumii hărților – oricine poate contribui, adăuga drumuri, trasee de drumeții sau POI (Puncte de interes) și, astfel, poate îmbunătăți harta lumii gratuite.