Ինքներդ հյուրընկալեք OpenStreetMap-ը

OpenStreetMap-ը (OSM) աշխարհի անվճար քարտեզ է, որը ստեղծվել է ամբողջ աշխարհի մարդկանց կողմից համատեղ՝ ազատ, բաց և անկախ: Մինչ Google Քարտեզները, որպես շուկայի առաջատար, հաճախ առաջին ընտրությունն է թվային քարտեզների համար, OSM-ը հենվում է բոլորովին այլ սկզբունքի վրա՝ համագործակցային համայնք, որը հավաքում, բարելավում և անվճար հասանելի է դարձնում աշխարհագրական տվյալները:


Ինչո՞ւ է սա կարևոր: Քանի որ քարտեզները գիտելիք են, և գիտելիքը պետք է անվճար լինի: Առանձին հավելվածների համար կարող է օգտակար լինել OSM-ի տվյալները հյուրընկալել ինքներդ, որպեսզի մշակեք հարմարեցված քարտեզային լուծումներ և պահպանեք տվյալների և դրանց ներկայացման վերահսկողությունը: Ինքնահոսթինգ OSM-ն առաջարկում է մի քանի առավելություն:

  • Անկախություն: Դուք կախված չեք արտաքին ծառայություններից և լիովին վերահսկում եք քարտի տվյալները:
  • Հարմարվողականություն: Դուք կարող եք հարմարեցնել քարտեզի ձևավորումը և ցուցադրվող տվյալները՝ ըստ ձեր սեփական կարիքների:
  • Տվյալների պաշտպանություն: Բոլոր տվյալները տեղայնացված են: Արտաքին API-ներ չեն կոչվում:

Քարտեզների ցուցադրման երկու հիմնական եղանակ կա:

  • Ցանցային սալիկներ: Նախապես պատրաստված պատկերային ֆայլեր խոշորացման տարբեր մակարդակների համար: Դրանք հեշտ է իրականացնել, բայց ավելի քիչ ճկունություն են առաջարկում քարտեզի ոճը հարմարեցնելու համար:
  • Վեկտորային սալիկներ: Պարունակում է աշխարհագրական տվյալներ վեկտորների (կետեր, գծեր, բազմանկյուններ) տեսքով, որոնք մատուցվում են հաճախորդի կողմից: Սա թույլ է տալիս ճկուն ճշգրտումներ կատարել քարտեզի ձևավորման մեջ և հստակ ցուցադրել խոշորացման բոլոր մակարդակներում: Այնուամենայնիվ, մատուցումը պահանջում է ավելի շատ հաշվողական հզորություն հաճախորդի սարքի վրա:

Վեկտորային սալիկները հատկապես հարմար են ինքնահոսթինգի համար, քանի որ դրանք առաջարկում են հարմարեցման ավելի շատ տարբերակներ և ավելի արդյունավետ են: Ավելի փոքր տարածքներով տարածաշրջանային քարտեզների համար կոշտ սկավառակի ~1 ԳԲ տարածքը հաճախ բավարար է: Իմաստ է օգտագործել SSD-ներ, քանի որ դրանք արագության առավելություններ են տալիս սալիկները բեռնելիս: Ստատիկ վեկտորային սալիկները չեն պահանջում գործող քարտեզի սերվեր (օրինակ՝ TileServer GL կամ Mapnik), ունեն սպասարկման ավելի ցածր պահանջներ և ավելի քիչ սերվերի ծանրաբեռնվածություն. դրանք իդեալական են ֆիքսված քարտեզի բաժիններով փոքր նախագծերի համար:

Իմ փոքրիկ փաթեթը osmhelper հեշտացնում է վեկտորային սալիկների ստեղծման և տեղակայման գործընթացը .osm.pbfՖայլեր։ Պատվերով սահմանափակող տուփերը ծրագրավորողներին թույլ են տալիս արդյունահանել որոշակի աշխարհագրական տարածքներ և ստեղծել համապատասխան կաթսայի ֆայլեր, որոնք կարող են ուղղակիորեն վերբեռնվել սերվեր: Սա շատ ավելի հեշտ է դարձնում OSM տվյալների ինտեգրումը վեբ նախագծերում: Օսմհելպերն օգտագործելու համար անհրաժեշտ է որոշակի նախապատրաստություն: Գրադարանը հիմնված է այնպիսի գործիքների վրա, ինչպիսիք են օսմիում, բութիլ և սալիկագործ որը պետք է տեղադրվի:

Օսմիումի տեղադրում

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-ը Python-ի վրա հիմնված գործիք է 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

Սալիկագործի տեղադրում

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 Maps-ը մենաշնորհ ունի քարտեզագրման լուծումների վրա, շատ մշակողներ այլընտրանքներ են փնտրում: osmhelper-ը հեշտացնում է ձեր սեփական OpenStreetMap տվյալների հոսթինգը սկսելը: Սա ձեզ հնարավորություն է տալիս լիովին վերահսկել ձեր քարտեզները, առանց API-ի սահմանափակումների և ձեր սեփական տվյալների շերտերն ավելացնելու հնարավորություն:

Մարդկանց մեծամասնությունը գիտի Google Քարտեզները որպես թվային քարտեզների ստանդարտ լուծում: Բայց քչերը գիտեն, որ OpenStreetMap-ը հիանալի այլընտրանք է՝ առանց առևտրային սահմանափակումների կամ թաքնված ծախսերի: Մինչ Google Քարտեզները գանձում են API-ի օգտագործման վճարներ և հավաքում օգտվողների տվյալները, OSM-ն անվճար է, բաց և աջակցվում է համաշխարհային համայնքի կողմից: OSM-ը քարտեզի աշխարհի Վիքիպեդիան է. յուրաքանչյուրը կարող է ներդրում ունենալ, ավելացնել ճանապարհներ, արշավային արահետներ կամ POI (հետաքրքրությունների կետեր) և այդպիսով բարելավել աշխարհի ազատ քարտեզը:

Վերադառնալ