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

প্ল্যাটফর্ম বেছে নিন: 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 Maps-এ ট্রাফিক
লেয়ার দেখানো হচ্ছে

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

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

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

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

Google Maps-এ ট্রানজিট
লেয়ার দেখানো হচ্ছে

অ্যাক্সেসিবিলিটি

ডিফল্ট হিসেবে, ম্যাপে অ্যাক্সেসিবিলিটি এলিমেন্ট লুকানো থাকে। আপনি 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 ম্যাপ।

আপনি 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;

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