Получить координаты UserLocation с помощью MapKit

Я использую MapKit в своем приложении и отклоняю местоположение пользователя с помощью


[mapview setShowUserLocation:YES];

Я хочу установить region.center.latitude и region.center.longitude с координатой userLocation, как это сделать?


person ludo    schedule 01.02.2010    source источник


Ответы (5)


Вот мой ответ, я пробую что-то подобное, и оно работает:


//inside my ViewDidLOad
locManager = [[CLLocationManager alloc] init];
[locManager setDelegate:self];
[locManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locManager startUpdatingLocation];

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation  {
CLLocationCoordinate2D loc = [newLocation coordinate]; [maptView setCenterCoordiante:loc]; }
person ludo    schedule 10.03.2010

Намного легче:

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.location.coordinate, 1500, 1500);
[mapView setRegion:region animated:YES];
}
person DAS    schedule 15.08.2012
comment
Не забудьте установить mapView.delegate! - person DAS; 15.08.2012
comment
Это лучшее решение. Спасибо вам, ребята. - person Jim Chang; 18.09.2012

По какой-то причине у меня это не сработало. Это приводит меня к координатам (0,0000, 0,0000). Ниже мой код, если у вас есть возможность его проверить. Спасибо за помощь!

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

MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };

CLLocationCoordinate2D myCoord = {mapView.userLocation.location.coordinate.latitude,mapView.userLocation.location.coordinate.longitude};
[mapView setCenterCoordinate:myCoord animated:YES];

region.span.longitudeDelta = 0.01f;
region.span.latitudeDelta = 0.01f;
[mapView setRegion:region animated:YES]; 

[mapView setDelegate:self];
person Adam Storr    schedule 20.12.2010

Думаю, это ответ на ваш вопрос: Возвращение координат местоположения пользователя Mapkit

(использует mapView.userLocation.location.coordinate.latitude и mapView.userLocation.location.coordinate.longitude properties)

а затем введите эти координаты в

-(void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated

вашего экземпляра MKMapView.

person yonel    schedule 01.02.2010
comment
да, или я могу использовать region.center.latitude = mapView.userLocation.location.coordinate.latitude; Думаю, так будет работать? - person ludo; 01.02.2010
comment
Хм, я не уверен, что это сработает, я бы порекомендовал вам создать локальный CLLocationCoordinate2D и вставить его в данный селектор. Вы получаете контроль над параметром анимации, который также может улучшить внешний вид вашего приложения с помощью анимации. - person yonel; 01.02.2010
comment
Я действительно не знаю, как использовать селектор, который вы мне дали, но я попробую, если у вас есть какая-либо ссылка, чтобы показать мне, будет тоже хорошо. Благодарность - person ludo; 01.02.2010
comment
что-то вроде этого должно быть нормально: CLLocationCoordinate2D myCoord = {mapView.userLocation.location.coordinate.latitude, mapView.userLocation.location.coordinate.longitude}; [mapView setCenterCoordinate: анимация myCoord: ДА]; - person yonel; 01.02.2010
comment
У меня все еще есть небольшая проблема, когда я использую NSLog (@% i: mapView.userLocation.location.coordinate.latitude); У меня нет номера местоположения, у меня есть что-то вроде того: 71502240 - person ludo; 04.02.2010

Использование делегата:

  1. Добавить делегата Mapkit: MKMapViewDelegate
  2. Метод достижения: MapView didUpdateUserLocation
    -(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
        MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.location.coordinate,
            500, 500);
        [mapView setRegion:region animated:YES];
    }
    

Без делегата:

[self.mapView setuserTrackingMode:MKUserTrackingModeFollow];
person Xiaodong Liu    schedule 23.05.2019