iOS: разница между местоположением, которое я получаю из CLLocationManager, и свойством userLocation MKMapView - PullRequest
4 голосов
/ 10 января 2012

У меня есть два контроллера вида: tweetViewController и MapViewController. Первый предназначен для пользователя, чтобы опубликовать твит, и в нем я использую CLLocationManager, чтобы получить местоположение пользователя. Как только locationManager:didUpdateToLocation:fromLocation: вызван, я получил "locationA", я напомню пользователю, что его местоположение было установлено.

Пользователь может просто опубликовать твит с "locationA". Или измените местоположение вручную (если оно недостаточно точное), щелкнув информацию о местоположении. В этом случае MapViewController выдвигается, и существует перетаскиваемая аннотация булавки, связанная с местоположением A, выпадающим на карту. Я обнаружил, что булавка находится на расстоянии сотен метров от меня. Затем я установил mapView.showUserLocation = YES. И я обнаружил, что местоположение синего пузыря намного точнее, чем булавка. Итак, мой вопрос: как я могу получить mapView userLocation в tweetViewController, а не в местоположении из CLLocationManager.

Я в Китае, я искал ту же проблему. Некоторые люди говорят, что карта в Китае трансформируется, поэтому тогда должно быть смещение. Есть предложения по решению проблемы? Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Наконец , Я использую экземпляр MKMapView для решения этой проблемы.

Настройка

mapView.showUserLocation = YES/NO; //to start/stop locating.

Использование

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 

, чтобы получить местоположение пользователя. В моем контроллере mapView не отображается, он используется только для определения местоположения пользователя, и местоположение более точное, чем то, которое я получаю из locManager.

0 голосов
/ 10 января 2012

CLLocationManager использует одни и те же данные во всех своих экземплярах. MKMapView использует данные CLLocationManager для внутренних целей. Тем не менее, решение сделать то, что вы хотите сделать, это позволить MKMapView делать свое дело в отношении showUserLocation:. В то же время создайте экземпляр CLLocationManager и его делегата.

В сообщениях делегатов вы найдете координаты GPS синего пина MKMapView. Все будет синхронизировано друг с другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...