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.
65 lines
2.2 KiB
65 lines
2.2 KiB
#if !defined(__has_feature) || !__has_feature(objc_arc) |
|
#error "This file requires ARC support." |
|
#endif |
|
|
|
#import "GoogleMapsDemos/Samples/TileLayerViewController.h" |
|
|
|
#import <GoogleMaps/GoogleMaps.h> |
|
|
|
@implementation TileLayerViewController { |
|
UISegmentedControl *_switcher; |
|
GMSMapView *_mapView; |
|
GMSTileLayer *_tileLayer; |
|
NSInteger _floor; |
|
} |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.78318 |
|
longitude:-122.403874 |
|
zoom:18]; |
|
|
|
_mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; |
|
_mapView.buildingsEnabled = NO; |
|
_mapView.indoorEnabled = NO; |
|
self.view = _mapView; |
|
|
|
// The possible floors that might be shown. |
|
NSArray *types = @[ @"1", @"2", @"3" ]; |
|
|
|
// Create a UISegmentedControl that is the navigationItem's titleView. |
|
_switcher = [[UISegmentedControl alloc] initWithItems:types]; |
|
_switcher.selectedSegmentIndex = 0; |
|
_switcher.autoresizingMask = UIViewAutoresizingFlexibleWidth; |
|
_switcher.frame = |
|
CGRectMake(0, 0, 300, _switcher.frame.size.height); |
|
self.navigationItem.titleView = _switcher; |
|
|
|
// Listen to touch events on the UISegmentedControl, force initial update. |
|
[_switcher addTarget:self action:@selector(didChangeSwitcher) |
|
forControlEvents:UIControlEventValueChanged]; |
|
[self didChangeSwitcher]; |
|
} |
|
|
|
- (void)didChangeSwitcher { |
|
NSString *title = |
|
[_switcher titleForSegmentAtIndex:_switcher.selectedSegmentIndex]; |
|
NSInteger floor = [title integerValue]; |
|
if (_floor != floor) { |
|
// Clear existing tileLayer, if any. |
|
_tileLayer.map = nil; |
|
|
|
// Create a new GMSTileLayer with the new floor choice. |
|
GMSTileURLConstructor urls = ^(NSUInteger x, NSUInteger y, NSUInteger zoom) { |
|
NSString *url = [NSString |
|
stringWithFormat:@"https://www.gstatic.com/io2010maps/tiles/9/L%zd_%tu_%tu_%tu.png", |
|
floor, zoom, x, y]; |
|
return [NSURL URLWithString:url]; |
|
}; |
|
_tileLayer = [GMSURLTileLayer tileLayerWithURLConstructor:urls]; |
|
_tileLayer.map = _mapView; |
|
_floor = floor; |
|
} |
|
} |
|
|
|
@end
|
|
|