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

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

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

আপনার ম্যাপে প্যাডিং যোগ করতে, একটি UIEdgeInsets অবজেক্ট তৈরি করুন এবং এটি
GMSMapView-এ পাস করুন।padding প্রপার্টি।
Swift
// 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
Objective-C
// 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: ব্যবহার করুন।
Swift
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
Objective-C
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;
আপনার ম্যাপের জন্য কাস্টম লাইট স্টাইল ও ডার্ক স্টাইল তৈরি করতে, ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং ব্যবহার করুন।