Hozd le magad az OpenStreetMap alkalmazást

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.pbfFá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.

Vissza