iPhone текущие пользовательские координаты места, показывающие (0,0)

Если можно изменить MyClass2, самый легкий способ обратиться, это, объявляют переходный процесс свойства.

8
задан Mazyod 26 January 2013 в 06:49
поделиться

6 ответов

Насколько мне известно, карта не будет пытаться получить местоположение пользователя, пока оно не отобразится. Хороший тест для этого - когда вы получаете диалоговое окно с вопросом, нормально ли приложение определять местоположение пользователей? По моему опыту, это всегда возникает только после того, как карта отображается на экране.

Лучший способ решить эту проблему, если у вас должно быть местоположение при запуске, - реализовать классический код обработчика Core Location и получить местоположение из этого первоначально. Вы можете перестать получать обновления оттуда, как только карта будет запущена, и получить дальнейшие изменения оттуда (хотя, если вам нужны постоянные обновления, вам лучше просто придерживаться стандартных обновлений Core Location. Если вы думаете об этом, когда у вас есть "показывает пользователю место расположения"

9
ответ дан 5 December 2019 в 10:42
поделиться

Из документа по CLLocation , если точность по горизонтали или по вертикали отрицательная, это означает, что невозможно найти значение. Я подозреваю, что вот что здесь происходит. Имейте в виду, что если вы посмотрите один раз, это может дать вам приблизительное последнее известное местоположение, прежде чем когда-либо улучшится результат точности.

Горизонтальная точность Широта координаты и долгота определить центр круг, и это значение указывает радиус этого круга. Отрицательный значение указывает, что координата широта и долгота неверны.

2
ответ дан 5 December 2019 в 10:42
поделиться

Координаты следует получать из CoreLocation вместо MapKit. MapView отобразит местоположение пользователя после того, как он действительно получит текущее местоположение. Перед тем как местоположение определено, широта и долгота устанавливаются равными 0. 3

Вы должны создать instace CLLocationManager, установить делегат. Вы получите уведомление, когда местоположение будет определено.

Перед тем, как местоположение определено, широта и долгота устанавливаются равными 0. 3

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

Перед тем как местоположение определено, широта и долгота устанавливаются равными 0. 3

Вы должны создать instace CLLocationManager, установить делегат. Вы получите уведомление, когда местоположение будет определено.

1
ответ дан 5 December 2019 в 10:42
поделиться

If you try to get user co-ordinates in viewDidLoad() method, it will always give 0,0 result, because it is not yet initialized.

You should take a look at "Where Am I" sample code form Apple site. It explains what you need. You need to use CLLocationManager class. You will also need the method

*-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation*

This method will be called automatically every time when user location is updated. If you are using simulator, then this method will be called only once and it will return some default co-ordinates.

Hope it helps.

4
ответ дан 5 December 2019 в 10:42
поделиться

В этом ответе объясняется, как настроить отображение карты с местоположением пользователя:

Как инициализировать MKMapView с указанным расположением пользователя?

0
ответ дан 5 December 2019 в 10:42
поделиться

Добавьте это в секцию viewDidLoad

mapView.showsUserLocation = YES;
-1
ответ дан 5 December 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: