2015-12-16 2 views
0

Как показать пользователя на карте с помощью mapkit в IOS. Этот код показывает только Индию на карте вместо заданных координат.Как показать пользователя на карте с помощью mapkit в IOS

mapView.delegate = self; 
    mapView.showsUserLocation = YES; 
    objLocationManager = [[CLLocationManager alloc] init]; 
    objLocationManager.distanceFilter = kCLDistanceFilterNone; 
    objLocationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; 
    objLocationManager.delegate = self; 
    #ifdef __IPHONE_8_0 
    if(IS_OS_8_OR_LATER) { 
     // Use one or the other, not both. Depending on what you put in info.plist 
     //[objLocationManager requestWhenInUseAuthorization]; 
     [objLocationManager requestAlwaysAuthorization]; 
    } 
    #endif 
    [objLocationManager startUpdatingLocation]; 

    mapView.showsUserLocation = YES; 
    [mapView setMapType:MKMapTypeStandard]; 
    [mapView setZoomEnabled:YES]; 
    [mapView setScrollEnabled:YES]; 
    mapView.delegate=self; 

ответ

1

Вы начинаете Расположение обновления и вы получите ваше текущее местоположение через него, но как MKMapview будет знать об изменениях Location? Для MKMap View для принятия изменений местоположения вам необходимо установить делегат в MKMapview и ту часть, что вы уже сделали, но вы забыли метод делегата.

- (void)mapView:(MKMapView *)aMapView didUpdateUserLocation:(MKUserLocation *)aUserLocation {} 

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

Если вы собираетесь использовать метод делегатов по умолчанию, не забудьте подтвердить MKMapViewDelegate.

дайте нам знать, если работа, я уверен, что это будет ... Иметь хороший день

+0

Да, я уже использовал этот делегат и упомянул код их MKCoordinateRegion область = MKCoordinateRegionMakeWithDistance (userLocation.coordinate, 800, 800); [self.mapView setCenterCoordinate: mapView.userLocation.location.coordinate animated: YES]; [self.mapView setRegion: [self.mapView regionThatFits: region] анимированный: YES]; это тоже не работает. –

+0

Журнал, напечатанный в моей программе, - это попытка обновления MapKit без запроса авторизации местоположения. Необходимо сначала вызвать [CLLocationManager requestWhenInUseAuthorization] или - [CLLocationManager requestAlwaysAuthorization]. –

+0

После добавления нескольких строк его покажите увеличенное местоположение, но не покажите аннотацию на карте. MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance (zoomLocation, 0.5 * METERS_PER_MILE, 0.5 * METERS_PER_MILE); [self.mapView setRegion: viewRegion animated: YES]; –

Смежные вопросы