OpenStreetMap (OSM) waa khariidad caalami ah oo bilaash ah oo ay si wada jir ah u abuureen dadka aduunka oo dhan - bilaash, furan oo madax banaan. Halka Khariidadaha Google, oo ah hoggaamiyaha suuqa, inta badan ay tahay doorashada koowaad ee khariidadaha dhijitaalka ah, OSM waxay ku tiirsan tahay mabda'a gebi ahaanba ka duwan: bulsho iskaashi oo ururisa, wanaajisa oo ka dhigaysa xogta juqraafi ahaan bilaash ah.
Maxay tani muhiim u tahay? Sababtoo ah maabku waa aqoon - aqoontuna waa inay noqotaa mid bilaash ah. Codsiyada gaarka ah, waxaa laga yaabaa inay faa'iido u leedahay inaad martigeliso xogta OSM laftaadu si loo horumariyo xalalka khariidad la habeeyey oo aad u ilaaliso xakamaynta xogta iyo soo jeedinteeda. Is-martigelinta OSM waxay bixisaa faa'iidooyin dhowr ah:
- Madaxbannaanida: Kuma tiirsanid adeegyada dibadda oo aad si buuxda u maamusho xogta kaadhka.
- La qabsiga: Waxaad habayn kartaa habaynta khariidada iyo xogta la soo bandhigay si waafaqsan baahidaada.
- Ilaalinta xogta: Dhammaan xogta waxaa lagu martigeliyay gudaha. Ma jiro APIs dibadda ah oo la yiraahdo.
Waxaa jira laba hab oo waaweyn oo lagu soo bandhigo maab:
- Dhogorta grid: Faylasha sawirka ee horay loo sameeyay ee heerar zoom oo kala duwan. Way fududahay in la hirgeliyo laakiin waxay bixiyaan dabacsanaan yar marka la habeeyo qaabka khariidada.
- Tiles vector: Waxay ka kooban tahay xogta juqraafi ee qaabka vectors (dhibcood, xariiqyo, geeso) kuwaas oo loo sameeyay dhinaca macmiilka. Tani waxay u oggolaanaysaa hagaajinta dabacsanaan ee naqshadeynta khariidada iyo bandhig fiiqan ee dhammaan heerarka soo-dhoweynta. Si kastaba ha ahaatee, samayntu waxay u baahan tahay awood xisaabeed badan oo ku saabsan qalabka macmiilka.
Taleefannada Vector-ka ayaa si gaar ah ugu habboon is-martigelinta maaddaama ay bixiyaan doorashooyin badan oo is-beddel ah oo aad waxtar u leh. Khariidadaha gobolka ee leh meelo yaryar, ~ 1 GB ee meel disk adag ayaa inta badan ku filan. Waa macno in la isticmaalo SSD-yada sababtoo ah waxay bixiyaan faa'iidooyin xawaare marka la soo shubayo taayirada. Tiles vector static uma baahna server-ka khariidad socda (tusaale TileServer GL ama Mapnik), waxay leeyihiin shuruudo dayactir oo hooseeya iyo culeyska serferka - waxay ku fiican yihiin mashruucyo yaryar oo leh qaybo khariidad go'an.
Xirmadayda yar osmhelper sahlaysa habka abuurista iyo geynta taayirada vector ka .osm.pbf
Faylasha. Sanduuqyada xidhidhiyaha gaarka ah ayaa u oggolaanaya horumariyayaasha inay soo saaraan aagag gaar ah oo juqraafi ah oo ay soo saaraan faylal kuleyl ah oo toos ah oo si toos ah loogu dhejin karo server-ka. Tani waxay ka dhigaysaa isku dhafka xogta OSM ee mashaariicda shabakada mid aad u fudud. Si aad u isticmaasho osmhelper, diyaargarow ayaa loo baahan yahay. Maktabadu waxay ku salaysan tahay qalabyada sida osmium, mbutil iyo tilemaker waa in la rakibaa.
Ku rakibida osmium
osmium waa qalab awood leh oo lagu farsameeyo xogta 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
Rakibaadda mbutil
mbutil waa qalab ku salaysan Python oo lagula shaqaynayo 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
Rakibaadda tilemaker
tilemaker waa qalab il furan oo u beddela xogta OSM si toos ah tiles vector.
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
Soo deji qoraalka beddelka
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Isticmaalka osmhelper
Ka dib marka la rakibo qalabka loo baahan yahay, osmhelper waxaa loo isticmaali karaa in lagu soo saaro foornada vector oo loogu diyaariyo martigelinta:
./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
Habkani waxa uu suurtogal ka dhigayaa in si hufan loo gudbiyo qaybaha khariidadaha la habeeyey iyada oo aan loo baahnayn server-ka khariidad firfircoon. Isku-darka xogta OpenStreetMap ee mashaariicdaada waxay noqon kartaa mid adag, gaar ahaan marka ay timaado martigelinta iyo hawlgelinta. Mar haddii Khariidadaha Google ay keli ku tahay xallinta khariidaynta, horumariyayaal badan ayaa raadinaya beddelka. osmhelper waxa ay sahlaysaa in aad bilowdo martigelinta xogtaada OpenStreetMap. Tani waxay ku siinaysaa koontarool buuxa oo ku saabsan khariidadahaaga, ma jiraan xayiraad API ah iyo awoodda aad ku dari karto lakabyada xogtaada.
Dadka intooda badan waxay u yaqaaniin Google Maps inuu yahay xalka caadiga ah ee khariidadaha dhijitaalka ah. Laakiin dad yar ayaa og in OpenStreetMap ay tahay beddelka weyn - oo aan lahayn xannibaado ganacsi ama kharashyo qarsoon. Iyadoo Khariidadaha Google-ka ay ku dallacaan kharashka isticmaalka API oo ay ururiyaan xogta isticmaalaha, OSM waa bilaash, furan oo ay taageerto bulsho caalami ah. OSM waa Wikipedia ee khariidadda adduunka - qof kastaa wuu ku dari karaa, ku dari karaa waddooyinka, dariiqyada socodka ama POIs (Points of Interest) oo sidaas darteed hagaajinta khariidadda adduunka ee bilaashka ah.