পাইথনের pygmaps লাইব্রেরি গুগল ম্যাপস জাভাস্ক্রিপ্ট API-এর একটি র্যাপার। এই লাইব্রেরি দিয়ে পাইথন ব্যবহারকারীরা matplotlib-এর মতো ইন্টারফেস ব্যবহার করে HTML এবং জাভাস্ক্রিপ্ট জেনারেট করতে পারেন এবং গুগল ম্যাপসের উপরে যেকোনো অতিরিক্ত তথ্য দেখাতে পারেন।
প্রয়োজনীয় লাইব্রেরি
এখানে শুধু pygmaps লাইব্রেরি ব্যবহার করা হবে। পিপ দিয়ে ইন্সটল করুন:
$pip install pygmaps (windows os)
$sudo pip3 install pygmaps (linux os)
এই প্রোগ্রামে নিচের ফাংশনালিটি দেখানো হবে:
- অক্ষাংশ, দ্রাঘিমাংশ ও জুম লেভেল দিয়ে মানচিত্র তৈরি করা।
- গ্রিড সেট করা (শুরু ও শেষ অক্ষাংশ/দ্রাঘিমাংশ এবং গ্রিড আকার দিয়ে)।
- মানচিত্রে পয়েন্ট যোগ করা এবং রঙিন করা।
- মানচিত্রে একটি পয়েন্টের চারদিকে বৃত্ত আঁকা (রেডিয়াস মিটারে)।
- অক্ষাংশ ও দ্রাঘিমাংশের লিস্ট দিয়ে পথ আঁকা।
বাস্তবায়ন কোড
import pygmaps
########## কনস্ট্রাক্টর: pygmaps.maps(latitude, longitude, zoom) ##############################
# വിവরন: মানচিত্রের কেন্দ্রবিন্দুর অক্ষাংশ, দ্রাঘিমাংশ এবং জুম লেভেল দিয়ে মানচিত্র ইনিশিয়ালাইজ করুন
# প্যারামিটার১: latitude (float) মানচিত্রের কেন্দ্রবিন্দুর অক্ষাংশ
# প্যারামিটার২: longitude (float) মানচিত্রের কেন্দ্রবিন্দুর দ্রাঘিমাংশ
# প্যারামিটার৩: zoom (int) মানচিত্রের জুম লেভেল ০~২০
# রিটার্ন: pygmaps ইনস্ট্যান্স
#========================================================================================
mymap = pygmaps.pygmaps(17.45, 78.29, 15)
########## ফাংশন: setgrids(start-Lat, end-Lat, Lat-interval, start-Lng, end-Lng, Lng-interval) ######
# বিবরণ: মানচিত্রে গ্রিড সেট করুন
# প্যারামিটার১: start-Lat (float), গ্রিডের ন্যূনতম অক্ষাংশ
# প্যারামিটার২: end-Lat (float), গ্রিডের সর্বোচ্চ অক্ষাংশ
# প্যারামিটার৩: Lat-interval (float) গ্রিডের আকার অক্ষাংশে
# প্যারামিটার৪: start-Lng (float), গ্রিডের ন্যূনতম দ্রাঘিমাংশ
# প্যারামিটার৫: end-Lng (float), গ্রিডের সর্বোচ্চ দ্রাঘিমাংশ
# প্যারামিটার৬: Lng-interval (float) গ্রিডের আকার দ্রাঘিমাংশে
# রিটার্ন: কিছুই না
#========================================================================================
mymap.setgrids(17.45, 17.46, 0.001, 78.29, 78.30, 0.001)
########## ফাংশন: addpoint(latitude, longitude, [color])#############################
# বিবরণ: মানচিত্রে একটি পয়েন্ট যোগ করুন এবং প্রদর্শন করুন, রঙ অপশনাল (ডিফল্ট লাল)
# প্যারামিটার১: latitude (float) পয়েন্টের অক্ষাংশ
# প্যারামিটার২: longitude (float) পয়েন্টের দ্রাঘিমাংশ
# প্যারামিটার৩: color (string) মানচিত্রে দেখানোর রঙ, HTML রঙ কোড ব্যবহার করুন
# HTML COLOR CODE: https://www.computerhope.com/htmcolor.htm
# উদাহরণ: লাল "#FF0000", নীল "#0000FF", সবুজ "#00FF00"
# রিটার্ন: কিছুই না
#========================================================================================
mymap.addpoint(17.45, 78.29, "#FF0000", "Hello")
########## ফাংশন: addradpoint(latitude, longitude, radius, [color])##################
# বিবরণ: একটি পয়েন্টের চারদিকে রেডিয়াস (মিটার) দিয়ে বৃত্ত আঁকুন
# প্যারামিটার১: latitude (float) পয়েন্টের অক্ষাংশ
# প্যারামিটার২: longitude (float) পয়েন্টের দ্রাঘিমাংশ
# প্যারামিটার৩: radius (float), রেডিয়াস মিটারে
# প্যারামিটার৪: color (string) মানচিত্রে দেখানোর রঙ, HTML রঙ কোড
# রিটার্ন: কিছুই না
#========================================================================================
mymap.addradpoint(17.45, 78.29, 150, "#0000FF")
########## ফাংশন: addpath(path, [color])##############################################
# বিবরণ: মানচিত্রে পথ যোগ করুন, পথের ডেটা স্ট্রাকচার হলো পয়েন্টের লিস্ট
# প্যারামিটার১: path (কোঅর্ডিনেটের লিস্ট) উদাহরণ: [(lat1,lng1),(lat2,lng2),...]
# প্যারামিটার২: color (string) মানচিত্রে দেখানোর রঙ, HTML রঙ কোড
# রিটার্ন: কিছুই না
#========================================================================================
path = [(17.45, 78.29), (17.55, 78.39), (17.65, 78.49)]
mymap.addpath(path, "#00FF00")
########## ফাংশন: draw(file)######################################################
# বিবরণ: HTML মানচিত্র ফাইল তৈরি করুন (.html)
# প্যারামিটার১: file (string) মানচিত্রের পথ ও ফাইল নাম
# রিটার্ন: কিছুই না, নির্দিষ্ট ডিরেক্টরিতে HTML ফাইল জেনারেট করবে
#========================================================================================
mymap.draw('./mymap.html')
print('OK')
দ্রষ্টব্য: mymap.addpoint ফাংশন চালানোর সময় TypeError হতে পারে, যেমন:
TypeError: addpoint() takes from 3 to 4 positional arguments but 5 were given
এটি এড়াতে pygmaps.py প্যাকেজের addpoint ফাংশনে title আর্গুমেন্ট যোগ করুন।
আউটপুট

উপরের মানচিত্র থেকে দেখা যাচ্ছে যে একই মানচিত্রে একাধিক ফাংশনালিটি ভিজ্যুয়ালাইজ করা সম্ভব।