Для Google Maps iOS SDK, текущее местоположение иногда отображается в 0,0

Не уверен, почему это происходит, но когда это произойдет, мы бы предпочли не показывать пользователю, что его текущее местоположение составляет 0,0 (оно находится посреди океана у побережья Южной Африки). Есть ли способ определить, когда это происходит, чтобы мы могли показать сообщение об ошибке или что-то пользователю?

1 ответ

Похоже, вы не авторизованы для доступа к текущему местоположению устройства. Для этого вам нужно добавить эти два ключа в свой список:

 NSLocationAlwaysUsageDescription
 NSLocationWhenInUseUsageDescription

Теперь, когда вы закончили с этим, вам нужно будет запросить авторизацию следующим образом:

if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
{
    [locationManager requestWhenInUseAuthorization];
}

Теперь, когда вы закончили авторизацию, вам нужно начать получать обновления местоположения. Для этого используйте эту строку:

[locationManager startUpdatingLocation];

Теперь, если вы хотите перейти в текущее местоположение, вам нужно реализовать этот метод здесь:

 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
               CLLocation *location = [locations lastObject];
                GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:location.coordinate.latitude longitude:location.coordinate.longitude zoom:currentZoom];                                                                   
    [self.gMapView animateToCameraPosition:camera];
}

Это будет постоянно обновлять карту с текущим местоположением. Если вы просто хотите перейти к текущему местоположению один раз, просто поместите условный оператор для него.

Если пользователь отказывает в разрешении, будет вызван следующий метод:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
if([CLLocationManager locationServicesEnabled])
{
    if([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)
    {
     // Put your alert here.
        }
    }
  }
Другие вопросы по тегам