Я хочу использовать представление карты, показывающее мое текущее местоположение, мое тестовое устройство - Ipad mini (WIFI, IOS7).Контакт IOS MapKit отсутствует в текущем местоположении
Я обновить текущее местоположение моей UIMapView в методе делегата
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *currentLocation = [locations lastObject];
MyAnnotation *start = [[MyAnnotation alloc] init];
start.coordinate = currentLocation.coordinate;
[_mapView addAnnotation:start];
MKCoordinateRegion region;
region = MKCoordinateRegionMakeWithDistance(currentLocation.coordinate, 100, 100);
[_mapView setRegion:region animated:YES];
}
Но я получаю результат, как на фото ниже, мое текущее местоположение в голубая точка, но красный штырь находится в другом месте. Я думаю, что штырь должен соответствовать моему текущему местоположению, синей точке. Но это не так. Может ли кто-нибудь сказать мне причину, спасибо.
Попробуйте добавить аннотацию в методе делегата didUpdateUserLocation вида карты и используя userLocation.coordinate вместо собственного CLLocationManager (который может использовать различные критерии фильтрации, чем внутренний адрес m map для отображения голубой точки). – Anna
My didUpateUserLocation delegate method похож на приведенный ниже код, но он получает тот же результат .:- (void) mapView: (MKMapView *) mapView didUpdateUserLocation: (MKUserLocation *) userLocation { CLLocationCoordinate2D coord = userLocation.location.coordinate; MKCoordinateRegion reg = MKCoordinateRegionMakeWithDistance (координата, 100, 100); mapView.region = reg; } – billwang1990
Код в вашем комментарии не добавляет аннотации. Он просто устанавливает регион карты. Я предлагаю сделать addAnnotation (а также настройку области) в файле doUpdateUserLocation вместо didUpdateLocations. – Anna