I-OpenStreetMap (OSM) imephu yomhlaba yamahhala eyakhiwe ngokubambisana abantu emhlabeni wonke - mahhala, evulekile futhi ezimele. Nakuba i-Google Maps, njengomholi wemakethe, ngokuvamile iyinketho yokuqala yamamephu edijithali, i-OSM incike kumgomo ohluke ngokuphelele: umphakathi ohlangene oqoqayo, othuthukisayo futhi wenze idatha yendawo itholakale mahhala.
Kungani lokhu kubalulekile? Ngoba amamephu awulwazi - futhi ulwazi kufanele lube mahhala. Kuzinhlelo zokusebenza ezingazodwana, kungase kusize ukubamba idatha ye-OSM ngokwakho ukuze uthuthukise izixazululo zemephu ezingokwezifiso futhi ugcine ukulawula idatha kanye nokwethulwa kwayo. I-OSM yokuzenzela inikezela ngezinzuzo ezimbalwa:
- Ukuzimela: Awuncikile kumasevisi angaphandle futhi unokulawula okugcwele kudatha yekhadi.
- Ukuzivumelanisa nezimo: Ungenza ngendlela oyifisayo isitayela semephu kanye nedatha eboniswa ngokwezidingo zakho.
- Ukuvikelwa kwedatha: Yonke idatha isingathwa endaweni. Awekho ama-API angaphandle abizwayo.
Kunezindlela ezimbili eziyinhloko zokubonisa amamephu:
- Amathayela wegridi: Amafayela esithombe enziwe ngaphambilini wamazinga ahlukene wokusondeza. Kulula ukuzisebenzisa kodwa zinikeza ukuguquguquka okuncane ekwenzeni isitayela semephu ngokwezifiso.
- Ama-vector tile: Iqukethe idatha yendawo esesimweni samavekhtha (amaphuzu, imigqa, amapholygoni) anikezwa uhlangothi lweklayenti. Lokhu kuvumela ukulungiswa okuguquguqukayo kwesakhiwo semephu kanye nesibonisi esibukhali kuwo wonke amazinga wokusondeza. Nokho, ukunikezela kudinga amandla ekhompuyutha engeziwe kudivayisi yeklayenti.
Amathayili eVector afaneleka kakhulu ukuzibambela wona njengoba enikeza izinketho eziningi zokwenza ngokwezifiso futhi asebenza kahle kakhulu. Kumamephu esifunda anezindawo ezincane, ~1 GB yesikhala sediski eliqinile ngokuvamile sanele. Kunengqondo ukusebenzisa ama-SSD ngoba anikeza izinzuzo zejubane lapho ulayisha amathayili. Amathayili evektha amile awadingi iseva yemephu esebenzayo (isb. I-TileServer GL noma i-Mapnik), anezidingo zokulungisa eziphansi kanye nomthwalo weseva omncane - alungele amaphrojekthi amancane anezigaba zemephu ezingashintshi.
Iphakethe lami elincane osmhelper isiza inqubo yokudala kanye nokukhipha amathayili we-vector kusuka .osm.pbf
Amafayela. Amabhokisi okubopha ngokwezifiso avumela abathuthukisi ukuthi bakhiphe izindawo ezithile zejografi futhi bakhiqize amafayela e-boilerplate afanayo angalayishwa ngokuqondile kuseva. Lokhu kwenza ukuhlanganiswa kwedatha ye-OSM kumaphrojekthi wewebhu kube lula kakhulu. Ukusebenzisa i-osmhelper, ukulungiswa okuthile kuyadingeka. Umtapo wolwazi usekelwe kumathuluzi afana i-osmium, mbutil futhi i-tilemaker okumele kufakwe.
Ukufakwa kwe-osmium
I-osmium iyithuluzi elinamandla lokucubungula idatha ye-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
Ukufakwa kwe-mbutil
imbutil iyithuluzi elisekelwe kuPython lokusebenza ne-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
Ukufakwa kwe-tilemaker
I-tilemaker iyithuluzi lomthombo ovulekile eliguqula idatha ye-OSM ngokuqondile ibe amathayela e-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
Landa iskripthi sokuguqulwa
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Ukusebenzisa i-osmhelper
Ngemva kokufaka amathuluzi adingekayo, i-osmhelper ingasetshenziswa ukukhiqiza amathayili we-vector futhi uwalungiselele ukusingathwa:
./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
Le nqubo yenza kube nokwenzeka ukuletha izigaba zemephu ezenziwe ngezifiso kahle futhi ngaphandle kwesidingo seseva yemephu eguqukayo. Ukuhlanganisa idatha ye-OpenStreetMap kumaphrojekthi akho kungaba nzima, ikakhulukazi uma kuziwa ekusingatheni nasekusetshenzisweni. Njengoba i-Google Amamephu inomthwalo wemfanelo kuzixazululo zemephu, onjiniyela abaningi bafuna ezinye izindlela. i-osmhelper yenza kube lula ukuqalisa ngokubamba idatha yakho ye-OpenStreetMap. Lokhu kukunikeza ukulawula okugcwele kumamephu wakho, akukho mikhawulo ye-API kanye nekhono lokungeza izendlalelo zakho zedatha.
Abantu abaningi bazi i-Google Maps njengesixazululo esijwayelekile samamephu edijithali. Kodwa bambalwa abantu abaziyo ukuthi i-OpenStreetMap ingenye indlela enhle - ngaphandle kwemikhawulo yezentengiso noma izindleko ezifihliwe. Ngenkathi i-Google Amamephu ikhokhisa izindleko zokusebenzisa i-API futhi iqoqa idatha yomsebenzisi, i-OSM imahhala, ivulekile futhi isekelwa umphakathi womhlaba. I-OSM iyi-Wikipedia yomhlaba wemephu - noma ubani anganikela, engeze imigwaqo, imizila yokuhamba izintaba noma ama-POI (Amaphuzu Athakazelisayo) futhi ngaleyo ndlela athuthukise imephu yomhlaba yamahhala.