Я создаю приложение «Карта» на iPhone, используя MKMapView
.
Я успешно нашел свои current location
и zoom
в этой точке следующим образом:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.mapView.delegate = self;
self.locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[self.mapView setShowsUserLocation:YES];
}
-(void) mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
id<MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 1550, 1550);
[self.mapView setRegion:region animated:YES];
}
Проблема, которую я хочу решить:
У меня location
на map
(этот код в viewDidLoad
):
CLLocationCoordinate2D location = [self getLocationFromAddressString:@"San Francisco, CA, United States"];
// location.latitude = 37.78608;
// location.longitude = -122.407398;
MapViewAnnotation *mapAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"Store location" coordinate:location];
[self.mapView addAnnotation:mapAnnotation];
а это mapViewAnnotation:
@implementation MapViewAnnotation
@synthesize title = _title;
@synthesize coordinate = _coordinate;
- (id) initWithTitle:(NSString *) t coordinate:(CLLocationCoordinate2D) c {
self = [super init];
if(self) {
_title = t;
_coordinate = c;
}
return self;
}
@end
Я хочу иметь правильные zoomLevel
и mapCenter
для этого location
и моего current location
.
Я мог бы успешно сделать это в Android, используя MapController.zoomToSpan()
. Как я могу исправить это в iPhone Map?