ম্যাপ কনফিগার করা

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

iOS-এর জন্য Maps SDK ব্যবহার করে iOS অ্যাপে যোগ করা ম্যাপ কীভাবে কনফিগার করতে হয়, এই ওভারভিউতে তা বর্ণনা করা হয়েছে।

এক নজরে

আপনার অ্যাপে ম্যাপ যোগ করার পরে, আপনি ম্যাপের প্রাথমিক বিকল্প এবং রানটাইম সেটিংস কনফিগার করতে পারবেন। ম্যাপ কন্টেনার যোগ করার ব্যাপারে আরও জানতে, ম্যাপ যোগ করুন বিকল্প দেখুন।

প্রাথমিক ম্যাপ সেটিংসে নিম্নলিখিত বিষয়গুলি অন্তর্ভুক্ত থাকে:

রানটাইমে আপনি এইসব সেটিংস এবং কিছু অতিরিক্ত সেটিংস কনফিগার করতে পারবেন GMSMapView অবজেক্ট আপডেট করে।

ম্যাপের বিকল্প

আপনার ম্যাপ ভিউ শুরু করার সময়, কনফিগারেশন বিকল্প GMSMapViewOptions-এর সাথে সেট করা হয়। বিকল্পের প্রপার্টির মধ্যে frame, camera, mapID বা backgroundColor অন্তর্ভুক্ত।

ম্যাপের বিকল্প
ফ্রেম
ভ্যালু: CGRect
ম্যাপ ফ্রেম। CGRectZero-তে ডিফল্ট করা হয়।
ক্যামেরা
ভ্যালু: GMSCameraPosition
ডিফল্ট ম্যাপ ক্যামেরা পজিশন।
mapID
ভ্যালু: GMSMapID
Google 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 মেথড কল করে ট্রাফিক লেয়ার চালু বা বন্ধ করতে পারবেন। ম্যাপে ট্রাফিক লেয়ার কেমন দেখতে হতে পারে তা নিচের উদাহরণে দেখানো হয়েছে।

Google ম্যাপে ট্রাফিক লেয়ার
দেখানো হচ্ছে

ট্রানজিট লেয়ার

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

আপনি যদি কোনও পাবলিক এজেন্সি হন যা আপনার শহরের পাবলিক ট্রান্সপোর্ট তত্ত্বাবধান করে এবং আপনার ডেটা অন্তর্ভুক্ত করতে চান, তাহলে আরও জানতে Google Transit পার্টনার প্রোগ্রাম সাইটে যান।

ম্যাপে ট্রানজিট লেয়ার কেমন দেখতে হতে পারে তা নিচের উদাহরণে দেখানো হয়েছে।

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 বিল্ডিং দেখা যাবে, যেমনটি দেখা যাচ্ছে নিচে সিয়াটেল, ওয়াশিংটনের ছবিতে।

সিয়াটেল, ওয়াশিংটনের বিল্ডিংয়ের 3D ম্যাপ।

আপনি সংশ্লিষ্ট GMSMapView প্রপার্টি Swift বা Objective-C-তে সেট করে 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;

আপনার ম্যাপের জন্য কাস্টম লাইট স্টাইল ও ডার্ক স্টাইল তৈরি করতে, ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং ব্যবহার করুন।