You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
62 lines
1.9 KiB
![]()
2 years ago
|
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||
|
#error "This file requires ARC support."
|
||
|
#endif
|
||
|
|
||
|
#import "GoogleMapsDemos/Samples/CameraViewController.h"
|
||
|
|
||
|
#import <GoogleMaps/GoogleMaps.h>
|
||
|
|
||
|
@implementation CameraViewController {
|
||
|
GMSMapView *_mapView;
|
||
|
NSTimer *timer;
|
||
|
}
|
||
|
|
||
|
- (void)viewDidLoad {
|
||
|
[super viewDidLoad];
|
||
|
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.809487
|
||
|
longitude:144.965699
|
||
|
zoom:20
|
||
|
bearing:0
|
||
|
viewingAngle:0];
|
||
|
_mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
|
||
|
_mapView.settings.zoomGestures = NO;
|
||
|
_mapView.settings.scrollGestures = NO;
|
||
|
_mapView.settings.rotateGestures = NO;
|
||
|
_mapView.settings.tiltGestures = NO;
|
||
|
|
||
|
self.view = _mapView;
|
||
|
}
|
||
|
|
||
|
- (void)moveCamera {
|
||
|
GMSCameraPosition *camera = _mapView.camera;
|
||
|
float zoom = fmaxf(camera.zoom - 0.1f, 17.5f);
|
||
|
|
||
|
GMSCameraPosition *newCamera =
|
||
|
[[GMSCameraPosition alloc] initWithTarget:camera.target
|
||
|
zoom:zoom
|
||
|
bearing:camera.bearing + 10
|
||
|
viewingAngle:camera.viewingAngle + 10];
|
||
|
[_mapView animateToCameraPosition:newCamera];
|
||
|
}
|
||
|
|
||
|
- (void)viewDidAppear:(BOOL)animated {
|
||
|
[super viewDidAppear:animated];
|
||
|
timer = [NSTimer scheduledTimerWithTimeInterval:1.f/30.f
|
||
|
target:self
|
||
|
selector:@selector(moveCamera)
|
||
|
userInfo:nil
|
||
|
repeats:YES];
|
||
|
}
|
||
|
|
||
|
- (void)viewDidDisappear:(BOOL)animated {
|
||
|
[super viewDidDisappear:animated];
|
||
|
[timer invalidate];
|
||
|
}
|
||
|
|
||
|
- (void)didReceiveMemoryWarning {
|
||
|
[super didReceiveMemoryWarning];
|
||
|
[timer invalidate];
|
||
|
}
|
||
|
|
||
|
@end
|