Az OpenStreetMap (OSM) egy ingyenes, nyitott és független világtérkép, amelyet az emberek a világ minden tájáról közösen hoztak létre. Míg a Google Maps, mint piacvezető, gyakran a digitális térképek első számú választása, az OSM egy teljesen más elvre támaszkodik: egy együttműködő közösségre, amely ingyenesen gyűjti, javítja és elérhetővé teszi a földrajzi adatokat.
Miért fontos ez? Mert a térkép tudás – és a tudásnak ingyenesnek kell lennie. Egyéni alkalmazások esetén hasznos lehet az OSM-adatokat saját maga tárolni, hogy személyre szabott térképmegoldásokat fejlesszen ki, és megőrizze az adatok és azok megjelenítésének ellenőrzését. Az önkiszolgáló OSM számos előnnyel jár:
- Függetlenség: Ön nem függ külső szolgáltatásoktól, és teljes ellenőrzése van a kártyaadatok felett.
- Alkalmazkodóképesség: Saját igényei szerint testreszabhatja a térkép stílusát és a megjelenített adatokat.
- Adat védelem: Minden adatot helyben tárolnak. Nem hívnak meg külső API-kat.
A térképek megjelenítésének két fő módja van:
- Rácslapok: Előre elkészített képfájlok különböző nagyítási szintekhez. Könnyen megvalósíthatók, de kevésbé rugalmasak a térképstílus testreszabásában.
- Vektor csempe: Vektorok (pontok, vonalak, sokszögek) formájában tartalmaz földrajzi adatokat, amelyek ügyféloldali megjelenítésre kerülnek. Ez lehetővé teszi a térkép kialakításának rugalmas beállítását és éles megjelenítést minden nagyítási szinten. A renderelés azonban nagyobb számítási teljesítményt igényel az ügyféleszközön.
A vektorcsempék különösen alkalmasak önálló tárolásra, mivel több testreszabási lehetőséget kínálnak és hatékonyabbak. Kisebb területű regionális térképekhez ~1 GB merevlemez-terület gyakran elegendő. Érdemes SSD-ket használni, mert sebességelőnyt kínálnak a csempék betöltésekor. A statikus vektorcsempékhez nincs szükség futó térképszerverre (pl. TileServer GL vagy Mapnik), alacsonyabb a karbantartási igényük és kisebb a szerverterhelés – ideálisak kisebb projektekhez rögzített térképszelvényekkel.
Az én kis csomagom osmhelper megkönnyíti a vektorcsempék létrehozásának és telepítésének folyamatát .osm.pbf
Fájlokat. Az egyéni határolódobozok lehetővé teszik a fejlesztők számára, hogy meghatározott földrajzi területeket bontsanak ki, és megfelelő sablonfájlokat állítsanak elő, amelyek közvetlenül feltölthetők a szerverre. Ez sokkal könnyebbé teszi az OSM adatok webes projektekbe való integrálását. Az osmhelper használatához némi előkészület szükséges. A könyvtár olyan eszközökön alapul, mint pl ozmium, mbutil és csempekészítő amit telepíteni kell.
Ozmium telepítése
Az osmium egy hatékony eszköz az OSM adatok feldolgozására.
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
Mbutil telepítése
Az mbutil egy Python-alapú eszköz az MBTile-ekkel való munkavégzéshez.
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
Csempekészítő felszerelése
A tilemaker egy nyílt forráskódú eszköz, amely az OSM-adatokat közvetlenül vektorcsempékké alakítja.
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
Töltse le a konverziós szkriptet
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Osmhelper segítségével
A szükséges eszközök telepítése után az osmhelper segítségével vektorcsempéket lehet generálni és felkészíteni a tárolásra:
./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
Ez a folyamat lehetővé teszi a testreszabott térképszelvények hatékony és dinamikus térképszerver nélkül történő szállítását. Az OpenStreetMap adatok integrálása saját projektjeibe bonyolult lehet, különösen ami a tárhelyszolgáltatást és a telepítést illeti. Mivel a Google Maps monopóliummal rendelkezik a térképészeti megoldások terén, sok fejlesztő alternatívákat keres. Az osmhelper megkönnyíti a saját OpenStreetMap adatok tárolásának megkezdését. Ez teljes irányítást biztosít a térképek felett, API-korlátozások nélkül, és saját adatrétegek hozzáadását teszi lehetővé.
A legtöbben a Google Térképet a digitális térképek szabványos megoldásaként ismerik. De kevesen tudják, hogy az OpenStreetMap nagyszerű alternatíva – kereskedelmi korlátozások és rejtett költségek nélkül. Míg a Google Térkép API-használati díjat számít fel és felhasználói adatokat gyűjt, az OSM ingyenes, nyitott és egy globális közösség által támogatott. Az OSM a térképvilág Wikipédia – bárki hozzájárulhat, utakat, túraútvonalakat vagy POI-kat (Point of Interest) adhat hozzá, és így javíthatja az ingyenes világtérképet.