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.
73 lines
2.1 KiB
73 lines
2.1 KiB
#if !defined(__has_feature) || !__has_feature(objc_arc) |
|
#error "This file requires ARC support." |
|
#endif |
|
|
|
#import "GoogleMapsDemos/Samples/PanoramaViewController.h" |
|
|
|
#import <GoogleMaps/GoogleMaps.h> |
|
|
|
static CLLocationCoordinate2D kPanoramaNear = {40.761388, -73.978133}; |
|
static CLLocationCoordinate2D kMarkerAt = {40.761455, -73.977814}; |
|
|
|
@interface PanoramaViewController () <GMSPanoramaViewDelegate> |
|
@end |
|
|
|
@implementation PanoramaViewController { |
|
GMSPanoramaView *_view; |
|
BOOL _configured; |
|
UILabel *_statusLabel; |
|
} |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
|
|
_view = [GMSPanoramaView panoramaWithFrame:CGRectZero |
|
nearCoordinate:kPanoramaNear]; |
|
_view.backgroundColor = [UIColor grayColor]; |
|
_view.delegate = self; |
|
self.view = _view; |
|
|
|
// Add status label, initially hidden. |
|
_statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 30)]; |
|
_statusLabel.alpha = 0.0f; |
|
_statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; |
|
_statusLabel.backgroundColor = [UIColor blueColor]; |
|
_statusLabel.textColor = [UIColor whiteColor]; |
|
_statusLabel.textAlignment = NSTextAlignmentCenter; |
|
|
|
[_view addSubview:_statusLabel]; |
|
} |
|
|
|
#pragma mark - GMSPanoramaDelegate |
|
|
|
- (void)panoramaView:(GMSPanoramaView *)panoramaView |
|
didMoveCamera:(GMSPanoramaCamera *)camera { |
|
NSLog(@"Camera: (%f,%f,%f)", |
|
camera.orientation.heading, camera.orientation.pitch, camera.zoom); |
|
} |
|
|
|
- (void)panoramaView:(GMSPanoramaView *)view |
|
didMoveToPanorama:(GMSPanorama *)panorama { |
|
if (!_configured) { |
|
GMSMarker *marker = [GMSMarker markerWithPosition:kMarkerAt]; |
|
marker.icon = [GMSMarker markerImageWithColor:[UIColor purpleColor]]; |
|
marker.panoramaView = _view; |
|
|
|
CLLocationDegrees heading = GMSGeometryHeading(kPanoramaNear, kMarkerAt); |
|
_view.camera = |
|
[GMSPanoramaCamera cameraWithHeading:heading pitch:0 zoom:1]; |
|
|
|
_configured = YES; |
|
} |
|
} |
|
|
|
- (void)panoramaViewDidStartRendering:(GMSPanoramaView *)panoramaView { |
|
_statusLabel.alpha = 0.8f; |
|
_statusLabel.text = @"Rendering"; |
|
} |
|
|
|
- (void)panoramaViewDidFinishRendering:(GMSPanoramaView *)panoramaView { |
|
_statusLabel.alpha = 0.0f; |
|
} |
|
|
|
@end
|
|
|