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.
66 lines
2.2 KiB
66 lines
2.2 KiB
![]()
2 years ago
|
#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
|