এই সংক্ষিপ্ত বিবরণে বর্ণনা করা হয়েছে, কীভাবে Maps SDK for iOS ব্যবহার করে একটি iOS অ্যাপে যুক্ত করা মানচিত্র কনফিগার করতে হয়।
সংক্ষিপ্ত বিবরণ
আপনার অ্যাপে একটি ম্যাপ যোগ করার পরে, আপনি ম্যাপটির প্রাথমিক অপশন এবং রানটাইম সেটিংস কনফিগার করতে পারেন। একটি ম্যাপ কন্টেইনার যোগ করার বিষয়ে বিস্তারিত জানতে, “ Add a map” দেখুন।
প্রাথমিক মানচিত্র সেটিংসে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত রয়েছে:
- ক্যামেরার অবস্থান, যার মধ্যে রয়েছে: অবস্থান, জুম, বিয়ারিং এবং টিল্ট। ক্যামেরার অবস্থান সম্পর্কে বিস্তারিত জানতে ক্যামেরা এবং ভিউ দেখুন।
- মানচিত্রের পটভূমির রঙ ।
- মানচিত্রের ধরণ ।
- প্রদর্শন করার জন্য UI উপাদানগুলো , যেমন জুম বাটন এবং কম্পাস।
- সক্রিয় করার অঙ্গভঙ্গিগুলো ।
রানটাইমে আপনি GMSMapView অবজেক্টটি আপডেট করার মাধ্যমে এই সেটিংসগুলো এবং কিছু অতিরিক্ত সেটিংস কনফিগার করতে পারেন।
মানচিত্রের বিকল্পগুলি
আপনার ম্যাপ ভিউ চালু করার সময়, GMSMapViewOptions ব্যবহার করে কনফিগারেশন অপশনগুলো সেট করা হয়। অপশন প্রপার্টিগুলোর মধ্যে frame , camera , mapID বা backgroundColor অন্তর্ভুক্ত।
| মানচিত্রের বিকল্পগুলি | |
|---|---|
| ফ্রেম | মান: CGRect মানচিত্রের ফ্রেম। ডিফল্ট মান হলো CGRectZero। |
| ক্যামেরা | মান: GMSCameraPosition মানচিত্রে ক্যামেরার ডিফল্ট অবস্থান। |
| মানচিত্র আইডি | মান: GMSMapID গুগল ম্যাপ আইডি। ঐচ্ছিক প্যারামিটার। |
| পটভূমির রঙ | মান: UIColor ডিফল্ট হিসেবে UIColor.lightGray ব্যবহৃত হয়। |
মানচিত্রের বিকল্পগুলি কনফিগার করুন
আপনি হয় আপনার নিজস্ব অপশন প্রোপার্টি সেট করতে পারেন, অথবা ডিফল্ট মান সহ একটি ইনস্ট্যানসিয়েটেড GMSMapViewOptions সরাসরি GMSMapView তে পাস করতে পারেন।
সুইফট
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options)
উদ্দেশ্য-সি
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
ডিফল্ট মান সহ একটি GMSMapViewOptions অবজেক্ট সরাসরি GMSMapView তে পাস করার একটি উদাহরণ এখানে দেওয়া হলো।
সুইফট
let options = GMSMapViewOptions() let mapView = GMSMapView(options:options) //initialized with default values
উদ্দেশ্য-সি
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values
পটভূমির রঙ কনফিগার করুন
ডার্ক মোডে কাজ করার সময় বা ম্যাপ ভিউ পরিবর্তন করার সময়, ডিফল্ট ম্যাপ ব্যাকগ্রাউন্ড কালার পরিবর্তন করা দরকার হতে পারে। ম্যাপ অপশনের backgroundColor প্রপার্টি সেট করার মাধ্যমে এটি করা যায়।
সুইফট
let options = GMSMapViewOptions() options.backgroundColor = UIColor.yellowColor let mapView = GMSMapView(options:options)
উদ্দেশ্য-সি
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.backgroundColor = UIColor.yellowColor; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
মানচিত্রের প্রকারভেদ
আপনি বিভিন্ন ধরণের মানচিত্রের যেকোনো একটি দিয়ে আপনার মানচিত্রটি সাজিয়ে নিতে পারেন। একটি মানচিত্রের ধরণ তার সামগ্রিক উপস্থাপনাকে নিয়ন্ত্রণ করে। উদাহরণস্বরূপ, একটি অ্যাটলাসে সাধারণত রাজনৈতিক মানচিত্র থাকে যা সীমানা দেখানোর উপর আলোকপাত করে, এবং সড়ক মানচিত্র থাকে যা একটি শহর বা অঞ্চলের সমস্ত রাস্তা দেখায়। iOS-এর জন্য Maps SDK নিম্নলিখিত ধরণের মানচিত্র সরবরাহ করে:
| মানচিত্রের ধরন | |
|---|---|
| স্বাভাবিক | মান: kGMSTypeNormal একটি সাধারণ সড়ক মানচিত্র। এতে রাস্তা, মানুষের তৈরি কিছু স্থাপনা এবং নদীর মতো গুরুত্বপূর্ণ প্রাকৃতিক বৈশিষ্ট্য দেখানো হয়। রাস্তা ও স্থাপনার নামও দেখা যায়। মানচিত্রের রঙের বিন্যাস গাঢ়, হালকা অথবা সিস্টেম সেটিংস অনুযায়ী সেট করার সুবিধা রয়েছে। |
| হাইব্রিড | মান: kGMSTypeHybrid স্যাটেলাইট থেকে তোলা ছবির তথ্যের সাথে রাস্তার মানচিত্র যুক্ত করা হয়েছে। রাস্তা এবং অন্যান্য বৈশিষ্ট্যের নামও দেখা যাচ্ছে। |
| স্যাটেলাইট | মান: kGMSTypeSatellite স্যাটেলাইট থেকে তোলা ছবির তথ্য। রাস্তা এবং অন্যান্য বৈশিষ্ট্যের নাম দেখা যাচ্ছে না। |
| ভূখণ্ড | মান: kGMSTypeTerrain ভূসংস্থানিক তথ্য। মানচিত্রটিতে রঙ, সমোচ্চ রেখা ও লেবেল এবং পরিপ্রেক্ষিতগত ছায়া অন্তর্ভুক্ত রয়েছে। কিছু রাস্তা ও লেবেলও দৃশ্যমান। মানচিত্রের রঙের বিন্যাসকে গাঢ়, হালকা অথবা সিস্টেম সেটিংস অনুসরণ করার জন্য সেট করা যায়। |
| কোনোটিই না | মান: kGMSTypeNone কোনো ম্যাপ টাইল থাকবে না। বেস ম্যাপ টাইলগুলো রেন্ডার করা হবে না। এই মোডটি টাইল লেয়ারের সাথে একত্রে ব্যবহার করা উপযোগী। ম্যাপের ধরন ‘none’ সেট করা থাকলে ট্র্যাফিক ডেটা প্রদর্শন নিষ্ক্রিয় থাকে। |
মানচিত্রের ধরণ পরিবর্তন করুন
মানচিত্রের ধরন নির্ধারণ করতে, GMSMapView.mapType প্রপার্টিতে একটি নতুন মান অ্যাসাইন করুন। উদাহরণস্বরূপ, স্যাটেলাইট মানচিত্রের ধরন প্রদর্শন করতে:
সুইফট
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options) mapView.mapType = .satellite
উদ্দেশ্য-সি
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.mapType = kGMSTypeSatellite;
নিচের চুজারে একই অবস্থানের জন্য টেরেইন, নরমাল এবং হাইব্রিড ম্যাপের একটি তুলনা দেখানো হয়েছে:
অভ্যন্তরীণ মানচিত্র
উচ্চ জুম স্তরে, iOS-এর জন্য Maps SDK বিমানবন্দর, শপিং মল, বড় খুচরা দোকান এবং ট্রানজিট স্টেশনের মতো অভ্যন্তরীণ স্থানগুলির ফ্লোর প্ল্যান দেখাবে। অভ্যন্তরীণ ফ্লোর প্ল্যানগুলি 'সাধারণ' ম্যাপ টাইপের ( kGMSTypeNormal ) জন্য ডিফল্ট ম্যাপ টাইলগুলিতে সমন্বিত থাকে, এবং ব্যবহারকারী জুম ইন করলে তা স্বয়ংক্রিয়ভাবে চালু হয় ও ম্যাপ জুম আউট করলে ধীরে ধীরে অদৃশ্য হয়ে যায়।
GMSMapView এর indoorEnabled প্রপার্টিকে NO তে সেট করে আপনি ইনডোর ম্যাপ নিষ্ক্রিয় করতে পারেন।
সুইফট
mapView.isIndoorEnabled = false
উদ্দেশ্য-সি
mapView.indoorEnabled = NO;
বিকল্পভাবে, আপনি শুধু ফ্লোর পিকার কন্ট্রোলটি নিষ্ক্রিয় করতে পারেন।
ফ্লোর প্ল্যান যোগ করুন
নির্বাচিত কিছু স্থানে ফ্লোর প্ল্যান পাওয়া যায়। যদি আপনার আবেদনে তুলে ধরতে চান এমন কোনো ভবনের ফ্লোর প্ল্যানের তথ্য পাওয়া না যায়, তাহলে আপনি:
- সরাসরি গুগল ম্যাপসে ফ্লোর প্ল্যান যোগ করুন । এর ফলে আপনার প্ল্যানগুলো গুগল ম্যাপসের সকল ব্যবহারকারীর কাছে উপলব্ধ হবে।
- ফ্লোর প্ল্যানকে গ্রাউন্ড ওভারলে হিসেবে প্রদর্শন করুন। এর ফলে শুধুমাত্র আপনার অ্যাপ্লিকেশনের ব্যবহারকারীরাই আপনার ফ্লোর প্ল্যানগুলো দেখতে পারবেন।
ট্র্যাফিক স্তর
আপনি আপনার ব্যবহারকারীদের মানচিত্রের উপরে ট্র্যাফিক ঘনত্বের তথ্য সহ দেখার সুবিধা দিতে পারেন। এটি তাদের স্থানীয় ট্র্যাফিক পরিস্থিতির একটি চাক্ষুষ সারাংশ প্রদান করে। আপনি trafficEnabled মেথডটি কল করে ট্র্যাফিক লেয়ারটি চালু বা বন্ধ করতে পারেন। নিচের উদাহরণটি দেখায় যে একটি মানচিত্রে ট্র্যাফিক লেয়ারটি কেমন দেখতে হতে পারে।

ট্রানজিট স্তর
iOS-এর জন্য Maps SDK আপনাকে transitEnabled মেথড ব্যবহার করে আপনার ম্যাপে একটি শহরের গণপরিবহন নেটওয়ার্ক প্রদর্শন করতে দেয়। যখন ট্র্যাফিক লেয়ারটি সক্রিয় করা হয় এবং ম্যাপটি ট্রানজিট তথ্য সমর্থনকারী কোনো শহরের উপর কেন্দ্র করে থাকে, তখন ম্যাপটি প্রধান ট্রানজিট লাইনগুলোকে মোটা, রঙিন লাইন হিসেবে প্রদর্শন করবে। লাইনের রঙ ট্রানজিট লাইন অপারেটরের দেওয়া তথ্যের উপর ভিত্তি করে নির্ধারণ করা হয়। ট্রানজিট লেয়ারটি সক্রিয় করলে ট্রানজিট রুটগুলোকে আরও ভালোভাবে ফুটিয়ে তোলার জন্য মূল ম্যাপের স্টাইল পরিবর্তিত হবে।
আপনি যদি আপনার শহরের গণপরিবহন তত্ত্বাবধানকারী কোনো সরকারি সংস্থা হন এবং আপনার ডেটা অন্তর্ভুক্ত করতে চান, তাহলে আরও জানতে গুগল ট্রানজিট পার্টনার প্রোগ্রাম সাইটটি দেখুন।
নিম্নলিখিত উদাহরণটি দেখায় যে একটি মানচিত্রে ট্রানজিট লেয়ারটি কেমন দেখতে হতে পারে।

প্রবেশগম্যতা
ডিফল্টরূপে, ম্যাপের অ্যাক্সেসিবিলিটি এলিমেন্টগুলো লুকানো থাকে। আপনি GMSMapView এর accessibilityElementsHidden প্রপার্টিকে NO তে সেট করে অ্যাক্সেসিবিলিটি সক্রিয় করতে পারেন। এর ফলে ওভারলে অবজেক্টগুলোর (যেমন GMSMarker ও ইনফো উইন্ডো, GMSPolyline ইত্যাদি) জন্য অ্যাক্সেসিবিলিটি এলিমেন্টগুলো তৈরি হয়।
সুইফট
mapView.accessibilityElementsHidden = false
উদ্দেশ্য-সি
mapView.accessibilityElementsHidden = NO;
এই প্রপার্টিটি অনানুষ্ঠানিক UIAccessibility প্রোটোকল অনুযায়ী কাজ করে, তবে iOS-এর জন্য Maps SDK-তে এর ডিফল্ট মান হলো YES ।
আমার অবস্থান
ডিফল্টরূপে, মানচিত্রে কোনো অবস্থানের তথ্য দেখানো হয় না। আপনি GMSMapView তে myLocationEnabled সেট করে নীল "আমার অবস্থান" বিন্দু এবং কম্পাসের দিকনির্দেশনা সক্রিয় করতে পারেন।
সুইফট
mapView.isMyLocationEnabled = true
উদ্দেশ্য-সি
mapView.myLocationEnabled = YES;
এই বৈশিষ্ট্যটি সক্রিয় করলে myLocation প্রপার্টির মাধ্যমে ব্যবহারকারীর বর্তমান অবস্থান পাওয়া যায়। এই প্রপার্টিটি তাৎক্ষণিকভাবে উপলব্ধ নাও হতে পারে - উদাহরণস্বরূপ, যদি iOS ব্যবহারকারীকে এই ডেটা অ্যাক্সেস করার অনুমতি দিতে বলে। এই ক্ষেত্রে এর মান nil থাকে।
সুইফট
print("User's location: \(String(describing: mapView.myLocation))")
উদ্দেশ্য-সি
NSLog(@"User's location: %@", mapView.myLocation);
ত্রিমাত্রিক ভবন
কাছ থেকে দেখলে অনেক শহরের ভবনগুলোই ত্রিমাত্রিক (3D) রূপে দৃশ্যমান হয়, যেমনটি নিচে ওয়াশিংটন রাজ্যের সিয়াটলের ছবিতে দেখা যাচ্ছে।

আপনি Swift বা Objective-C-তে সংশ্লিষ্ট GMSMapView প্রপার্টি সেট করে 3D বিল্ডিংগুলো নিষ্ক্রিয় করতে পারেন, যেমনটি নিচে দেখানো হয়েছে:
সুইফট
mapView.isBuildingsEnabled = false
উদ্দেশ্য-সি
[mapView setBuildingsEnabled:NO];
মানচিত্র প্যাডিং
একটি গুগল ম্যাপ GMSMapView দ্বারা সংজ্ঞায়িত সম্পূর্ণ অঞ্চলটি পূরণ করার জন্য ডিজাইন করা হয়েছে। ম্যাপটি দেখতে কেমন হবে এবং এর আচরণ কেমন হবে, তার বিভিন্ন দিক এই ভিউটির মাত্রা দ্বারা নির্ধারিত হয়:
- ক্যামেরার লক্ষ্যবস্তুটি প্যাডযুক্ত অঞ্চলের কেন্দ্রকে প্রতিফলিত করে।
- মানচিত্রের নিয়ন্ত্রণগুলো মানচিত্রের প্রান্তসীমার সাপেক্ষে স্থাপন করা হয়।
- কপিরাইট বিবৃতি বা গুগল লোগোর মতো আইনি তথ্য মানচিত্রের নিচের প্রান্তে প্রদর্শিত হয়।
আপনি GMSMapView এর padding প্রপার্টি ব্যবহার করে ম্যাপের কিনারা বরাবর প্যাডিং যোগ করতে পারেন। ম্যাপটি সম্পূর্ণ কন্টেইনার জুড়েই থাকে, কিন্তু টেক্সট ও কন্ট্রোলের অবস্থান, ম্যাপ জেসচার এবং ক্যামেরার মুভমেন্ট এমনভাবে কাজ করে যেন এটিকে একটি ছোট জায়গায় রাখা হয়েছে। এর ফলে নিম্নলিখিত পরিবর্তনগুলো দেখা যায়:
- এপিআই কল বা বাটন চাপার (যেমন, কম্পাস, আমার অবস্থান) মাধ্যমে ক্যামেরার নড়াচড়া প্যাড করা অঞ্চলের সাপেক্ষে হয়।
-
GMSMapView.projectionএমন একটি প্রজেকশন রিটার্ন করে যাতে শুধুমাত্র প্যাড করা অঞ্চলটি অন্তর্ভুক্ত থাকে। - UI কন্ট্রোলগুলো কন্টেইনারের প্রান্ত থেকে নির্দিষ্ট সংখ্যক পয়েন্ট দূরত্বে স্থাপন করা হয়।
ম্যাপের কিছু অংশের উপর ওভারল্যাপ করে এমন UI ডিজাইন করার সময় প্যাডিং সহায়ক হতে পারে। উদাহরণস্বরূপ, ছবিতে, ম্যাপটির উপরের এবং ডান প্রান্ত বরাবর প্যাডিং করা হয়েছে। দৃশ্যমান ম্যাপ কন্ট্রোল এবং আইনি লেখা প্যাড করা অঞ্চলের (যা সবুজ রঙে দেখানো হয়েছে) প্রান্ত বরাবর প্রদর্শিত হয়, এবং ম্যাপটি (যা নীল রঙে দেখানো হয়েছে) সম্পূর্ণ কন্টেইনারটি জুড়ে থাকে। এই উদাহরণে, আপনি ম্যাপ কন্ট্রোলগুলোকে আড়াল না করেই ম্যাপের ডান পাশে একটি মেনু ভাসিয়ে রাখতে পারেন।

আপনার ম্যাপে প্যাডিং যোগ করতে, একটি UIEdgeInsets অবজেক্ট তৈরি করুন এবং সেটিকে GMSMapView padding প্রপার্টিতে পাস করুন।
সুইফট
// Insets are specified in this order: top, left, bottom, right let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0) mapView.padding = mapInsets
উদ্দেশ্য-সি
// Insets are specified in this order: top, left, bottom, right UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0); mapView.padding = mapInsets;
মানচিত্রের রঙের স্কিম
সাধারণ এবং ভূখণ্ড ধরনের মানচিত্রের জন্য, আপনি মানচিত্রের রঙের স্কিমটি গাঢ়, হালকা অথবা বর্তমান সিস্টেম সেটিংস ব্যবহার করার জন্য সেট করতে পারেন। উদাহরণস্বরূপ, আপনি দিনের সময় বা ডিভাইসটি ঘরের ভেতরে বা বাইরে ব্যবহারের উপর ভিত্তি করে মানচিত্রের রঙের স্কিমটি গাঢ় বা হালকা করতে পারেন।
ম্যাপের কালার স্কিম সেট ও আপডেট করতে GMSMapView overrideUserInterfaceStyle: ব্যবহার করুন।
সুইফট
let options = GMSMapViewOptions() // Map is init to use light mode by default. let mapView = GMSMapView(options: options) // Set map to use dark mode. mapView.overrideUserInterfaceStyle = .dark // Set map to use light mode. mapView.overrideUserInterfaceStyle = .light // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = .unspecified
উদ্দেশ্য-সি
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; // Map is init to always use light mode. GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; // Set map to use dark mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark; // Set map to use light mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;
আপনার ম্যাপের জন্য নিজস্ব লাইট ও ডার্ক স্টাইল তৈরি করতে ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং ব্যবহার করুন।