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 হল বর্তমান মানচিত্রের অবস্থান। ফলস্বরূপ মানচিত্রটি নীচে দেখানো হয়েছে।
নীচের চিত্রগুলিতে, দেখার কোণটি 45 ডিগ্রি। লক্ষ্য করুন যে ক্যামেরাটি 3 অবস্থানে সোজা ওভারহেড (0 ডিগ্রি) এবং স্থল (90 ডিগ্রি) এর মধ্যে একটি চাপ বরাবর অর্ধেক সরে যায়। ক্যামেরাটি এখনও মানচিত্রের কেন্দ্র বিন্দুতে নির্দেশ করছে, কিন্তু অবস্থান 4 এ লাইন দ্বারা প্রতিনিধিত্ব করা এলাকাটি এখন দৃশ্যমান।
এই স্ক্রিনশটের মানচিত্রটি এখনও মূল মানচিত্রের মতো একই বিন্দুতে কেন্দ্রীভূত, তবে আরও বৈশিষ্ট্য মানচিত্রের শীর্ষে উপস্থিত হয়েছে৷ আপনি যখন 45 ডিগ্রির বেশি কোণ বাড়ান, ক্যামেরা এবং মানচিত্রের অবস্থানের মধ্যে বৈশিষ্ট্যগুলি আনুপাতিকভাবে বড় দেখায়, যখন মানচিত্রের অবস্থানের বাইরের বৈশিষ্ট্যগুলি আনুপাতিকভাবে ছোট দেখায়, একটি ত্রিমাত্রিক প্রভাব দেয়৷
জুম
ক্যামেরার জুম স্তর মানচিত্রের স্কেল নির্ধারণ করে। বড় জুম লেভেলে স্ক্রিনে আরও বিস্তারিত দেখা যায়, যখন ছোট জুম লেভেলে স্ক্রিনে বিশ্বের আরও অনেক কিছু দেখা যায়। জুম লেভেল 0 এ, মানচিত্রের স্কেল এমন যে সমগ্র বিশ্বের প্রস্থ প্রায় 256 পয়েন্ট।
1 দ্বারা জুম স্তর বৃদ্ধি পর্দায় বিশ্বের প্রস্থ দ্বিগুণ. তাই জুম স্তর N এ, বিশ্বের প্রস্থ প্রায় 256 * 2 N পয়েন্ট। উদাহরণস্বরূপ, জুম লেভেল 2 এ, সমগ্র বিশ্ব প্রায় 1024 পয়েন্ট প্রশস্ত।
জুম স্তর একটি পূর্ণসংখ্যা হতে হবে না. মানচিত্র দ্বারা অনুমোদিত জুম স্তরের পরিসীমা লক্ষ্য, মানচিত্রের ধরন এবং স্ক্রীনের আকার সহ বেশ কয়েকটি কারণের উপর নির্ভর করে। সীমার বাইরের যেকোনো সংখ্যা পরবর্তী নিকটতম বৈধ মানতে রূপান্তরিত হবে, যেটি হয় সর্বনিম্ন জুম স্তর বা সর্বোচ্চ জুম স্তর হতে পারে৷ নিম্নলিখিত তালিকাটি আনুমানিক বিশদ স্তর দেখায় যা আপনি প্রতিটি জুম স্তরে দেখতে আশা করতে পারেন:
- 1: বিশ্ব
- 5: ল্যান্ডমাস/মহাদেশ
- 10: শহর
- 15: রাস্তা
- 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:
পদ্ধতি ব্যবহার করতে পারেন। অথবা, GMSMapView
এ animateToLocation:
পদ্ধতি ব্যবহার করুন।
সুইফট
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];
সীমানা নির্ধারণ করুন
ক্যামেরা সরানোর জন্য যাতে আগ্রহের একটি সম্পূর্ণ এলাকা সর্বাধিক সম্ভাব্য জুম স্তরে দৃশ্যমান হয়, ক্যামেরা দেখার জন্য সীমানা সেট করুন। উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারীর বর্তমান অবস্থানের পাঁচ মাইলের মধ্যে সমস্ত গ্যাস স্টেশন প্রদর্শন করতে চান, ক্যামেরাটি সরান যাতে সেগুলি সবগুলি স্ক্রিনে দৃশ্যমান হয়:
- আপনি স্ক্রিনে দৃশ্যমান হতে চান এমন
GMSCoordinateBounds
গণনা করুন। - একটি নতুন
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];
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 হল বর্তমান মানচিত্রের অবস্থান। ফলস্বরূপ মানচিত্রটি নীচে দেখানো হয়েছে।
নীচের চিত্রগুলিতে, দেখার কোণটি 45 ডিগ্রি। লক্ষ্য করুন যে ক্যামেরাটি 3 অবস্থানে সোজা ওভারহেড (0 ডিগ্রি) এবং স্থল (90 ডিগ্রি) এর মধ্যে একটি চাপ বরাবর অর্ধেক সরে যায়। ক্যামেরাটি এখনও মানচিত্রের কেন্দ্র বিন্দুতে নির্দেশ করছে, কিন্তু অবস্থান 4 এ লাইন দ্বারা প্রতিনিধিত্ব করা এলাকাটি এখন দৃশ্যমান।
এই স্ক্রিনশটের মানচিত্রটি এখনও মূল মানচিত্রের মতো একই বিন্দুতে কেন্দ্রীভূত, তবে আরও বৈশিষ্ট্য মানচিত্রের শীর্ষে উপস্থিত হয়েছে৷ আপনি যখন 45 ডিগ্রির বেশি কোণ বাড়ান, ক্যামেরা এবং মানচিত্রের অবস্থানের মধ্যে বৈশিষ্ট্যগুলি আনুপাতিকভাবে বড় দেখায়, যখন মানচিত্রের অবস্থানের বাইরের বৈশিষ্ট্যগুলি আনুপাতিকভাবে ছোট দেখায়, একটি ত্রিমাত্রিক প্রভাব দেয়৷
জুম
ক্যামেরার জুম স্তর মানচিত্রের স্কেল নির্ধারণ করে। বড় জুম লেভেলে স্ক্রিনে আরও বিস্তারিত দেখা যায়, যখন ছোট জুম লেভেলে স্ক্রিনে বিশ্বের আরও অনেক কিছু দেখা যায়। জুম লেভেল 0 এ, মানচিত্রের স্কেল এমন যে সমগ্র বিশ্বের প্রস্থ প্রায় 256 পয়েন্ট।
1 দ্বারা জুম স্তর বৃদ্ধি পর্দায় বিশ্বের প্রস্থ দ্বিগুণ. তাই জুম স্তর N এ, বিশ্বের প্রস্থ প্রায় 256 * 2 N পয়েন্ট। উদাহরণস্বরূপ, জুম লেভেল 2 এ, সমগ্র বিশ্ব প্রায় 1024 পয়েন্ট প্রশস্ত।
জুম স্তর একটি পূর্ণসংখ্যা হতে হবে না. মানচিত্র দ্বারা অনুমোদিত জুম স্তরের পরিসীমা লক্ষ্য, মানচিত্রের ধরন এবং স্ক্রীনের আকার সহ বেশ কয়েকটি কারণের উপর নির্ভর করে। সীমার বাইরের যেকোনো সংখ্যা পরবর্তী নিকটতম বৈধ মানতে রূপান্তরিত হবে, যেটি হয় সর্বনিম্ন জুম স্তর বা সর্বোচ্চ জুম স্তর হতে পারে৷ নিম্নলিখিত তালিকাটি আনুমানিক বিশদ স্তর দেখায় যা আপনি প্রতিটি জুম স্তরে দেখতে আশা করতে পারেন:
- 1: বিশ্ব
- 5: ল্যান্ডমাস/মহাদেশ
- 10: শহর
- 15: রাস্তা
- 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:
পদ্ধতি ব্যবহার করতে পারেন। অথবা, animateToLocation:
GMSMapView
পদ্ধতি।
সুইফট
mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
উদ্দেশ্য-C
[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
আপনি ক্যামেরাটি সরাতে একটি GMSCameraUpdate
অবজেক্টও তৈরি করতে পারেন। এক্স এবং ওয়াই দিকনির্দেশগুলিতে ক্যামেরাটি স্ক্রোল করতে পয়েন্টের সংখ্যা নির্দিষ্ট করতে এর অন্তর্নির্মিত পদ্ধতি, 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
বা animateToViewingAngle:
GMSMapView
এর পদ্ধতি ব্যবহার করে প্রোগ্রামগতভাবে দেখার কোণটি সেট করুন।
সুইফট
mapView.animate(toViewingAngle: 45)
উদ্দেশ্য-C
[mapView animateToViewingAngle:45];
জুম সেট করুন
ক্যামেরার জুম স্তরটি মানচিত্রের স্কেল নির্ধারণ করে। বৃহত্তর জুম স্তরে, আপনি স্ক্রিনে আরও বিশদ দেখতে পারেন, যখন ছোট জুম স্তরে আপনি বিশ্বের আরও কিছু দেখতে পারেন।
GMSCameraPosition
বা GMSCameraUpdate
বা animateToZoom:
GMSMapView
পদ্ধতি।
সুইফট
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];
সীমানা নির্ধারণ করুন
ক্যামেরাটি সরানোর জন্য যাতে আগ্রহের একটি সম্পূর্ণ ক্ষেত্রটি সর্বাধিক সম্ভাব্য জুম স্তরে দৃশ্যমান হয়, ক্যামেরা ভিউয়ের জন্য সীমানা সেট করুন। উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারীর বর্তমান অবস্থানের পাঁচ মাইলের মধ্যে সমস্ত গ্যাস স্টেশন প্রদর্শন করতে চান তবে ক্যামেরাটি সরান যাতে সেগুলি সমস্ত স্ক্রিনে দৃশ্যমান:
- আপনি স্ক্রিনে দৃশ্যমান হতে চান এমন
GMSCoordinateBounds
গণনা করুন। -
cameraForBounds:insets:
একটি নতুনGMSCameraPosition
ফেরত দিতেGMSMapView
পদ্ধতি।
এই সীমাগুলি সেট করা নিশ্চিত করে যে প্রদত্ত 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];
আইওএসের জন্য মানচিত্র এসডিকে সহ, আপনি মানচিত্রের ক্যামেরা পরিবর্তন করে মানচিত্রের ব্যবহারকারীর দৃষ্টিভঙ্গি পরিবর্তন করতে পারেন।
আইওএসের জন্য মানচিত্র এসডিকে সহ, আপনার ব্যবহারকারীরা তাদের প্রসঙ্গের জন্য দরকারী একটি ওরিয়েন্টেশনের সাথে সামঞ্জস্য করতে আপনার মানচিত্রগুলি ঝুঁকতে এবং ঘোরাতে পারেন। যে কোনও জুম স্তরে, ব্যবহারকারীরা মানচিত্রটি প্যান করতে বা খুব সামান্য বিলম্বের সাথে এর দৃষ্টিভঙ্গি পরিবর্তন করতে পারে।
ক্যামেরায় পরিবর্তনগুলি আপনি যুক্ত করেছেন মার্কার, পোলাইনগুলি বা অন্যান্য গ্রাফিকগুলি পরিবর্তন করবেন না, যদিও আপনি নতুন দৃশ্যের সাথে আরও ভাল ফিট করার জন্য এই সংযোজনগুলি পরিবর্তন করতে চাইতে পারেন।
মানচিত্রের দৃশ্য
আইওএসের জন্য মানচিত্র এসডিকে আপনার ডিভাইসের স্ক্রিনে (একটি সমতল বিমান) বিশ্বের পৃষ্ঠ (একটি গোলক) উপস্থাপন করতে মার্সেটর প্রক্ষেপণ ব্যবহার করে।
ক্যামেরার অবস্থান
মানচিত্রের ভিউটি একটি সমতল বিমানের দিকে তাকিয়ে ক্যামেরা হিসাবে মডেল করা হয়েছে। ক্যামেরার অবস্থান (এবং সেইজন্য মানচিত্রের রেন্ডারিং) নিম্নলিখিত বৈশিষ্ট্যগুলি দ্বারা নির্দিষ্ট করা হয়েছে: লক্ষ্য (অক্ষাংশ/দ্রাঘিমাংশের অবস্থান) , ভারবহন , টিল্ট এবং জুম ।
লক্ষ্য (অবস্থান)
ক্যামেরার লক্ষ্যটি মানচিত্রের কেন্দ্রের অবস্থান, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট করা হয়।
অক্ষাংশটি -85 এবং 85 ডিগ্রির মধ্যে থাকতে পারে, অন্তর্ভুক্ত। এই ব্যাপ্তির উপরে বা নীচে মানগুলি এই পরিসীমাটির মধ্যে নিকটতম মানটিতে ক্ল্যাম্প করা হবে। উদাহরণস্বরূপ, 100 এর একটি অক্ষাংশ নির্দিষ্ট করে মানটি 85 এ সেট করবে। -180 এবং 180 ডিগ্রির মধ্যে দ্রাঘিমাংশের পরিসীমা অন্তর্ভুক্ত, অন্তর্ভুক্ত। এই পরিসীমা উপরে বা নীচে মানগুলি এমনভাবে আবৃত করা হবে যে তারা পরিসীমা (-180, 180) এর মধ্যে পড়ে। উদাহরণস্বরূপ, 480, 840 এবং 1200 সমস্তই 120 ডিগ্রিতে আবৃত হবে।ভারবহন (ওরিয়েন্টেশন)
ক্যামেরা ভারবহনটি মানচিত্রের শীর্ষ প্রান্তের সাথে মিল রেখে সত্য উত্তর থেকে ডিগ্রিগুলিতে পরিমাপ করা কম্পাসের দিকটি নির্দিষ্ট করে। আপনি যদি মানচিত্রের কেন্দ্র থেকে মানচিত্রের শীর্ষ প্রান্তে একটি উল্লম্ব রেখা আঁকেন তবে ভারবহনটি সত্য উত্তরের তুলনায় ক্যামেরার শিরোনাম (ডিগ্রিগুলিতে পরিমাপ করা) এর সাথে মিলে যায়।
0 এর একটি ভারবহন মানে মানচিত্রের শীর্ষটি সত্য উত্তরে নির্দেশ করে। একটি ভারবহন মান 90 এর অর্থ পূর্ব পূর্ব (একটি কম্পাসে 90 ডিগ্রি) মানচিত্রের পয়েন্টগুলির শীর্ষ। একটি মান 180 এর অর্থ দক্ষিণে মানচিত্রের পয়েন্টগুলির শীর্ষ।
মানচিত্র এপিআই আপনাকে একটি মানচিত্রের ভারবহন পরিবর্তন করতে দেয়। উদাহরণস্বরূপ, গাড়ি চালানো কেউ প্রায়শই তাদের ভ্রমণের দিকের সাথে সারিবদ্ধ করার জন্য একটি রাস্তার মানচিত্র ঘুরিয়ে দেয়, যখন হাইকাররা একটি মানচিত্র এবং কম্পাস ব্যবহার করে সাধারণত মানচিত্রটি নির্দেশ করে যাতে একটি উল্লম্ব রেখাটি উত্তর দিকে নির্দেশ করে।
টিল্ট (দেখার কোণ)
টিল্টটি মানচিত্রের কেন্দ্রের অবস্থানের উপরে সরাসরি একটি চাপের উপর ক্যামেরার অবস্থান নির্ধারণ করে, নাদির থেকে ডিগ্রিগুলিতে পরিমাপ করা হয় (দিকটি ক্যামেরার নীচে সরাসরি নির্দেশ করে)। 0 এর একটি মান সরাসরি নীচে নির্দেশিত ক্যামেরার সাথে মিলে যায়। 0 এর চেয়ে বেশি মানগুলি একটি ক্যামেরার সাথে মিলে যা নির্দিষ্ট ডিগ্রির নির্দিষ্ট সংখ্যার দ্বারা দিগন্তের দিকে চালিত হয়। আপনি যখন দেখার কোণটি পরিবর্তন করেন, মানচিত্রটি দৃষ্টিকোণে উপস্থিত হয়, দূর-দূরবর্তী বৈশিষ্ট্যগুলি আরও ছোট প্রদর্শিত হয় এবং কাছাকাছি বৈশিষ্ট্যগুলি আরও বড় প্রদর্শিত হয়। নিম্নলিখিত চিত্রগুলি এটি প্রদর্শন করে।
নীচের চিত্রগুলিতে, দেখার কোণটি 0 ডিগ্রি। প্রথম চিত্রটি এর একটি পরিকল্পনামূলক দেখায়; অবস্থান 1 হ'ল ক্যামেরার অবস্থান, এবং অবস্থান 2 হ'ল বর্তমান মানচিত্রের অবস্থান। ফলাফলের মানচিত্রটি নীচে দেখানো হয়েছে।
নীচের চিত্রগুলিতে, দেখার কোণটি 45 ডিগ্রি। লক্ষ্য করুন যে ক্যামেরাটি সোজা ওভারহেড (0 ডিগ্রি) এবং স্থল (90 ডিগ্রি) এর মধ্যে একটি চাপের সাথে অর্ধেক পথ ধরে 3 অবস্থানে রয়েছে। ক্যামেরাটি এখনও মানচিত্রের কেন্দ্রের পয়েন্টের দিকে ইশারা করছে, তবে 4 পজিশনে লাইন দ্বারা প্রতিনিধিত্ব করা অঞ্চলটি এখন দৃশ্যমান।
এই স্ক্রিনশটের মানচিত্রটি এখনও মূল মানচিত্রের মতো একই পয়েন্টে কেন্দ্রিক রয়েছে তবে মানচিত্রের শীর্ষে আরও বৈশিষ্ট্য উপস্থিত হয়েছে। আপনি 45 ডিগ্রি ছাড়িয়ে কোণটি বাড়ার সাথে সাথে ক্যামেরা এবং মানচিত্রের অবস্থানের মধ্যে বৈশিষ্ট্যগুলি আনুপাতিকভাবে বৃহত্তর প্রদর্শিত হয়, অন্যদিকে মানচিত্রের অবস্থানের বাইরে বৈশিষ্ট্যগুলি আনুপাতিকভাবে ছোট প্রদর্শিত হয়, ত্রি-মাত্রিক প্রভাব দেয়।
জুম
ক্যামেরার জুম স্তরটি মানচিত্রের স্কেল নির্ধারণ করে। বৃহত্তর জুম স্তরে আরও বিশদটি স্ক্রিনে দেখা যায়, যখন ছোট জুম স্তরে বিশ্বের আরও অনেক বেশি স্ক্রিনে দেখা যায়। জুম স্তর 0 এ, মানচিত্রের স্কেল এমন যে পুরো বিশ্বের প্রায় 256 পয়েন্টের প্রস্থ রয়েছে।
1 দ্বারা জুম স্তর বৃদ্ধি করা পর্দার বিশ্বের প্রস্থকে দ্বিগুণ করে। সুতরাং জুম স্তর এন এ, বিশ্বের প্রস্থ প্রায় 256 * 2 এন পয়েন্ট। উদাহরণস্বরূপ, জুম স্তর 2 এ, পুরো বিশ্ব প্রায় 1024 পয়েন্ট প্রশস্ত।
জুম স্তরটি পূর্ণসংখ্যা হওয়ার দরকার নেই। মানচিত্র দ্বারা অনুমোদিত জুম স্তরের পরিসীমা লক্ষ্য, মানচিত্রের ধরণ এবং স্ক্রিনের আকার সহ বিভিন্ন কারণের উপর নির্ভর করে। পরিসরের বাইরে যে কোনও সংখ্যা পরবর্তী নিকটতম বৈধ মানতে রূপান্তরিত হবে, যা হয় ন্যূনতম জুম স্তর বা সর্বোচ্চ জুম স্তর হতে পারে। নিম্নলিখিত তালিকাটি প্রতিটি জুম স্তরে আপনি দেখতে আশা করতে পারেন তার আনুমানিক স্তরটি দেখায়:
- 1: বিশ্ব
- 5: ল্যান্ডমাস/মহাদেশ
- 10: শহর
- 15: রাস্তাগুলি
- 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
ইনিশ পদ্ধতি ব্যবহার করে 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
আপনাকে লক্ষ্য, ভারবহন, টিল্ট এবং জুম পরিবর্তন করতে দেয় এবং এছাড়াও স্ক্রোলিং, উন্নত জুমিং সমর্থন করার জন্য অতিরিক্ত সুবিধার্থে পদ্ধতি রয়েছে, পূর্বনির্ধারিত সীমানাগুলির মধ্যে ক্যামেরাটিকে কেন্দ্র করে এবং আরও অনেক কিছু রয়েছে।
আপনি যখন ক্যামেরাটি সরিয়ে নিয়েছেন, আপনি ক্যামেরাটিকে নতুন অবস্থানে "স্ন্যাপ" করতে বেছে নিতে পারেন, যার অর্থ কোনও অ্যানিমেশন নেই, বা পদক্ষেপটি অ্যানিমেট করা উচিত। উদাহরণস্বরূপ, আপনি যদি ক্যামেরার লক্ষ্য স্থানে কোনও পরিবর্তন সঞ্চারিত করেন তবে অ্যানিমেশনটি পূর্ববর্তী অবস্থান থেকে নতুনটিতে প্যান করে।
অ্যানিমেশনটি বর্তমান ক্যামেরা বৈশিষ্ট্য এবং নতুন ক্যামেরা বৈশিষ্ট্যের মধ্যে ইন্টারপোলেট করে। আপনি কোর অ্যানিমেশন ব্যবহার করে অ্যানিমেশনের সময়কাল নিয়ন্ত্রণ করতে পারেন।
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
এর সুবিধা হ'ল সুবিধা। আপনি GMSCameraUpdate
এর মতো একই কাজগুলি সম্পাদন করতে GMSCameraPosition
াগ ব্যবহার করতে পারেন তবে GMSCameraUpdate
ক্যামেরাটি হেরফের করা আরও সহজ করার জন্য অতিরিক্ত সহায়ক পদ্ধতি সরবরাহ করে।
উদাহরণস্বরূপ, বর্তমান জুম স্তরটি বাড়ানোর জন্য GMSCameraPosition
ব্যবহার করতে আপনাকে প্রথমে বর্তমান জুম স্তরটি নির্ধারণ করতে হবে, তারপরে একটি GMSCameraPosition
অবজেক্ট তৈরি করতে হবে যেখানে আপনি জুমটিকে বর্তমান জুমের চেয়ে একটি মানকে সেট করেছেন।
বিকল্পভাবে, zoomIn:
পদ্ধতি সহ একটি GMSCameraUpdate
অবজেক্ট তৈরি করুন। তারপরে GMSCameraUpdate
অবজেক্টটি GMSMapView
animateWithCameraUpdate:
পদ্ধতিতে পাস করে ক্যামেরা আপডেট করুন।
সুইফট
// 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:
- নির্দিষ্ট পয়েন্টের দ্বারা মানচিত্রটি সরাতে ক্যামেরার অক্ষাংশ এবং দ্রাঘিমাংশ পরিবর্তন করে। একটি ইতিবাচক এক্স মান ক্যামেরাটি ডানদিকে চলে যায়, যাতে মানচিত্রটি বাম দিকে চলে গেছে বলে মনে হয়। একটি ইতিবাচক ওয়াই মান ক্যামেরাটি নীচে নেমে আসে, যাতে মানচিত্রটি উপরে উঠে যায় বলে মনে হয়। স্ক্রোলিং ক্যামেরার বর্তমান ভারবহন সম্পর্কিত। উদাহরণস্বরূপ, যদি ক্যামেরাটির 90 ডিগ্রি ভারবহন থাকে তবে পূর্ব "আপ"।
-
fitBounds:
- সর্বাধিক সম্ভাব্য জুম স্তরে স্ক্রিনে নির্দিষ্ট সীমানা কেন্দ্রে ক্যামেরাটিকে রূপান্তর করে। 64 পয়েন্টের সীমানায় একটি ডিফল্ট প্যাডিং প্রয়োগ করে।
-
fitBounds:withPadding:
- সর্বাধিক সম্ভাব্য জুম স্তরে স্ক্রিনে নির্দিষ্ট সীমানা কেন্দ্রে ক্যামেরাটিকে রূপান্তর করে। সীমানা বাক্সের সমস্ত পক্ষের জন্য পয়েন্টগুলিতে একই প্যাডিং নির্দিষ্ট করতে এই পদ্ধতিটি ব্যবহার করুন।
-
fitBounds:withEdgeInsets:
- সর্বাধিক সম্ভাব্য জুম স্তরে স্ক্রিনে নির্দিষ্ট সীমানা কেন্দ্রে ক্যামেরাটিকে রূপান্তর করে।
UIEdgeInsets
সাহায্যে আপনি বাউন্ডিং বক্সের প্রতিটি পক্ষের জন্য স্বাধীনভাবে প্যাডিং নির্দিষ্ট করেন।
একক সম্পত্তি পরিবর্তন করতে GMSMapView
ব্যবহার করুন
GMSMapView
বেশ কয়েকটি পদ্ধতি সরবরাহ করে যা আপনাকে কোনও GMSCameraPosition
অবজেক্ট বা GMSCameraUpdate
অবজেক্ট ব্যবহার না করে ক্যামেরাটি সরাতে দেয়। এই পদ্ধতিগুলির সাথে যেমন animateToLocation:
বা animateToZoom:
আপনি একটি একক ক্যামেরা সম্পত্তিতে পরিবর্তন সঞ্চার করতে পারেন।
উদাহরণস্বরূপ, ক্যামেরা টিল্টে কোনও পরিবর্তন সঞ্চার করার জন্য toViewingAngle:
পদ্ধতিটি ব্যবহার করুন।
সুইফট
mapView.animate(toViewingAngle: 45)
উদ্দেশ্য-C
[mapView animateToViewingAngle:45];
লক্ষ্য সেট (অবস্থান)
অবস্থানটি মানচিত্রের কেন্দ্র নির্ধারণ করে। অবস্থানগুলি অক্ষাংশ এবং দ্রাঘিমাংশ দ্বারা নির্দিষ্ট করা হয়, এবং CLLocationCoordinate2DMake
দিয়ে তৈরি একটি CLLocationCoordinate2D
2 ডি দ্বারা প্রোগ্রামগতভাবে প্রতিনিধিত্ব করে।
অবস্থান পরিবর্তন করতে 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];
পরিবর্তনটি সঞ্চার করতে এবং মানচিত্রটি নতুন স্থানে প্যান করতে, আপনি animateToCameraPosition:
camera
সম্পত্তি সেট করার পরিবর্তে পদ্ধতি। অথবা, animateToLocation:
GMSMapView
পদ্ধতি।
সুইফট
mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
উদ্দেশ্য-C
[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
আপনি ক্যামেরাটি সরাতে একটি GMSCameraUpdate
অবজেক্টও তৈরি করতে পারেন। এক্স এবং ওয়াই দিকনির্দেশগুলিতে ক্যামেরাটি স্ক্রোল করতে পয়েন্টের সংখ্যা নির্দিষ্ট করতে এর অন্তর্নির্মিত পদ্ধতি, 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
বা animateToViewingAngle:
GMSMapView
এর পদ্ধতি ব্যবহার করে প্রোগ্রামগতভাবে দেখার কোণটি সেট করুন।
সুইফট
mapView.animate(toViewingAngle: 45)
উদ্দেশ্য-C
[mapView animateToViewingAngle:45];
জুম সেট করুন
ক্যামেরার জুম স্তরটি মানচিত্রের স্কেল নির্ধারণ করে। বৃহত্তর জুম স্তরে, আপনি স্ক্রিনে আরও বিশদ দেখতে পারেন, যখন ছোট জুম স্তরে আপনি বিশ্বের আরও কিছু দেখতে পারেন।
GMSCameraPosition
বা GMSCameraUpdate
বা animateToZoom:
GMSMapView
পদ্ধতি।
সুইফট
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];
সীমানা নির্ধারণ করুন
ক্যামেরাটি সরানোর জন্য যাতে আগ্রহের একটি সম্পূর্ণ ক্ষেত্রটি সর্বাধিক সম্ভাব্য জুম স্তরে দৃশ্যমান হয়, ক্যামেরা ভিউয়ের জন্য সীমানা সেট করুন। উদাহরণস্বরূপ, আপনি যদি ব্যবহারকারীর বর্তমান অবস্থানের পাঁচ মাইলের মধ্যে সমস্ত গ্যাস স্টেশন প্রদর্শন করতে চান তবে ক্যামেরাটি সরান যাতে সেগুলি সমস্ত স্ক্রিনে দৃশ্যমান:
- আপনি স্ক্রিনে দৃশ্যমান হতে চান এমন
GMSCoordinateBounds
গণনা করুন। -
cameraForBounds:insets:
একটি নতুনGMSCameraPosition
ফেরত দিতেGMSMapView
পদ্ধতি।
এই সীমাগুলি সেট করা নিশ্চিত করে যে প্রদত্ত 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];