Я пытался центрировать вид карты по местоположению пользователей.Это также должно обновляться по мере регистрации изменения местоположения.Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке приложения я не могу понять текущую широту и долготу, чтобы применить центрирование и масштабирование.
Это ключевые фрагменты кода, которые у меня есть до сих пор ...
- (void)viewDidLoad
{
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
[self updateMapZoomLocation:locationManager.location];
[super viewDidLoad];
}
Идея состоит в том, что он должен создать экземпляр менеджера местоположений, а затем начать обновление местоположения.Наконец, он должен запустить функцию, которую я написал, чтобы соответственно обновить вид карты ...
- (void)updateMapZoomLocation:(CLLocation *)newLocation
{
MKCoordinateRegion region;
region.center.latitude = newLocation.coordinate.latitude;
region.center.longitude = newLocation.coordinate.longitude;
region.span.latitudeDelta = 0.1;
region.span.longitudeDelta = 0.1;
[map setRegion:region animated:YES];
}
Однако, похоже, этого не происходит.Приложение собирается и работает нормально, но отображается только черный экран - как будто координаты не существуют?!
У меня также есть метод делегата, который обрабатывает любые обновления, вызывая функцию выше...
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
[self updateMapZoomLocation:newLocation];
}
Я пытался посмотреть на некоторые другие подобные вопросы, которые были заданы и на которые были даны ответы ранее, однако я все еще не могу найти решение, которое мне нужно.
Любая помощь в этом была бы очень признательна;Я часами трал в интернете в поисках помощи и решений.
пс.'map' - это mapView.