/samples/SampleMap/Classes/MainViewController.m
http://github.com/route-me/route-me · Objective C · 99 lines · 57 code · 24 blank · 18 comment · 1 complexity · 29db34e4dd21de2a5ce75f7a07bf7d8a MD5 · raw file
- //
- // MainViewController.m
- // SampleMap : Diagnostic map
- //
- #import "MainViewController.h"
- #import "SampleMapAppDelegate.h"
- #import "MainView.h"
- #import "RMCloudMadeMapSource.h"
- @implementation MainViewController
- @synthesize mapView;
- @synthesize infoTextView;
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
- if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
- // Custom initialization
- }
- return self;
- }
- // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- - (void)viewDidLoad {
- [super viewDidLoad];
- [mapView setDelegate:self];
- id myTilesource = [[[RMCloudMadeMapSource alloc] initWithAccessKey:@"0199bdee456e59ce950b0156029d6934" styleNumber:999] autorelease];
-
- // have to initialize the RMMapContents object explicitly if we want it to use a particular tilesource
- [[[RMMapContents alloc] initWithView:mapView
- tilesource:myTilesource] autorelease];
-
- /* -- Uncomment to constrain view
- [mapView setConstraintsSW:((CLLocationCoordinate2D){-33.942221,150.996094})
- NE:((CLLocationCoordinate2D){-33.771157,151.32019})]; */
-
- [self updateInfo];
- }
- /*
- // Override to allow orientations other than the default portrait orientation.
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- // Return YES for supported orientations
- return (interfaceOrientation == UIInterfaceOrientationPortrait);
- }
- */
- - (void)didReceiveMemoryWarning {
- RMLog(@"didReceiveMemoryWarning %@", self);
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
- }
- - (void)viewDidAppear:(BOOL)animated {
- [self updateInfo];
- }
- - (void)dealloc {
- LogMethod();
- self.infoTextView = nil;
- self.mapView = nil;
- [super dealloc];
- }
- - (void)updateInfo {
- RMMapContents *contents = self.mapView.contents;
- CLLocationCoordinate2D mapCenter = [contents mapCenter];
-
- double truescaleDenominator = [contents scaleDenominator];
- double routemeMetersPerPixel = [contents metersPerPixel];
- [infoTextView setText:[NSString stringWithFormat:@"Latitude : %f\nLongitude : %f\nZoom: %.2f Meter per pixel : %.1f\nTrue scale : 1:%.0f\n%@\n%@",
- mapCenter.latitude,
- mapCenter.longitude,
- contents.zoom,
- routemeMetersPerPixel,
- truescaleDenominator,
- [[contents tileSource] shortName],
- [[contents tileSource] shortAttribution]
- ]];
- }
- #pragma mark -
- #pragma mark Delegate methods
- - (void) afterMapMove: (RMMapView*) map {
- [self updateInfo];
- }
- - (void) afterMapZoom: (RMMapView*) map byFactor: (float) zoomFactor near:(CGPoint) center {
- [self updateInfo];
- }
- @end