ক্যামেরা আপনাকে মানচিত্রের ব্যবহারকারীর দৃষ্টিভঙ্গি পরিবর্তন করতে দেয়। নেভিগেশনের সময় মানচিত্রের আচরণ নিয়ন্ত্রণ করতে আপনি ক্যামেরা মোড ব্যবহার করতে পারেন। ক্যামেরা মোড সেট করতে, নিম্নলিখিত ক্যামেরা মোড ধ্রুবকগুলির মধ্যে একটি নির্দিষ্ট করে মানচিত্র দৃশ্যের cameraMode বৈশিষ্ট্য সেট করুন:
অনুসরণ — নেভিগেশনের জন্য ডিফল্ট ক্যামেরা মোড। ভিউ অ্যাঙ্গেল ৪৫ ডিগ্রিতে পরিবর্তন করে এবং ক্যামেরাটিকে বর্তমান অবস্থানের পিছনে ভ্রমণের দিকে মুখ করে রাখে। নেভিগেশনের সময় ক্যামেরাটি স্বয়ংক্রিয়ভাবে ভ্রমণের দিকে মুখ করে সামঞ্জস্য হয়। মানচিত্রের রি-সেন্টার বোতাম টিপলে এই মোডেও স্যুইচ হয়ে যাবে। এই মোডটি নির্বাচন করা হলে রি-সেন্টার বোতামটি দৃশ্যমান হয় না।
ওভারভিউ — সমগ্র রুটের একটি ওভারভিউ প্রদর্শন করে, প্রয়োজন অনুসারে জুম করে রুটটিকে ম্যাপ ভিউতে ফিট করে। যখন এই ভিউটি নির্বাচন করা হয় তখন পুনঃকেন্দ্র বোতামটি দৃশ্যমান হয়।
বিনামূল্যে — ব্যবহারকারীকে অঙ্গভঙ্গির মাধ্যমে মানচিত্রের দৃশ্য পরিবর্তন করতে দেয়। এই দৃশ্যে ক্যামেরা স্থির থাকে। ব্যবহারকারী নেভিগেশনের সময় প্যান বা জুম করলে মানচিত্রটি স্বয়ংক্রিয়ভাবে এই দৃশ্যে প্রবেশ করবে। এই দৃশ্যটি নির্বাচন করা হলে পুনঃকেন্দ্র বোতামটি দৃশ্যমান হবে।
ক্যামেরা মোড পরিবর্তন করতে, ম্যাপ ভিউয়ের cameraMode প্রোপার্টি সেট করুন, যেমনটি এখানে দেখানো হয়েছে:
সুইফট
// Set the mode to "overview":
mapView.cameraMode = .overview
// Set the mode to "free":
mapView.cameraMode = .free
// Set the mode to "following":
mapView.cameraMode = .following
অবজেক্টিভ-সি
// Set the mode to "overview":
mapView.cameraMode = GMSNavigationCameraModeOverview;
// Set the mode to "free":
mapView.cameraMode = GMSNavigationCameraModeFree;
// Set the mode to "following":
mapView.cameraMode = GMSNavigationCameraModeFollowing;
ম্যাপটি স্বয়ংক্রিয়ভাবে রিন্সটার করুন
ব্যবহারকারীরা যখন মানচিত্রটি নেভিগেশন মোডে সরায়, তখন মানচিত্র দেখার ক্যামেরা মোডটি নিম্নলিখিত মোড থেকে মুক্ত মোডে পরিবর্তিত হয়। ব্যবহারকারী স্পষ্টভাবে "Re-center" টিপলে ক্যামেরাটি নিম্নলিখিত মোডে ফিরে আসে। নিম্নলিখিত মোডটি ছেড়ে যাওয়ার এবং তারপরে স্বয়ংক্রিয়ভাবে ফিরে আসার মধ্যে একটি ব্যবধান সেট করার জন্য একটি টাইমার ব্যবহার করে আপনি নিম্নলিখিত মোডে ফিরে আসা স্বয়ংক্রিয় করতে পারেন।
উদাহরণ
নিম্নলিখিত কোড উদাহরণটি পরীক্ষা করে যে ব্যবহারকারী নেভিগেশন মোডে থাকাকালীন মানচিত্রটি সরানো হচ্ছে কিনা। যদি তা হয়, তাহলে এটি ক্যামেরা মোডটিকে নিম্নলিখিত মোডে স্যুইচ করার জন্য একটি টাইমার সেট করে, পাঁচ সেকেন্ড পরে মানচিত্রটিকে কেন্দ্রীভূত করে।
সুইফট
class YourViewController: UIViewController {
@IBOutlet weak var mapView: GMSMapView!
var autoFollowTimer: Timer!
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
...
}
...
}
/** Implements the GMSMapViewDelegate protocol. */
extension YourViewController: GMSMapViewDelegate {
func mapView(_ mapView: GMSMapView, willMove gesture: Bool) {
if mapView.navigator?.isGuidanceActive == false {return}
if !gesture {return}
autoFollowTimer?.invalidate()
autoFollowTimer = Timer(
timeInterval: TimeInterval(5.0),
target: self,
selector: #selector(recenterMap),
userInfo: nil,
repeats: false)
RunLoop.current.add(autoFollowTimer, forMode: .default)
}
/** Centers the map in guidance mode. */
@objc private func recenterMap() {
if mapView.navigator?.isGuidanceActive == true {
mapView.cameraMode = .following
}
autoFollowTimer.invalidate()
autoFollowTimer = nil
}
}
অবজেক্টিভ-সি
@interface YourViewController : UIViewController<GMSMapViewDelegate>
...
@end
@implementation YourViewController {
GMSMapView *_mapView;
NSTimer *_autoFollowTimer;
...
}
...
- (void)viewDidLoad {
[super viewDidLoad];
...
_mapView.delegate = self;
...
}
...
/** Implements the GMSMapViewDelegate protocol. */
- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture {
if (!_mapView.navigator.guidanceActive) return;
if (!gesture) return;
[_autoFollowTimer invalidate];
_autoFollowTimer = [NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(recenterMap)
userInfo:nil
repeats:NO];
}
/** Centers the map in guidance mode. */
- (void)recenterMap {
if (_mapView.navigator.guidanceActive) {
_mapView.cameraMode = GMSNavigationCameraModeFollowing;
}
[_autoFollowTimer invalidate];
_autoFollowTimer = nil;
}
@end