OpenStreetMap (OSM) - бул дүйнө жүзүндөгү адамдар тарабынан биргелешип түзүлгөн акысыз дүйнө картасы - эркин, ачык жана көз карандысыз. Google Карталар рыноктун лидери катары санариптик карталар үчүн биринчи тандоо болуп саналса да, OSM таптакыр башка принципке таянат: географиялык маалыматтарды чогултуучу, өркүндөтүүчү жана акысыз жеткиликтүү кылган биргелешкен коомчулук.
Бул эмне үчүн маанилүү? Карталар билим болгондуктан, жана билим эркин болушу керек. Жеке колдонмолор үчүн ыңгайлаштырылган карта чечимдерин иштеп чыгуу жана берилиштерге жана анын презентациясына көзөмөлдү сактап калуу үчүн OSM маалыматтарын өзүңүз жайгаштыруу пайдалуу болушу мүмкүн. Өзүн-өзү хостинг OSM бир нече артыкчылыктарды сунуш кылат:
- Көз карандысыздык: Сиз тышкы кызматтардан көз каранды эмессиз жана картанын маалыматтарын толук көзөмөлдөй аласыз.
- Адаптация: Сиз картанын стилин жана көрсөтүлгөн маалыматтарды өзүңүздүн муктаждыктарыңызга ылайыкташтыра аласыз.
- Маалыматтарды коргоо: Бардык маалыматтар жергиликтүү жайгаштырылган. Эч кандай тышкы API чакырылбайт.
Карталарды көрсөтүүнүн эки негизги ыкмасы бар:
- Тор плиткалар: Ар кандай масштабдуу деңгээлдер үчүн алдын ала жасалган сүрөт файлдары. Аларды ишке ашыруу оңой, бирок картанын стилин ыңгайлаштырууда азыраак ийкемдүүлүктү сунуштайт.
- Вектордук плиткалар: Кардар тарабынан көрсөтүлүүчү векторлор (чекиттер, сызыктар, көп бурчтуктар) түрүндөгү географиялык маалыматтарды камтыйт. Бул картанын дизайнын ийкемдүү оңдоого жана масштабдын бардык деңгээлдеринде курч дисплейге мүмкүндүк берет. Бирок, көрсөтүү кардар түзмөгүндө көбүрөөк эсептөө күчүн талап кылат.
Вектордук плиткалар өзгөчө өзүн-өзү хостингге ылайыктуу, анткени алар көбүрөөк настройка варианттарын сунуштайт жана натыйжалуураак. Кичинекей аймактары бар аймактык карталар үчүн катуу дисктин мейкиндиги ~1 ГБ көп учурда жетиштүү. SSD дисктерин колдонуунун мааниси бар, анткени алар плитканы жүктөөдө ылдамдыктын артыкчылыктарын сунуштайт. Статикалык вектордук плиткалар иштеп жаткан карта серверин (мисалы, TileServer GL же Mapnik) талап кылбайт, тейлөө талаптары азыраак жана сервердик жүктөм азыраак - алар картанын туруктуу бөлүмдөрү бар чакан долбоорлор үчүн идеалдуу.
Менин кичинекей пакетим osmhelper тартып вектордук плиткаларды түзүү жана жайылтуу процессин жеңилдетет .osm.pbf
Файлдар. Ыңгайлаштырылган чектеш кутучалар иштеп чыгуучуларга белгилүү бир географиялык аймактарды бөлүп алууга жана серверге түздөн-түз жүктөлө турган дал келген файлдарды түзүүгө мүмкүндүк берет. Бул OSM маалыматтарын веб-долбоорлорго интеграциялоону кыйла жеңилдетет. osmhelper колдонуу үчүн, кээ бир даярдоо зарыл. сыяктуу куралдарга негизделген китепкана осмий, mbutil жана плиткачы деп орнотулушу керек.
Осмийди орнотуу
osmium 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
Mbutil орнотуу
mbutil MBTiles менен иштөө үчүн Python негизинде куралы болуп саналат.
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
Плитканы орнотуу
tilemaker - бул OSM маалыматтарын түздөн-түз вектордук плиткаларга айландырган ачык булак куралы.
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
Конверсия скриптин жүктөп алыңыз
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Osmhelper колдонуу
Керектүү куралдарды орноткондон кийин, osmhelper вектордук плиткаларды түзүү жана аларды хостингге даярдоо үчүн колдонулушу мүмкүн:
./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
Бул процесс ылайыкташтырылган карта бөлүмдөрүн эффективдүү жана динамикалык карта серверине муктаж болбостон жеткирүүгө мүмкүндүк берет. OpenStreetMap маалыматтарын өз долбоорлоруңузга интеграциялоо татаал болушу мүмкүн, айрыкча хостингге жана жайылтууга келгенде. Google Карталар картографиялык чечимдерге монополияга ээ болгондуктан, көптөгөн иштеп чыгуучулар альтернативаларды издеп жатышат. osmhelper өз OpenStreetMap маалыматтарыңызды жайгаштырууну баштоону жеңилдетет. Бул сизге карталарыңыздын үстүнөн толук башкарууну, эч кандай API чектөөлөрүн жана өз маалымат катмарларыңызды кошуу мүмкүнчүлүгүн берет.
Көпчүлүк адамдар Google Карталарды санариптик карталар үчүн стандарттуу чечим катары билишет. Бирок, OpenStreetMap мыкты альтернатива экенин бир нече адамдар билет - коммерциялык чектөөлөр же жашыруун чыгымдарсыз. Google Карталар API колдонуу акысын алып, колдонуучунун маалыматтарын чогултса, OSM акысыз, ачык жана дүйнөлүк коомчулук тарабынан колдоого алынат. OSM – бул дүйнөнүн картасынын Wikipedia – ар ким өз салымын кошо алат, жолдорду, жөө жүрүү жолдорун же POI (Кызыктуу пункттар) кошуп, ошону менен эркин дүйнө картасын жакшыртат.