CameraViewController.m 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #if !defined(__has_feature) || !__has_feature(objc_arc)
  2. #error "This file requires ARC support."
  3. #endif
  4. #import "SDKDemos/Samples/CameraViewController.h"
  5. #import <GoogleMaps/GoogleMaps.h>
  6. @implementation CameraViewController {
  7. GMSMapView *_mapView;
  8. NSTimer *timer;
  9. }
  10. - (void)viewDidLoad {
  11. [super viewDidLoad];
  12. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.809487
  13. longitude:144.965699
  14. zoom:20
  15. bearing:0
  16. viewingAngle:0];
  17. _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  18. _mapView.settings.zoomGestures = NO;
  19. _mapView.settings.scrollGestures = NO;
  20. _mapView.settings.rotateGestures = NO;
  21. _mapView.settings.tiltGestures = NO;
  22. self.view = _mapView;
  23. }
  24. - (void)moveCamera {
  25. GMSCameraPosition *camera = _mapView.camera;
  26. float zoom = fmaxf(camera.zoom - 0.1f, 17.5f);
  27. GMSCameraPosition *newCamera =
  28. [[GMSCameraPosition alloc] initWithTarget:camera.target
  29. zoom:zoom
  30. bearing:camera.bearing + 10
  31. viewingAngle:camera.viewingAngle + 10];
  32. [_mapView animateToCameraPosition:newCamera];
  33. }
  34. - (void)viewDidAppear:(BOOL)animated {
  35. [super viewDidAppear:animated];
  36. timer = [NSTimer scheduledTimerWithTimeInterval:1.f/30.f
  37. target:self
  38. selector:@selector(moveCamera)
  39. userInfo:nil
  40. repeats:YES];
  41. }
  42. - (void)viewDidDisappear:(BOOL)animated {
  43. [super viewDidDisappear:animated];
  44. [timer invalidate];
  45. }
  46. - (void)didReceiveMemoryWarning {
  47. [super didReceiveMemoryWarning];
  48. [timer invalidate];
  49. }
  50. @end