ওপেনস্ট্রিটম্যাপ নিজেই হোস্ট করুন

ওপেনস্ট্রিটম্যাপ (OSM) হল একটি মুক্ত বিশ্ব মানচিত্র যা সারা বিশ্বের মানুষের সহযোগিতায় তৈরি করা হয়েছে - মুক্ত, উন্মুক্ত এবং স্বাধীন। যদিও বাজারের শীর্ষস্থানীয় প্রতিষ্ঠান হিসেবে গুগল ম্যাপস প্রায়শই ডিজিটাল মানচিত্রের জন্য প্রথম পছন্দ, ওএসএম সম্পূর্ণ ভিন্ন নীতির উপর নির্ভর করে: একটি সহযোগী সম্প্রদায় যা ভৌগোলিক তথ্য সংগ্রহ করে, উন্নত করে এবং বিনামূল্যে উপলব্ধ করে।


এটা কেন গুরুত্বপূর্ণ? কারণ মানচিত্র হলো জ্ঞান - এবং জ্ঞান বিনামূল্যে হওয়া উচিত। পৃথক অ্যাপ্লিকেশনের জন্য, কাস্টমাইজড ম্যাপ সমাধান তৈরি করতে এবং ডেটা এবং এর উপস্থাপনার উপর নিয়ন্ত্রণ বজায় রাখার জন্য OSM ডেটা নিজেই হোস্ট করা কার্যকর হতে পারে। স্ব-হোস্টিং OSM এর বেশ কিছু সুবিধা রয়েছে:

  • স্বাধীনতা: আপনি বাইরের পরিষেবার উপর নির্ভরশীল নন এবং কার্ডের ডেটার উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে।
  • অভিযোজনযোগ্যতা: আপনি আপনার নিজস্ব চাহিদা অনুযায়ী মানচিত্রের স্টাইলিং এবং প্রদর্শিত ডেটা কাস্টমাইজ করতে পারেন।
  • তথ্য সুরক্ষা: সমস্ত তথ্য স্থানীয়ভাবে হোস্ট করা হয়। কোনও বহিরাগত API কল করা হয় না।

মানচিত্র প্রদর্শনের জন্য দুটি প্রধান পদ্ধতি রয়েছে:

  • গ্রিড টাইলস: বিভিন্ন জুম স্তরের জন্য আগে থেকে তৈরি চিত্র ফাইল। এগুলি বাস্তবায়ন করা সহজ কিন্তু মানচিত্র শৈলী কাস্টমাইজ করার ক্ষেত্রে কম নমনীয়তা প্রদান করে।
  • ভেক্টর টাইলস: ভেক্টর (বিন্দু, রেখা, বহুভুজ) আকারে ভৌগোলিক তথ্য ধারণ করে যা ক্লায়েন্ট-সাইড রেন্ডার করা হয়। এটি মানচিত্রের নকশার নমনীয় সমন্বয় এবং সমস্ত জুম স্তরে একটি তীক্ষ্ণ প্রদর্শনের অনুমতি দেয়। তবে, রেন্ডারিংয়ের জন্য ক্লায়েন্ট ডিভাইসে আরও কম্পিউটিং পাওয়ার প্রয়োজন হয়।

ভেক্টর টাইলগুলি স্ব-হোস্টিংয়ের জন্য বিশেষভাবে উপযুক্ত কারণ এগুলি আরও কাস্টমাইজেশন বিকল্প প্রদান করে এবং আরও দক্ষ। ছোট এলাকা বিশিষ্ট আঞ্চলিক মানচিত্রের জন্য, প্রায় ১ গিগাবাইট হার্ড ডিস্ক স্থানই যথেষ্ট। টাইলস লোড করার সময় SSD ব্যবহার করা যুক্তিসঙ্গত কারণ এগুলি গতির সুবিধা প্রদান করে। স্ট্যাটিক ভেক্টর টাইলসের জন্য চলমান ম্যাপ সার্ভারের প্রয়োজন হয় না (যেমন, টাইল সার্ভার জিএল বা ম্যাপনিক), রক্ষণাবেক্ষণের প্রয়োজনীয়তা কম এবং সার্ভার লোড কম - এগুলি স্থির মানচিত্র বিভাগ সহ ছোট প্রকল্পের জন্য আদর্শ।

আমার ছোট্ট প্যাকেজ ওএসএমহেল্পার থেকে ভেক্টর টাইলস তৈরি এবং স্থাপনের প্রক্রিয়াটিকে সহজতর করে .osm.pbfফাইল। কাস্টম বাউন্ডিং বক্স ডেভেলপারদের নির্দিষ্ট ভৌগোলিক এলাকা বের করতে এবং ম্যাচিং বয়লারপ্লেট ফাইল তৈরি করতে দেয় যা সরাসরি সার্ভারে আপলোড করা যেতে পারে। এটি ওয়েব প্রকল্পগুলিতে OSM ডেটার একীকরণকে অনেক সহজ করে তোলে। osmhelper ব্যবহার করার জন্য, কিছু প্রস্তুতি প্রয়োজন। লাইব্রেরিটি এমন সরঞ্জামের উপর ভিত্তি করে তৈরি যেমন অসমিয়াম, এমবিটিল এবং টাইল প্রস্তুতকারক যেটি ইনস্টল করতে হবে।

অসমিয়াম স্থাপন

ওএসএম ডেটা প্রক্রিয়াকরণের জন্য অসমিয়াম একটি শক্তিশালী হাতিয়ার।

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 হল 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

টাইলমেকার স্থাপন

টাইলমেকার একটি ওপেন সোর্স টুল যা 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

এই প্রক্রিয়াটি দক্ষতার সাথে এবং গতিশীল মানচিত্র সার্ভারের প্রয়োজন ছাড়াই কাস্টমাইজড মানচিত্র বিভাগগুলি সরবরাহ করা সম্ভব করে তোলে। আপনার নিজস্ব প্রকল্পে ওপেনস্ট্রিটম্যাপ ডেটা একীভূত করা জটিল হতে পারে, বিশেষ করে যখন হোস্টিং এবং স্থাপনার কথা আসে। যেহেতু ম্যাপিং সমাধানের উপর গুগল ম্যাপের একচেটিয়া অধিকার রয়েছে, তাই অনেক ডেভেলপার বিকল্প খুঁজছেন। osmhelper আপনার নিজস্ব OpenStreetMap ডেটা হোস্ট করা শুরু করা সহজ করে তোলে। এটি আপনাকে আপনার মানচিত্রের উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়, কোনও API বিধিনিষেধ নেই এবং আপনার নিজস্ব ডেটা স্তর যুক্ত করার ক্ষমতা দেয়।

বেশিরভাগ মানুষই গুগল ম্যাপকে ডিজিটাল মানচিত্রের আদর্শ সমাধান হিসেবে জানেন। কিন্তু খুব কম লোকই জানেন যে ওপেনস্ট্রিটম্যাপ একটি দুর্দান্ত বিকল্প - কোনও বাণিজ্যিক বিধিনিষেধ বা লুকানো খরচ ছাড়াই। গুগল ম্যাপস এপিআই ব্যবহারের ফি চার্জ করে এবং ব্যবহারকারীর ডেটা সংগ্রহ করে, ওএসএম বিনামূল্যে, উন্মুক্ত এবং একটি বিশ্বব্যাপী সম্প্রদায় দ্বারা সমর্থিত। OSM হল মানচিত্র জগতের উইকিপিডিয়া - যে কেউ অবদান রাখতে পারে, রাস্তা, হাইকিং ট্রেইল বা POI (আগ্রহের স্থান) যোগ করতে পারে এবং এইভাবে মুক্ত বিশ্বের মানচিত্র উন্নত করতে পারে।

পেছনে