ক্যামেরা এবং ভিউ

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

iOS-এর জন্য Maps SDK-এর মাধ্যমে, আপনি মানচিত্রের ক্যামেরা পরিবর্তন করে মানচিত্রের ব্যবহারকারীর দৃষ্টিভঙ্গি পরিবর্তন করতে পারেন।

iOS-এর জন্য Maps SDK-এর সাহায্যে, আপনার ব্যবহারকারীরা তাদের প্রেক্ষাপটের জন্য উপযোগী একটি ওরিয়েন্টেশনে সামঞ্জস্য করতে আপনার মানচিত্রগুলিকে কাত করতে এবং ঘোরাতে পারে। যেকোনো জুম স্তরে, ব্যবহারকারীরা মানচিত্রটি প্যান করতে পারে বা খুব কম বিলম্বে এর দৃষ্টিকোণ পরিবর্তন করতে পারে।

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

মানচিত্রের দৃশ্য

iOS-এর জন্য মানচিত্র SDK আপনার ডিভাইসের স্ক্রিনে (একটি সমতল সমতল) বিশ্বের পৃষ্ঠ (একটি গোলক) প্রতিনিধিত্ব করতে Mercator প্রজেকশন ব্যবহার করে।

ক্যামেরার অবস্থান

মানচিত্র দৃশ্যটি একটি সমতল সমতলে নিচের দিকে তাকিয়ে থাকা ক্যামেরার মতো মডেল করা হয়েছে। ক্যামেরার অবস্থান (এবং তাই মানচিত্রের রেন্ডারিং) নিম্নলিখিত বৈশিষ্ট্যগুলি দ্বারা নির্দিষ্ট করা হয়েছে: লক্ষ্য (অক্ষাংশ/দ্রাঘিমাংশের অবস্থান) , বিয়ারিং , টিল্ট , এবং জুম

ক্যামেরা বৈশিষ্ট্য ডায়াগ্রাম

লক্ষ্য (অবস্থান)

ক্যামেরা টার্গেট হল মানচিত্রের কেন্দ্রের অবস্থান, অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট করা হয়েছে।

অক্ষাংশ -85 এবং 85 ডিগ্রীর মধ্যে হতে পারে, অন্তর্ভুক্ত। এই ব্যাপ্তির উপরে বা নীচের মানগুলিকে এই ব্যাপ্তির মধ্যে সবচেয়ে কাছের মানের সাথে আটকানো হবে৷ উদাহরণস্বরূপ, 100-এর একটি অক্ষাংশ নির্দিষ্ট করলে মানটি 85-এ সেট করা হবে। দ্রাঘিমাংশ -180 এবং 180 ডিগ্রির মধ্যে, অন্তর্ভুক্ত। এই পরিসরের উপরে বা নীচের মানগুলি এমনভাবে মোড়ানো হবে যে সেগুলি পরিসরের মধ্যে পড়ে (-180, 180)৷ উদাহরণস্বরূপ, 480, 840 এবং 1200 সবগুলি 120 ডিগ্রিতে মোড়ানো হবে।

বিয়ারিং (অভিযোজন)

ক্যামেরা বিয়ারিং কম্পাসের দিক নির্দেশ করে, সত্যিকারের উত্তর থেকে ডিগ্রীতে পরিমাপ করা হয়, মানচিত্রের উপরের প্রান্তের সাথে মিল রেখে। আপনি যদি মানচিত্রের কেন্দ্র থেকে মানচিত্রের উপরের প্রান্তে একটি উল্লম্ব রেখা আঁকেন, তাহলে ভারবহনটি ক্যামেরার শিরোনাম (ডিগ্রীতে পরিমাপ করা) সত্য উত্তরের সাথে সম্পর্কিত।

0 এর বিয়ারিং মানে মানচিত্রের শীর্ষটি সত্য উত্তরে নির্দেশ করে। একটি ভারবহন মান 90 মানে মানচিত্রের শীর্ষ বিন্দু পূর্বে (একটি কম্পাসে 90 ডিগ্রি)। মান 180 মানে মানচিত্রের শীর্ষ বিন্দু দক্ষিণে।

মানচিত্র API আপনাকে একটি মানচিত্রের বিয়ারিং পরিবর্তন করতে দেয়। উদাহরণস্বরূপ, কেউ গাড়ি চালাচ্ছেন তারা প্রায়শই তাদের ভ্রমণের দিকনির্দেশের সাথে সারিবদ্ধ করার জন্য একটি রাস্তার মানচিত্র ঘুরিয়ে দেন, যখন হাইকাররা একটি মানচিত্র এবং কম্পাস ব্যবহার করে সাধারণত মানচিত্রটিকে এমনভাবে নির্দেশ করে যাতে একটি উল্লম্ব রেখা উত্তর দিকে নির্দেশ করে।

কাত (দেখার কোণ)

কাত সরাসরি মানচিত্রের কেন্দ্রের অবস্থানের উপরে একটি চাপে ক্যামেরার অবস্থান নির্ধারণ করে, নাদির থেকে ডিগ্রীতে পরিমাপ করা হয় (ক্যামেরার নীচে সরাসরি নির্দেশ করা দিক)। 0 এর মান সরাসরি নিচে নির্দেশিত একটি ক্যামেরার সাথে মিলে যায়। 0-এর বেশি মানগুলি একটি ক্যামেরার সাথে মিলে যায় যা নির্দিষ্ট সংখ্যক ডিগ্রি দ্বারা দিগন্তের দিকে পিচ করা হয়৷ আপনি যখন দেখার কোণ পরিবর্তন করেন, তখন মানচিত্রটি দৃষ্টিকোণে প্রদর্শিত হয়, দূরের বৈশিষ্ট্যগুলি ছোট দেখায় এবং কাছাকাছি বৈশিষ্ট্যগুলি বড় দেখায়৷ নিম্নলিখিত চিত্রগুলি এটি প্রদর্শন করে।

নীচের চিত্রগুলিতে, দেখার কোণটি 0 ডিগ্রি। প্রথম চিত্রটি এর একটি পরিকল্পিত দেখায়; অবস্থান 1 হল ক্যামেরা অবস্থান, এবং অবস্থান 2 হল বর্তমান মানচিত্রের অবস্থান। ফলস্বরূপ মানচিত্রটি নীচে দেখানো হয়েছে।

18 এর জুম স্তরে 0 ডিগ্রি দেখার কোণে অবস্থান করা একটি ক্যামেরা সহ একটি মানচিত্রের স্ক্রিনশট৷
ক্যামেরার ডিফল্ট দেখার কোণ সহ মানচিত্রটি প্রদর্শিত হয়।
ডায়াগ্রাম যা ক্যামেরার ডিফল্ট অবস্থান দেখায়, সরাসরি মানচিত্রের অবস্থানের উপরে, 0 ডিগ্রি কোণে।
ক্যামেরার ডিফল্ট দেখার কোণ।

নীচের চিত্রগুলিতে, দেখার কোণটি 45 ডিগ্রি। লক্ষ্য করুন যে ক্যামেরাটি 3 অবস্থানে সোজা ওভারহেড (0 ডিগ্রি) এবং স্থল (90 ডিগ্রি) এর মধ্যে একটি চাপ বরাবর অর্ধেক সরে যায়। ক্যামেরাটি এখনও মানচিত্রের কেন্দ্র বিন্দুতে নির্দেশ করছে, কিন্তু অবস্থান 4 এ লাইন দ্বারা প্রতিনিধিত্ব করা এলাকাটি এখন দৃশ্যমান।

18 এর জুম স্তরে 45 ডিগ্রি দেখার কোণে অবস্থান করা একটি ক্যামেরা সহ একটি মানচিত্রের স্ক্রিনশট৷
মানচিত্রটি 45 ডিগ্রি দেখার কোণ সহ প্রদর্শিত হয়েছে।
চিত্রটি দেখায় যে ক্যামেরার দেখার কোণটি 45 ডিগ্রিতে সেট করা হয়েছে, জুম স্তরটি এখনও 18-এ সেট করা হয়েছে৷
45 ডিগ্রির একটি ক্যামেরা দেখার কোণ।

এই স্ক্রিনশটের মানচিত্রটি এখনও মূল মানচিত্রের মতো একই বিন্দুতে কেন্দ্রীভূত, তবে আরও বৈশিষ্ট্য মানচিত্রের শীর্ষে উপস্থিত হয়েছে৷ আপনি যখন 45 ডিগ্রির বেশি কোণ বাড়ান, ক্যামেরা এবং মানচিত্রের অবস্থানের মধ্যে বৈশিষ্ট্যগুলি আনুপাতিকভাবে বড় দেখায়, যখন মানচিত্রের অবস্থানের বাইরের বৈশিষ্ট্যগুলি আনুপাতিকভাবে ছোট দেখায়, একটি ত্রিমাত্রিক প্রভাব দেয়৷

জুম

ক্যামেরার জুম স্তর মানচিত্রের স্কেল নির্ধারণ করে। বড় জুম লেভেলে স্ক্রিনে আরও বিস্তারিত দেখা যায়, যখন ছোট জুম লেভেলে স্ক্রিনে বিশ্বের আরও অনেক কিছু দেখা যায়। জুম লেভেল 0 এ, মানচিত্রের স্কেল এমন যে সমগ্র বিশ্বের প্রস্থ প্রায় 256 পয়েন্ট।

1 দ্বারা জুম স্তর বৃদ্ধি পর্দায় বিশ্বের প্রস্থ দ্বিগুণ. তাই জুম স্তর N এ, বিশ্বের প্রস্থ প্রায় 256 * 2 N পয়েন্ট। উদাহরণস্বরূপ, জুম লেভেল 2 এ, সমগ্র বিশ্ব প্রায় 1024 পয়েন্ট প্রশস্ত।

জুম স্তর একটি পূর্ণসংখ্যা হতে হবে না. মানচিত্র দ্বারা অনুমোদিত জুম স্তরের পরিসীমা লক্ষ্য, মানচিত্রের ধরন এবং স্ক্রীনের আকার সহ বেশ কয়েকটি কারণের উপর নির্ভর করে। সীমার বাইরের যেকোনো সংখ্যা পরবর্তী নিকটতম বৈধ মানতে রূপান্তরিত হবে, যেটি হয় সর্বনিম্ন জুম স্তর বা সর্বোচ্চ জুম স্তর হতে পারে৷ নিম্নলিখিত তালিকাটি আনুমানিক বিশদ স্তর দেখায় যা আপনি প্রতিটি জুম স্তরে দেখতে আশা করতে পারেন:

  • 1: বিশ্ব
  • 5: ল্যান্ডমাস/মহাদেশ
  • 10: শহর
  • 15: রাস্তা
  • 20: বিল্ডিং
নিম্নলিখিত চিত্রগুলি বিভিন্ন জুম স্তরের চাক্ষুষ চেহারা দেখায়:
5 এর জুম স্তরে একটি মানচিত্রের স্ক্রিনশট৷
জুম লেভেল 5 এ একটি মানচিত্র।
15 এর জুম স্তরে একটি মানচিত্রের স্ক্রিনশট৷
জুম লেভেল 15 এ একটি মানচিত্র।
জুম স্তর 20 এ একটি মানচিত্রের স্ক্রিনশট
জুম স্তর 20 এ একটি মানচিত্র।

প্রাথমিক ক্যামেরা অবস্থান সেট করুন

GMSCameraPosition অবজেক্ট ব্যবহার করে প্রাথমিক ক্যামেরার অবস্থান সেট করুন, যা আপনাকে বিয়ারিং, টিল্ট এবং জুমের সাথে লক্ষ্যের অক্ষাংশ এবং দ্রাঘিমাংশ সেট করতে দেয়।

প্রাথমিক ক্যামেরা অবস্থান সেট করতে, একটি GMSMapViewOptions অবজেক্ট তৈরি করুন এবং camera বৈশিষ্ট্যটিকে একটি GMSCameraPosition এ সেট করুন। তারপর GMSMapView সুবিধার কনস্ট্রাক্টরের কাছে আপনার বিকল্পগুলি পাস করুন।

সুইফট

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 16)
let mapView = GMSMapView(options:options)

উদ্দেশ্য-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:16];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

আপনি ডিফল্ট UIView init পদ্ধতি ব্যবহার করে GMSMapView অবজেক্ট তৈরি করতে পারেন। এই ক্ষেত্রে, ক্যামেরার অবস্থান ডিফল্ট অবস্থানে শুরু হয় এবং আপনি এটি তৈরি করার পরে পরিবর্তন করেন।

সুইফট

let options = GMSMapViewOptions()
options.frame = self.view.bounds
let mapView = GMSMapView(options:options)

উদ্দেশ্য-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.frame = self.view.bounds;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

ক্যামেরার অবস্থান পরিবর্তন করুন

অবস্থান, বিয়ারিং, টিল্ট এবং জুম সেট করতে আপনি প্রোগ্রাম্যাটিকভাবে ক্যামেরার অবস্থান পরিবর্তন করতে পারেন। যদিও GMSMapView বিভিন্ন পদ্ধতি প্রদান করে যা আপনি ক্যামেরার অবস্থান পরিবর্তন করতে ব্যবহার করতে পারেন, আপনি সাধারণত GMSCameraPosition বা GMSCameraUpdate ব্যবহার করেন:

  • GMSCameraPosition বৈশিষ্ট্য এবং পদ্ধতি রয়েছে যা আপনি ক্যামেরার প্রতিটি অবস্থানের প্যারামিটার পরিবর্তন করতে ব্যবহার করেন: লক্ষ্য, বিয়ারিং, টিল্ট এবং জুম।

  • GMSCameraUpdate আপনাকে লক্ষ্য, বিয়ারিং, টিল্ট এবং জুম পরিবর্তন করতে দেয় এবং এতে স্ক্রলিং, উন্নত জুমিং, ক্যামেরাকে পূর্বনির্ধারিত সীমানার মধ্যে কেন্দ্রীভূত করা এবং আরও অনেক কিছু সমর্থন করার জন্য অতিরিক্ত সুবিধার পদ্ধতি রয়েছে।

আপনি যখন ক্যামেরাটি সরান, আপনি ক্যামেরাটিকে নতুন অবস্থানে "স্ন্যাপ" করতে বেছে নিতে পারেন, যার অর্থ কোনও অ্যানিমেশন নেই, বা সরানোটিকে অ্যানিমেট করতে পারেন৷ উদাহরণ স্বরূপ, আপনি যদি ক্যামেরার টার্গেট লোকেশনে কোনো পরিবর্তন অ্যানিমেট করেন, তাহলে অ্যানিমেশনটি আগের অবস্থান থেকে নতুনটিতে চলে যাবে।

অ্যানিমেশন বর্তমান ক্যামেরা বৈশিষ্ট্য এবং নতুন ক্যামেরা বৈশিষ্ট্য মধ্যে interpolates. আপনি কোর অ্যানিমেশন ব্যবহার করে অ্যানিমেশনের সময়কাল নিয়ন্ত্রণ করতে পারেন।

GMSCameraPosition ব্যবহার করুন

GMSCameraPosition এর সাথে ক্যামেরা পরিবর্তন করতে, আপনি একটি নতুন বস্তু তৈরি করুন বা একটি বিদ্যমান বস্তু অনুলিপি করুন এবং তারপর এটিকে GMSMapView অবজেক্টে সেট করুন। অ্যানিমেশন সহ বা ছাড়াই নতুন অবস্থানে ক্যামেরা স্ন্যাপ করতে GMSCameraPosition অবজেক্ট ব্যবহার করুন।

অক্ষাংশ, দ্রাঘিমাংশ, জুম, বিয়ারিং এবং দেখার কোণের মতো ক্যামেরা বৈশিষ্ট্যগুলি কনফিগার করতে একটি GMSCameraPosition অবজেক্ট ব্যবহার করুন। তারপর আপনি GMSMapView এর camera বৈশিষ্ট্য সেট করতে সেই বস্তুটি ব্যবহার করুন।

সুইফট

let fancy = GMSCameraPosition(
  latitude: -33,
  longitude: 151,
  zoom: 6,
  bearing: 270,
  viewingAngle: 45
)
mapView.camera = fancy
      

উদ্দেশ্য-C

GMSCameraPosition *fancy = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                       longitude:151.2086
                                                            zoom:6
                                                         bearing:30
                                                    viewingAngle:45];
[mapView setCamera:fancy];
      

যে কোনো GMSCameraPosition প্রপার্টি বাদ দিন যা আপনি তার ডিফল্ট মান সেট করতে চান।

পদক্ষেপটি অ্যানিমেট করতে, camera বৈশিষ্ট্য সেট করার পরিবর্তে animateToCameraPosition: পদ্ধতিটি ব্যবহার করুন।

GMSCameraUpdate ব্যবহার করুন

GMSCameraUpdate আপনাকে ক্যামেরার অবস্থান আপডেট করতে দেয় এবং সেই নতুন অবস্থানে স্ন্যাপ-টু বা অ্যানিমেট-এ বেছে নিতে দেয়। GMSCameraUpdate এর সুবিধা হল সুবিধা। আপনি GMSCameraPosition ব্যবহার করতে পারেন GMSCameraUpdate এর মতো একই কাজগুলি সম্পাদন করতে, কিন্তু GMSCameraUpdate অতিরিক্ত সহায়ক পদ্ধতিগুলি প্রদান করে যাতে এটি ক্যামেরাটি পরিচালনা করা সহজ হয়৷

উদাহরণস্বরূপ, বর্তমান জুম স্তর বৃদ্ধি করতে GMSCameraPosition ব্যবহার করতে, আপনাকে প্রথমে বর্তমান জুম স্তর নির্ধারণ করতে হবে, তারপর একটি GMSCameraPosition অবজেক্ট তৈরি করতে হবে যেখানে আপনি বর্তমান জুমের চেয়ে বড় একটি মানতে জুম সেট করবেন৷

বিকল্পভাবে, zoomIn: পদ্ধতির সাহায্যে একটি GMSCameraUpdate অবজেক্ট তৈরি করুন। তারপর GMSMapView animateWithCameraUpdate: পদ্ধতিতে GMSCameraUpdate অবজেক্ট পাস করে ক্যামেরা আপডেট করুন।

সুইফট

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

উদ্দেশ্য-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

পরিবর্তে নতুন অবস্থানে ক্যামেরা স্ন্যাপ করার জন্য GMSMapView moveCamera: পদ্ধতি ব্যবহার করুন।

পরবর্তী উদাহরণে, আপনি GMSCameraUpdate ব্যবহার করে ক্যামেরার একটি মুভকে ভ্যাঙ্কুভারে কেন্দ্রীভূত করতে অ্যানিমেট করেন।

সুইফট

// Center the camera on Vancouver, Canada
let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let vancouverCam = GMSCameraUpdate.setTarget(vancouver)
mapView.animate(with: vancouverCam)
      

উদ্দেশ্য-C

// Center the camera on Vancouver, Canada
CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
GMSCameraUpdate *vancouverCam = [GMSCameraUpdate setTarget:vancouver];
[mapView animateWithCameraUpdate:vancouverCam];
      

একটি GMSCameraUpdate অবজেক্ট তৈরি করুন

এর একটি পদ্ধতি ব্যবহার করে একটি GMSCameraUpdate অবজেক্ট তৈরি করুন।

zoomIn: এবং zoomOut:
অন্যান্য সমস্ত বৈশিষ্ট্য একই রেখে বর্তমান জুম স্তরটি 1.0 দ্বারা পরিবর্তন করুন।
zoomTo:
অন্যান্য সমস্ত বৈশিষ্ট্য একই রেখে প্রদত্ত মানটিতে জুম স্তর পরিবর্তন করে।
zoomBy:
প্রদত্ত মান দ্বারা জুম স্তর বৃদ্ধি (বা হ্রাস, মান ঋণাত্মক হলে)।
zoomBy:atPoint:
স্ক্রিনে নির্দিষ্ট বিন্দুর অবস্থান ধরে রেখে প্রদত্ত মান দ্বারা জুম স্তর বাড়ায় (বা হ্রাস, যদি মান ঋণাত্মক হয়)।
setTarget:
ক্যামেরার অক্ষাংশ এবং দ্রাঘিমাংশ পরিবর্তন করে, অন্যান্য সমস্ত বৈশিষ্ট্য সংরক্ষণ করে।
setTarget:zoom:
ক্যামেরার অক্ষাংশ, দ্রাঘিমাংশ এবং জুম পরিবর্তন করে, অন্যান্য সমস্ত বৈশিষ্ট্য সংরক্ষণ করে।
setCamera:
একটি নতুন GMSCameraPosition সেট করে।
scrollByX:Y:
নির্দিষ্ট সংখ্যক পয়েন্ট দ্বারা মানচিত্র সরাতে ক্যামেরার অক্ষাংশ এবং দ্রাঘিমাংশ পরিবর্তন করে। একটি ইতিবাচক x মান ক্যামেরাটিকে ডানদিকে নিয়ে যায়, যাতে মানচিত্রটি বাম দিকে সরে গেছে বলে মনে হয়। একটি ধনাত্মক y মান ক্যামেরাটিকে নিচের দিকে নিয়ে যায়, যাতে মানচিত্রটি উপরে সরে গেছে বলে মনে হয়। স্ক্রলিং ক্যামেরার বর্তমান বিয়ারিংয়ের সাথে আপেক্ষিক। উদাহরণস্বরূপ, যদি ক্যামেরা 90 ডিগ্রির একটি বিয়ারিং থাকে, তাহলে পূর্বদিকে "উপর"।
fitBounds:
সর্বাধিক সম্ভাব্য জুম স্তরে স্ক্রিনে নির্দিষ্ট সীমানা কেন্দ্রে ক্যামেরাকে রূপান্তরিত করে। 64 পয়েন্টের সীমানায় একটি ডিফল্ট প্যাডিং প্রয়োগ করে।
fitBounds:withPadding:
সর্বাধিক সম্ভাব্য জুম স্তরে স্ক্রিনে নির্দিষ্ট সীমানা কেন্দ্রে ক্যামেরাকে রূপান্তরিত করে। বাউন্ডিং বাক্সের সব দিকের জন্য পয়েন্টে, একই প্যাডিং নির্দিষ্ট করতে এই পদ্ধতিটি ব্যবহার করুন।
fitBounds:withEdgeInsets:
সর্বাধিক সম্ভাব্য জুম স্তরে স্ক্রিনে নির্দিষ্ট সীমানা কেন্দ্রে ক্যামেরাকে রূপান্তরিত করে। UIEdgeInsets এর সাথে, আপনি বাউন্ডিং বাক্সের প্রতিটি পাশের জন্য স্বাধীনভাবে প্যাডিং নির্দিষ্ট করেন।

একটি একক সম্পত্তি পরিবর্তন করতে GMSMapView ব্যবহার করুন

GMSMapView বিভিন্ন পদ্ধতি প্রদান করে যা আপনাকে GMSCameraPosition অবজেক্ট বা GMSCameraUpdate অবজেক্ট ব্যবহার না করে ক্যামেরা সরাতে দেয়। এই পদ্ধতিগুলির সাহায্যে, যেমন animateToLocation: বা animateToZoom: , আপনি একটি একক ক্যামেরা সম্পত্তিতে একটি পরিবর্তন অ্যানিমেট করতে পারেন৷

উদাহরণস্বরূপ, ক্যামেরা টিল্টে একটি পরিবর্তন অ্যানিমেট করতে toViewingAngle: পদ্ধতিটি ব্যবহার করুন।

সুইফট

mapView.animate(toViewingAngle: 45)
      

উদ্দেশ্য-C

[mapView animateToViewingAngle:45];
      

লক্ষ্য নির্ধারণ করুন (অবস্থান)

অবস্থানটি মানচিত্রের কেন্দ্র নির্ধারণ করে। অবস্থানগুলি অক্ষাংশ এবং দ্রাঘিমাংশ দ্বারা নির্দিষ্ট করা হয় এবং একটি CLLocationCoordinate2D দ্বারা প্রোগ্রাম্যাটিকভাবে উপস্থাপন করা হয়, যা CLLocationCoordinate2DMake দিয়ে তৈরি করা হয়।

অবস্থান পরিবর্তন করতে GMSCameraPosition ব্যবহার করুন। এই উদাহরণে, মানচিত্রটি নতুন অবস্থানে স্ন্যাপ করে।

সুইফট

let target = CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208)
mapView.camera = GMSCameraPosition(target: target, zoom: 6)
      

উদ্দেশ্য-C

CLLocationCoordinate2D target =
    CLLocationCoordinate2DMake(-33.868, 151.208);
mapView.camera = [GMSCameraPosition cameraWithTarget:target zoom:6];
      

পরিবর্তনটি অ্যানিমেট করতে এবং মানচিত্রটিকে নতুন অবস্থানে প্যান করতে, আপনি camera বৈশিষ্ট্য সেট করার পরিবর্তে animateToCameraPosition: পদ্ধতি ব্যবহার করতে পারেন। অথবা, GMSMapViewanimateToLocation: পদ্ধতি ব্যবহার করুন।

সুইফট

mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
      

উদ্দেশ্য-C

[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
      

ক্যামেরা সরানোর জন্য আপনি একটি GMSCameraUpdate অবজেক্টও তৈরি করতে পারেন। X এবং Y দিকনির্দেশে ক্যামেরা স্ক্রোল করার জন্য পয়েন্টের সংখ্যা নির্দিষ্ট করতে এর অন্তর্নির্মিত পদ্ধতি, scrollByX:Y: ব্যবহার করুন। এই উদাহরণে, আপনি ক্যামেরাটি 200 পয়েন্ট ডানদিকে এবং 100 পয়েন্ট নিচে স্ক্রোল করুন:

সুইফট

// Move the camera 200 points to the right, and 100 points downwards
let downwards = GMSCameraUpdate.scrollBy(x: 200, y: 100)
mapView.animate(with: downwards)
      

উদ্দেশ্য-C

// Move the camera 200 points to the right, and 100 points downwards
GMSCameraUpdate *downwards = [GMSCameraUpdate scrollByX:200.0 Y:100.0];
[mapView animateWithCameraUpdate:downwards];
      

সেট বিয়ারিং (ওরিয়েন্টেশন)

বিয়ারিং হল কম্পাসের দিক, মানচিত্রের উপরের প্রান্তের জন্য সত্য উত্তর থেকে ডিগ্রীতে পরিমাপ করা হয়। উদাহরণস্বরূপ, 90 ডিগ্রির একটি ভারবহন একটি মানচিত্রের ফলাফল যেখানে উপরের প্রান্তটি পূর্ব দিকে নির্দেশ করে।

GMSCameraPosition বা GMSCameraUpdate বা animateToBearing: GMSMapView এর পদ্ধতির সাথে প্রোগ্রাম্যাটিকভাবে বিয়ারিং সেট করুন।

সুইফট

mapView.animate(toBearing: 0)
      

উদ্দেশ্য-C

[mapView animateToBearing:0];
      

কাত সেট করুন (দেখার কোণ)

দেখার কোণ হল মানচিত্রের কেন্দ্রের অবস্থান এবং পৃথিবীর পৃষ্ঠের মধ্যে একটি চাপে ক্যামেরার অবস্থান, যা নাদির থেকে ডিগ্রীতে পরিমাপ করা হয় (ক্যামেরার নীচে সরাসরি নির্দেশিত দিক)। আপনি যখন দেখার কোণ পরিবর্তন করেন, তখন মানচিত্রটি দৃষ্টিভঙ্গিতে প্রদর্শিত হয়, ক্যামেরা এবং মানচিত্রের অবস্থানের মধ্যে বৈশিষ্ট্যগুলি আনুপাতিকভাবে বড় দেখায় এবং মানচিত্রের অবস্থানের বাইরের বৈশিষ্ট্যগুলি আনুপাতিকভাবে ছোট দেখায়, একটি ত্রিমাত্রিক প্রভাব দেয়৷

দেখার কোণ 0 এর মধ্যে হতে পারে (মানচিত্রে সোজা নীচে নির্দেশ করে), এবং একটি জুম-স্তরের নির্ভরশীল সর্বাধিক পর্যন্ত। জুম স্তর 16 বা উচ্চতর জন্য, সর্বোচ্চ কোণ হল 65 ডিগ্রী। জুম লেভেল 10 বা তার নিচের জন্য, সর্বোচ্চ কোণ হল 30 ডিগ্রী।

GMSCameraPosition বা GMSCameraUpdate ব্যবহার করে বা GMSMapView এর animateToViewingAngle: পদ্ধতির সাহায্যে দেখার কোণটি প্রোগ্রামগতভাবে সেট করুন।

সুইফট

mapView.animate(toViewingAngle: 45)
      

উদ্দেশ্য-C

[mapView animateToViewingAngle:45];
      

জুম সেট করুন

ক্যামেরার জুম স্তর মানচিত্রের স্কেল নির্ধারণ করে। বৃহত্তর জুম স্তরে, আপনি স্ক্রিনে আরও বিশদ দেখতে পারেন, যখন ছোট জুম স্তরে, আপনি বিশ্বের আরও অনেক কিছু দেখতে পারেন৷

GMSCameraPosition বা GMSCameraUpdate এর সাথে বা GMSMapView এর animateToZoom: পদ্ধতির সাথে জুমটি প্রোগ্রাম্যাটিকভাবে সেট করুন।

সুইফট

mapView.animate(toZoom: 12)
      

উদ্দেশ্য-C

[mapView animateToZoom:12];
      

নিম্নলিখিত উদাহরণটি ব্যবহার করে zoomIn: একটি GMSCameraUpdate অবজেক্ট তৈরি করার পদ্ধতি যা বর্তমান স্তর থেকে এক স্তরে জুম ইন অ্যানিমেট করতে।

সুইফট

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

উদ্দেশ্য-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

সীমানা নির্ধারণ করুন

ক্যামেরা সরানোর জন্য যাতে আগ্রহের একটি সম্পূর্ণ এলাকা সর্বাধিক সম্ভাব্য জুম স্তরে দৃশ্যমান হয়, ক্যামেরা দেখার জন্য সীমানা সেট করুন। উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারীর বর্তমান অবস্থানের পাঁচ মাইলের মধ্যে সমস্ত গ্যাস স্টেশন প্রদর্শন করতে চান, ক্যামেরাটি সরান যাতে সেগুলি সবগুলি স্ক্রিনে দৃশ্যমান হয়:

  1. আপনি স্ক্রিনে দৃশ্যমান হতে চান এমন GMSCoordinateBounds গণনা করুন।
  2. একটি নতুন GMSCameraPosition ফেরাতে GMSMapView এর cameraForBounds:insets: পদ্ধতি ব্যবহার করুন।

এই সীমাগুলি সেট করা নিশ্চিত করে যে প্রদত্ত GMSCoordinateBounds বর্তমান মানচিত্রের আকারের মধ্যে সম্পূর্ণরূপে ফিট করে৷ মনে রাখবেন যে এই পদ্ধতিটি মানচিত্রের টিল্ট এবং বিয়ারিং 0 এ সেট করে।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে ক্যামেরা পরিবর্তন করতে হয় যাতে ভ্যাঙ্কুভার এবং ক্যালগারি উভয় শহরই একই দৃশ্যে উপস্থিত হয়।

সুইফট

let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let calgary = CLLocationCoordinate2D(latitude: 51.05,longitude: -114.05)
let bounds = GMSCoordinateBounds(coordinate: vancouver, coordinate: calgary)
let camera = mapView.camera(for: bounds, insets: UIEdgeInsets())!
mapView.camera = camera
      

উদ্দেশ্য-C

CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
CLLocationCoordinate2D calgary = CLLocationCoordinate2DMake(51.05, -114.05);
GMSCoordinateBounds *bounds =
    [[GMSCoordinateBounds alloc] initWithCoordinate:vancouver coordinate:calgary];
GMSCameraPosition *camera = [mapView cameraForBounds:bounds insets:UIEdgeInsetsZero];
mapView.camera = camera;
      

একটি নির্দিষ্ট এলাকায় ব্যবহারকারীর প্যানিং সীমাবদ্ধ

এই পরিস্থিতিগুলি মানচিত্রের সীমা নির্ধারণ করে কিন্তু ব্যবহারকারী তখন এই সীমানার বাইরে স্ক্রোল বা প্যান করতে পারে। পরিবর্তে, আপনি মানচিত্রের কেন্দ্রবিন্দু (ক্যামেরা লক্ষ্য) এর স্থানাঙ্ক কেন্দ্রের সীমানাকে সীমাবদ্ধ করতে চাইতে পারেন যাতে ব্যবহারকারীরা শুধুমাত্র এই সীমার মধ্যে স্ক্রোল এবং প্যান করতে পারে।

উদাহরণস্বরূপ, একটি শপিং সেন্টার বা বিমানবন্দরের জন্য একটি খুচরা অ্যাপ্লিকেশন মানচিত্রটিকে নির্দিষ্ট সীমার মধ্যে সীমাবদ্ধ করতে চাইতে পারে, ব্যবহারকারীদের সেই সীমার মধ্যে স্ক্রোল করতে এবং প্যান করতে দেয়।

প্যানিংকে নির্দিষ্ট সীমার মধ্যে সীমাবদ্ধ করতে, GMSMapView এর cameraTargetBounds প্রপার্টি একটি GMSCoordinateBounds অবজেক্টে সেট করুন যা প্রয়োজনীয় সীমা নির্ধারণ করে। পরে সীমাবদ্ধতা অপসারণ করতে, cameraTargetBounds শূন্যে সেট করুন।

সুইফট

mapView.cameraTargetBounds = bounds
      

উদ্দেশ্য-C

mapView.cameraTargetBounds = bounds;
      

নিচের চিত্রটি একটি দৃশ্যকল্পকে চিত্রিত করে যখন ক্যামেরার লক্ষ্যটি ভিউপোর্টের থেকে সামান্য বড় একটি এলাকায় সীমাবদ্ধ থাকে। ব্যবহারকারী স্ক্রোল এবং প্যান করতে পারেন, যদি ক্যামেরার লক্ষ্য আবদ্ধ এলাকার মধ্যে থাকে। ক্রস ক্যামেরা টার্গেট প্রতিনিধিত্ব করে:

ভিউপোর্টের চেয়ে বড় ক্যামেরা বাউন্ড দেখানো ডায়াগ্রাম।

মানচিত্র সর্বদা ভিউপোর্ট পূরণ করে, এমনকি যদি এর ফলে ভিউপোর্ট নির্ধারিত সীমার বাইরের এলাকাগুলি দেখায়। উদাহরণস্বরূপ, আপনি যদি ক্যামেরা টার্গেটটি আবদ্ধ এলাকার একটি কোণে অবস্থান করেন, তাহলে কোণার বাইরের এলাকাটি ভিউপোর্টে দৃশ্যমান হবে কিন্তু ব্যবহারকারীরা সেই এলাকায় আরও স্ক্রোল করতে পারবেন না। নিম্নলিখিত চিত্রটি এই দৃশ্যটি চিত্রিত করে। ক্রস ক্যামেরা টার্গেট প্রতিনিধিত্ব করে:

ক্যামেরার সীমানার নিচের ডানদিকের কোণায় অবস্থান করা ক্যামেরা টার্গেট দেখানো ডায়াগ্রাম।

নিম্নলিখিত চিত্রে, ক্যামেরার লক্ষ্যের খুব সীমাবদ্ধ সীমা রয়েছে, যা ব্যবহারকারীকে মানচিত্রটি স্ক্রোল বা প্যান করার খুব কম সুযোগ দেয়। ক্রস ক্যামেরা টার্গেট প্রতিনিধিত্ব করে:

ভিউপোর্টের চেয়ে ছোট ক্যামেরা বাউন্ড দেখানো ডায়াগ্রাম।

সর্বনিম্ন বা সর্বোচ্চ জুম সেট করুন

বৈশ্বিক ধ্রুবক kGMSMinZoomLevel এবং kGMSMaxZoomLevel সর্বনিম্ন বা সর্বোচ্চ জুম মান নির্ধারণ করে। ডিফল্টরূপে, GMSMapView এর minZoom এবং maxZoom বৈশিষ্ট্যগুলি এই ধ্রুবকগুলিতে সেট করা আছে৷

মানচিত্রে উপলব্ধ জুম স্তরের পরিসর সীমাবদ্ধ করতে, একটি সর্বনিম্ন এবং সর্বোচ্চ জুম স্তর সেট করুন৷ নিম্নলিখিত কোড জুম স্তরকে 10 এবং 15 এর মধ্যে সীমাবদ্ধ করে।

সুইফট

let camera = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 12
)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.setMinZoom(10, maxZoom: 15)
      

উদ্দেশ্য-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.887
                                                       longitude:-87.622
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero
                                        camera:camera];
[mapView setMinZoom:10 maxZoom:15];
      

আপনি setMinZoom:maxZoom: পদ্ধতির সাথে জুম পরিসর সেট করতে হবে; যাইহোক, আপনি minZoom এবং maxZoom বৈশিষ্ট্য ব্যবহার করে বর্তমান মান পড়তে পারেন। শুধুমাত্র একটি মান সীমাবদ্ধ করার সময় এই পদ্ধতিটি সহায়ক। নিম্নলিখিত কোড শুধুমাত্র সর্বনিম্ন জুম স্তর পরিবর্তন.

সুইফট

mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
      

উদ্দেশ্য-C

[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
      

যদি, ন্যূনতম এবং সর্বোচ্চ জুম আপডেট করার পরে, ক্যামেরার জুম স্তরটি নতুন পরিসরের বাইরে একটি মান সেট করা হয়, বর্তমান জুমটি নিকটতম বৈধ মান প্রদর্শন করতে স্বয়ংক্রিয়ভাবে আপডেট হয়৷ উদাহরণস্বরূপ, নিম্নলিখিত কোডে, আসল জুমটিকে 4 হিসাবে সংজ্ঞায়িত করা হয়েছে। যখন জুম পরিসরটি পরে 10-15 এ সেট করা হয়, তখন বর্তমান জুমটি 10 ​​এ আপডেট করা হয়।

সুইফট

// Sets the zoom level to 4.
let camera2 = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 4
)
let mapView2 = GMSMapView(frame: .zero, camera: camera)

// The current zoom, 4, is outside of the range. The zoom will change to 10.
mapView.setMinZoom(10, maxZoom: 15)
      

উদ্দেশ্য-C

// Sets the zoom level to 4.
GMSCameraPosition *camera2 = [GMSCameraPosition cameraWithLatitude:41.887
                                                         longitude:-87.622
                                                              zoom:4];
GMSMapView *mapView2 = [GMSMapView mapWithFrame:CGRectZero
                                         camera:camera];
// The current zoom, 4, is outside of the range. The zoom will change to 10.
[mapView setMinZoom:10 maxZoom:15];