OpenStreetMap (OSM) është një hartë e botës së lirë e krijuar në bashkëpunim nga njerëz në të gjithë botën – e lirë, e hapur dhe e pavarur. Ndërsa Google Maps, si lider i tregut, është shpesh zgjedhja e parë për hartat dixhitale, OSM mbështetet në një parim krejtësisht të ndryshëm: një komunitet bashkëpunues që mbledh, përmirëson dhe vë në dispozicion pa pagesë të dhënat gjeografike.
Pse është kjo e rëndësishme? Sepse hartat janë njohuri – dhe njohuria duhet të jetë falas. Për aplikacione individuale, mund të jetë e dobishme të strehoni vetë të dhënat e OSM në mënyrë që të zhvilloni zgjidhje hartash të personalizuara dhe të ruani kontrollin mbi të dhënat dhe prezantimin e tyre. OSM vetë-pritëse ofron disa përparësi:
- Pavarësinë: Ju nuk jeni të varur nga shërbimet e jashtme dhe keni kontroll të plotë mbi të dhënat e kartës.
- Përshtatshmëria: Ju mund të personalizoni stilin e hartës dhe të dhënat e shfaqura sipas nevojave tuaja.
- Mbrojtjen e të dhënave: Të gjitha të dhënat mbahen në nivel lokal. Asnjë API e jashtme nuk thirret.
Ekzistojnë dy mënyra kryesore për shfaqjen e hartave:
- Pllaka rrjeti: Skedarë imazhi të përgatitur paraprakisht për nivele të ndryshme zmadhimi. Ato janë të lehta për t'u zbatuar, por ofrojnë më pak fleksibilitet në përshtatjen e stilit të hartës.
- Pllaka vektoriale: Përmban të dhëna gjeografike në formën e vektorëve (pika, vija, poligone) që janë dhënë në anën e klientit. Kjo lejon rregullime fleksibël të dizajnit të hartës dhe një shfaqje të mprehtë në të gjitha nivelet e zmadhimit. Megjithatë, përpunimi kërkon më shumë fuqi llogaritëse në pajisjen e klientit.
Pllakat vektoriale janë veçanërisht të përshtatshme për vetë-strehim pasi ato ofrojnë më shumë opsione personalizimi dhe janë më efikase. Për hartat rajonale me zona më të vogla, shpesh mjafton ~1 GB hapësirë në hard disk. Ka kuptim të përdorni SSD sepse ato ofrojnë avantazhe shpejtësie gjatë ngarkimit të pllakave. Pllakat vektoriale statike nuk kërkojnë një server hartash që funksionon (p.sh. TileServer GL ose Mapnik), kanë kërkesa më të ulëta mirëmbajtjeje dhe më pak ngarkesë serveri - ato janë ideale për projekte më të vogla me seksione fikse të hartës.
Pakoja ime e vogël osmndihmës lehtëson procesin e krijimit dhe vendosjes së pllakave vektoriale nga .osm.pbf
Dosjet. Kutitë kufitare të personalizuara lejojnë zhvilluesit të nxjerrin zona të veçanta gjeografike dhe të gjenerojnë skedarë të përputhshëm të boilerplate që mund të ngarkohen drejtpërdrejt në një server. Kjo e bën shumë më të lehtë integrimin e të dhënave OSM në projektet në internet. Për të përdorur osmhelper, nevojitet një përgatitje. Biblioteka bazohet në mjete të tilla si osmium, mbutil dhe tjegullpunues që duhet të instalohet.
Instalimi i osmiumit
osmium është një mjet i fuqishëm për përpunimin e të dhënave 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
Instalimi i butil
mbutil është një mjet i bazuar në Python për të punuar me 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
Montimi i tjegullpunuesit
tilemaker është një mjet me burim të hapur që konverton të dhënat OSM direkt në pllaka vektoriale.
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
Shkarkoni skriptin e konvertimit
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Duke përdorur osmhelper
Pas instalimit të mjeteve të kërkuara, osmhelper mund të përdoret për të gjeneruar pllaka vektoriale dhe për t'i përgatitur ato për pritje:
./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
Ky proces bën të mundur ofrimin e seksioneve të personalizuara të hartës në mënyrë efikase dhe pa nevojën për një server dinamik hartash. Integrimi i të dhënave të OpenStreetMap në projektet tuaja mund të jetë kompleks, veçanërisht kur bëhet fjalë për pritjen dhe vendosjen. Meqenëse Google Maps ka një monopol në zgjidhjet e hartës, shumë zhvillues po kërkojnë alternativa. osmhelper e bën më të lehtë fillimin e pritjes së të dhënave tuaja të OpenStreetMap. Kjo ju jep kontroll të plotë mbi hartat tuaja, pa kufizime në API dhe aftësinë për të shtuar shtresat tuaja të të dhënave.
Shumica e njerëzve e njohin Google Maps si zgjidhje standarde për hartat dixhitale. Por pak njerëz e dinë se OpenStreetMap është një alternativë e shkëlqyer – pa kufizime komerciale apo kosto të fshehura. Ndërsa Google Maps ngarkon tarifat e përdorimit të API dhe mbledh të dhënat e përdoruesit, OSM është falas, i hapur dhe i mbështetur nga një komunitet global. OSM është Wikipedia e hartës së botës – çdokush mund të kontribuojë, të shtojë rrugë, shtigje ecjeje ose POI (Pika të Interesit) dhe kështu të përmirësojë hartën e botës së lirë.