Maps SDK for Android Utility Library

প্ল্যাটফর্ম বেছে নিন: Android iOS

আপনার ম্যাপে যোগ করার জন্য উন্নত ফিচার খুঁজছেন? Maps SDK for Android Utility Library হল ক্লাসের একটি ওপেন-সোর্স লাইব্রেরি যা বিভিন্ন অ্যাপ্লিকেশনের জন্য উপযোগী। GitHub রিপোজিটরিতে ইউটিলিটি ক্লাস এবং একটি ডেমো অ্যাপ অন্তর্ভুক্ত থাকে যা প্রতিটি ক্লাসের ব্যবহার ব্যাখ্যা করে।

এই ভিডিওতে, ক্রিস ব্রডফুট ইউটিলিটি লাইব্রেরি নিয়ে আলোচনা করেছেন, যেখানে পলিলাইন ডিকোডিং, স্ফেরিক্যাল জিওমেট্রি এবং বাবল আইকনের উপর ফোকাস করা হয়েছে।

দ্রুত সেট-আপ

Maps SDK for Android Utility Library ইনস্টল করতে, সেট-আপ গাইড ফলো করুন।

ইউটিলিটি

GeoJSON লেয়ার সহ ম্যাপ

আপনার ম্যাপে GeoJSON ইমপোর্ট করা

আপনি GeoJSON ফর্ম্যাটে ফিচার স্টোর করতে পারবেন এবং ম্যাপের উপরে লেয়ার হিসেবে সেগুলি রেন্ডার করতে এই ইউটিলিটি ব্যবহার করতে পারবেন। ম্যাপে আপনার GeoJSON ডেটা যোগ করতে addLayer() কল করুন। এছাড়াও, আপনি addFeature() কল করে, GeoJsonFeature অবজেক্ট পাস করে, আলাদা আলাদা ফিচার যোগ করতে পারবেন।

বিস্তারিত জানতে, Google Maps Android GeoJSON ইউটিলিটি সংক্রান্ত ডকুমেন্টেশন দেখুন।

KML লেয়ার সহ ম্যাপ

আপনার ম্যাপে KML ইমপোর্ট করুন

এই ইউটিলিটি ব্যবহার করে, আপনি KML অবজেক্টকে ভৌগোলিক আকারে রূপান্তর করতে এবং ম্যাপের উপরে একটি লেয়ার হিসেবে রেন্ডার করতে পারবেন। ম্যাপে আপনার লেয়ার যোগ করতে addLayerToMap()-কে কল করুন। আপনি যেকোনও স্থানচিহ্ন, গ্রাউন্ডওভারলে, ডকুমেন্ট বা ফোল্ডারে getProperties() কল করে KML অবজেক্টের প্রপার্টি অ্যাক্সেস করতে পারবেন।

বিস্তারিত জানতে, Google Maps Android KML ইউটিলিটি সংক্রান্ত ডকুমেন্টেশন দেখুন।

হিটম্যাপ সহ ম্যাপ

আপনার ম্যাপে হিটম্যাপ যোগ করুন

হিটম্যাপ দর্শকদের ম্যাপে ডেটা পয়েন্টের ডিস্ট্রিবিউশন এবং আপেক্ষিক তীব্রতা বুঝতে সাহায্য করে। প্রতিটি লোকেশনে মার্কার প্লেস করার পরিবর্তে, হিটম্যাপ ডেটার ডিস্ট্রিবিউশন দেখানোর জন্য রঙ ও আকার ব্যবহার করে। একটি HeatmapTileProvider তৈরি করুন, এটিতে ম্যাপে উল্লেখযোগ্য স্থান দেখানো LatLng অবজেক্টের একটি সংগ্রহ পাস করুন। তারপর একটি নতুন TileOverlay তৈরি করুন, এটিকে হিটম্যাপ টাইল প্রোভাইডারে পাস করুন এবং ম্যাপে টাইল ওভারলে যোগ করুন।

বিস্তারিত জানতে, Google Maps Android হিটম্যাপ ইউটিলিটি-এর ডকুমেন্টেশন দেখুন।

বাবল আইকন সহ ম্যাপ

বাবল আইকন ব্যবহার করে মার্কার কাস্টমাইজ করুন

আপনার মার্কারের উপর তথ্যের স্নিপেট দেখাতে IconGenerator যোগ করুন। এই ইউটিলিটি আপনার মার্কার আইকনকে তথ্য উইন্ডোর মতো দেখানোর সুযোগ করে দেয়, যাতে মার্কার নিজেই টেক্সট ও অন্যান্য কন্টেন্ট ধারণ করতে পারে। সুবিধা হল, আপনি একই সময়ে একাধিক মার্কার খুলে রাখতে পারবেন, যেখানে একবারে শুধু একটি তথ্য উইন্ডো খোলা যায়। এছাড়াও, আপনি মার্কার স্টাইল করতে, মার্কার এবং/অথবা কন্টেন্টের ওরিয়েন্টেশন পরিবর্তন করতে এবং মার্কারের ব্যাকগ্রাউন্ড ইমেজ/নাইন-প্যাচ পরিবর্তন করতে পারেন।

মার্কার সহ ম্যাপ

মার্কার অ্যানিমেট করুন

আপনি কোনও মার্কার অ্যানিমেট করতে পারেন যাতে এটি বর্তমান অবস্থান থেকে নতুন লোকেশনে সহজে সরানো যায়। AnimationUtil ক্লাস এই ক্ষমতা প্রদান করে। এটি কীভাবে ব্যবহার করতে হয় তার উদাহরণ দেখতে, ইউটিলিটি লাইব্রেরির GitHub রিপোজিটরিতে AnimationUtilDemoActivity দেখুন।

ক্লাস্টার করা মার্কার সহ ম্যাপ

মার্কার ক্লাস্টার ম্যানেজ করা

ClusterManager আপনাকে বিভিন্ন জুম লেভেলে একাধিক মার্কার ম্যানেজ করতে সাহায্য করে। এর অর্থ হল, আপনি ম্যাপে অনেক বেশি সংখ্যক মার্কার যোগ করতে পারবেন এবং ম্যাপটি পড়তে কোনও অসুবিধা হবে না। কোনও ব্যবহারকারী ম্যাপে বেশি জুম লেভেলে দেখলে, ম্যাপে আলাদা আলাদা মার্কার দেখা যায়। ব্যবহারকারী জুম আউট করে কম জুম লেভেলে নিয়ে গেলে, মার্কারগুলি একসাথে ক্লাস্টারে জড়ো হয়, যাতে ম্যাপ দেখতে সুবিধা হয়।

বিস্তারিত জানতে, Google Maps Android মার্কার ক্লাস্টারিং ইউটিলিটি-এর ডকুমেন্টেশন দেখুন।

একাধিক লেয়ার সহ ম্যাপ

একই ম্যাপে একাধিক লেয়ার যোগ করা

আপনি GeoJSON, KML এবং ক্লাস্টার থেকে ফিচার দেখাতে পারবেন—এর পাশাপাশি আপনার নিজস্ব মার্কার, পলিলাইন এবং পলিগন—সব একই ম্যাপে। এছাড়াও, প্রতিটি লেয়ারে ক্লিক লিসনার যোগ করে আপনি এইসব লেয়ার ইন্টার‍্যাক্টিভ করতে পারবেন। এটি করতে, MarkerManager, GroundOverlayManager, PolygonManager এবং PolylineManager ক্লাস ইনস্ট্যানশিয়েট করুন এবং সেট-আপ করার সময় GeoJsonLayer, KmlLayer এবং ClusterManager-এর কনস্ট্রাক্টরে সেগুলি পাস করুন। আপনি তারপর ম্যাপে নিজের মার্কার, পলিলাইন ও পলিগন যোগ করতে সরাসরি এইসব Manager ক্লাস ব্যবহার করতে পারবেন।

বিস্তারিত জানতে, Google Maps Android Multi Layer Demo-এর ডকুমেন্টেশন দেখুন।

এনকোড করা পলিলাইন সহ ম্যাপ

পলিলাইন এনকোড ও ডিকোড করুন

PolyUtil ক্লাস এনকোড করা পলিলাইন ও পলিগনকে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কে এবং স্থানাঙ্ককে এনকোড করা পলিলাইন ও পলিগনে কনভার্ট করে।

Google Maps-এ, অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক যা একটি পলিলাইন বা বহুভুজকে সংজ্ঞায়িত করে তা একটি এনকোড করা স্ট্রিং হিসাবে সংরক্ষণ করা হয়। পলিলাইন এনকোডিং-এর বিস্তারিত ব্যাখ্যা দেখুন। আপনি Google API থেকে পাওয়া উত্তরে এই এনকোড করা স্ট্রিং পেতে পারেন, যেমন Directions API (Legacy)।

আপনি Maps SDK for Android Utility Library-তে PolyUtil ব্যবহার করে অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কের ('LatLngs') ক্রমকে এনকোড করা পাথ স্ট্রিংয়ে এনকোড করতে এবং এনকোড করা পাথ স্ট্রিংকে LatLngs-এর ক্রমে ডিকোড করতে পারবেন। এটি Google Maps API ওয়েব পরিষেবার সাথে ইন্টারঅপারেবিলিটি নিশ্চিত করবে।

ম্যাপে দুটি বিন্দুর মধ্যে দূরত্ব গণনা করা হয়েছে

গোলাকার জ্যামিতির সাহায্যে দূরত্ব, ক্ষেত্রফল এবং হেডিং গণনা করুন

SphericalUtil-এ স্ফেরিক্যাল জিওমেট্রি ইউটিলিটি ব্যবহার করে, আপনি অক্ষাংশ এবং দ্রাঘিমাংশের উপর ভিত্তি করে দূরত্ব, এলাকা এবং হেডিং গণনা করতে পারেন। ইউটিলিটিতে উপলভ্য কিছু পদ্ধতি এখানে দেওয়া হল:

  • computeDistanceBetween() – দুটি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কের মধ্যে দূরত্ব, মিটারে, ফেরত দেয়।
  • computeHeading() – দুটি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কের মধ্যে ডিগ্রিতে বিয়ারিং দেখায়।
  • computeArea() – পৃথিবীর একটি বন্ধ পথের ক্ষেত্রফল, বর্গ মিটারে, দেখায়।
  • interpolate() – দুটি প্রদত্ত বিন্দুর মধ্যে দূরত্বের প্রদত্ত ভগ্নাংশে অবস্থিত একটি বিন্দুর অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক প্রদান করে। যেমন, আপনি এটি ব্যবহার করে দুটি পয়েন্টের মধ্যে মার্কার অ্যানিমেট করতে পারেন।

ইউটিলিটিতে পদ্ধতির সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

Street View-তে কোনও লোকেশন দেখা যাবে কিনা তা চেক করা

Street View-তে কোনও লোকেশন উপলভ্য কিনা তা চেক করুন

StreetViewUtil ক্লাস, Street View-তে কোনও লোকেশন কাজ করে কিনা তা চেক করার কার্যকারিতা প্রদান করে। এই মেটাডেটা ইউটিলিটি কল করে এবং শুধুমাত্র রেসপন্স OK হলে Street View প্যানোরামা যোগ করে, আপনি Android অ্যাপে Street View প্যানোরামা যোগ করার সময় সমস্যা এড়াতে পারবেন।

বিস্তারিত জানতে, GitHub-এ Street View মেটাডেটা ইউটিলিটি সম্পর্কিত ডকুমেন্টেশন দেখুন।