ធ្វើជាម្ចាស់ផ្ទះ OpenStreetMap ដោយខ្លួនឯង។

OpenStreetMap (OSM) គឺ​ជា​ផែនទី​ពិភពលោក​ដោយ​ឥត​គិតថ្លៃ​ដែល​បង្កើត​ឡើង​ដោយ​ការ​សហការ​គ្នា​ដោយ​មនុស្ស​ទូទាំង​ពិភពលោក – ឥតគិតថ្លៃ បើកចំហ និង​ឯករាជ្យ។ ខណៈដែល Google Maps ក្នុងនាមជាអ្នកដឹកនាំទីផ្សារ ជារឿយៗជាជម្រើសដំបូងសម្រាប់ផែនទីឌីជីថល OSM ពឹងផ្អែកលើគោលការណ៍ខុសគ្នាទាំងស្រុង៖ សហគមន៍សហការដែលប្រមូល កែលម្អ និងធ្វើឱ្យទិន្នន័យភូមិសាស្រ្តអាចរកបានដោយឥតគិតថ្លៃ។


ហេតុអ្វីបានជារឿងនេះសំខាន់? ដោយសារតែផែនទីគឺជាចំណេះដឹង ហើយចំណេះដឹងគួរតែឥតគិតថ្លៃ។ សម្រាប់កម្មវិធីនីមួយៗ វាអាចមានប្រយោជន៍ក្នុងការបង្ហោះទិន្នន័យ OSM ដោយខ្លួនឯង ដើម្បីបង្កើតដំណោះស្រាយផែនទីតាមតម្រូវការ និងរក្សាការគ្រប់គ្រងលើទិន្នន័យ និងការបង្ហាញរបស់វា។ OSM បង្ហោះដោយខ្លួនឯងផ្តល់នូវអត្ថប្រយោជន៍ជាច្រើន។:

  • ឯករាជ្យ: អ្នកមិនពឹងផ្អែកលើសេវាកម្មខាងក្រៅ ហើយមានការគ្រប់គ្រងពេញលេញលើទិន្នន័យកាត។
  • អាដាប់ធ័រ: អ្នក​អាច​ប្ដូរ​រចនាប័ទ្ម​ផែនទី​តាម​បំណង និង​ទិន្នន័យ​ដែល​បាន​បង្ហាញ​តាម​តម្រូវការ​របស់​អ្នក​ផ្ទាល់។
  • ការការពារទិន្នន័យ: ទិន្នន័យទាំងអស់ត្រូវបានបង្ហោះក្នុងមូលដ្ឋាន។ គ្មាន APIs ខាងក្រៅត្រូវបានហៅទេ។

មានវិធីសាស្រ្តសំខាន់ពីរសម្រាប់បង្ហាញផែនទី:

  • ក្រឡាក្បឿង: ឯកសាររូបភាពដែលបានបង្កើតជាមុនសម្រាប់កម្រិតពង្រីកផ្សេងៗគ្នា។ ពួកវាងាយស្រួលអនុវត្ត ប៉ុន្តែផ្តល់ភាពបត់បែនតិចក្នុងការប្ដូររចនាប័ទ្មផែនទីតាមបំណង។
  • ក្បឿងវ៉ិចទ័រ: មានទិន្នន័យភូមិសាស្ត្រក្នុងទម្រង់ជាវ៉ិចទ័រ (ចំណុច បន្ទាត់ ពហុកោណ) ដែលត្រូវបានបង្ហាញខាងអតិថិជន។ នេះអនុញ្ញាតឱ្យមានការកែតម្រូវដែលអាចបត់បែនបាននៃការរចនាផែនទី និងការបង្ហាញច្បាស់នៅគ្រប់កម្រិតនៃការពង្រីក។ ទោះជាយ៉ាងណាក៏ដោយ ការបង្ហាញតម្រូវឱ្យមានថាមពលកុំព្យូទ័រកាន់តែច្រើននៅលើឧបករណ៍ម៉ាស៊ីនភ្ញៀវ។

ក្បឿងវ៉ិចទ័រគឺសមរម្យជាពិសេសសម្រាប់ការបង្ហោះដោយខ្លួនឯង ព្រោះវាផ្តល់ជម្រើសការប្ដូរតាមបំណងកាន់តែច្រើន និងមានប្រសិទ្ធភាពជាង។ សម្រាប់​ផែនទី​តំបន់​ដែល​មាន​ផ្ទៃ​តូច​ជាង​នេះ​ទំហំ​ថាស​រឹង ~ 1 GB ច្រើន​តែ​គ្រប់គ្រាន់។ វាសមហេតុផលក្នុងការប្រើ SSD ព្រោះវាផ្តល់នូវគុណសម្បត្តិល្បឿននៅពេលផ្ទុកក្រឡា។ ក្បឿងវ៉ិចទ័រឋិតិវន្តមិនតម្រូវឱ្យមានម៉ាស៊ីនមេផែនទីដែលកំពុងដំណើរការ (ឧ. TileServer GL ឬ Mapnik) មានតម្រូវការថែទាំទាប និងការផ្ទុកម៉ាស៊ីនមេតិចជាង - ពួកវាល្អសម្រាប់គម្រោងតូចៗដែលមានផ្នែកផែនទីថេរ។

កញ្ចប់តូចរបស់ខ្ញុំ osmhelper ជួយសម្រួលដល់ដំណើរការនៃការបង្កើត និងដាក់ពង្រាយក្បឿងវ៉ិចទ័រពី .osm.pbfឯកសារ។ ប្រអប់កំណត់ព្រំដែនផ្ទាល់ខ្លួនអនុញ្ញាតឱ្យអ្នកអភិវឌ្ឍន៍ទាញយកតំបន់ភូមិសាស្រ្តជាក់លាក់ និងបង្កើតឯកសារ boilerplate ដែលត្រូវគ្នាដែលអាចផ្ទុកឡើងដោយផ្ទាល់ទៅម៉ាស៊ីនមេ។ នេះធ្វើឱ្យការរួមបញ្ចូលទិន្នន័យ OSM ទៅក្នុងគម្រោងបណ្ដាញកាន់តែងាយស្រួល។ ដើម្បីប្រើ osmhelper ការរៀបចំខ្លះគឺចាំបាច់។ បណ្ណាល័យគឺផ្អែកលើឧបករណ៍ដូចជា osmium, mbutil និង អ្នកផលិតក្បឿង ដែលត្រូវតែដំឡើង។

ការដំឡើង osmium

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 គឺជាឧបករណ៍ដែលមានមូលដ្ឋានលើ 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 Maps ជាដំណោះស្រាយស្តង់ដារសម្រាប់ផែនទីឌីជីថល។ ប៉ុន្តែមានមនុស្សតិចណាស់ដែលដឹងថា OpenStreetMap គឺជាជម្រើសដ៏ល្អមួយ - ដោយគ្មានការរឹតបន្តឹងពាណិជ្ជកម្ម ឬការចំណាយលាក់កំបាំង។ ខណៈពេលដែល Google Maps គិតថ្លៃប្រើប្រាស់ API និងប្រមូលទិន្នន័យអ្នកប្រើប្រាស់ OSM គឺឥតគិតថ្លៃ បើកចំហ និងគាំទ្រដោយសហគមន៍សកល។ OSM គឺជាវិគីភីឌានៃពិភពលោកផែនទី – នរណាម្នាក់អាចចូលរួមចំណែក បន្ថែមផ្លូវ ផ្លូវឡើងភ្នំ ឬ POIs (ចំណុចចាប់អារម្មណ៍) ហើយដូច្នេះធ្វើអោយប្រសើរឡើងនូវផែនទីពិភពលោកដោយឥតគិតថ្លៃ។

ថយក្រោយ