Недавно я работал над локальным приложением и замечаю некоторые странные значения для CLLocation. Я часто получаю горизонтальную точность 1414 м и вертикальную точность -1. Есть ли подсказки, что это означает? Насколько я могу судить, эти моменты часто очень точны. В чем разница между verticalAccuracy и horizontalAccuracy?
На что ссылаются горизонтальная точность и вертикальность?
Ответ 1
-1 для verticalAccuracy
указывает, что высота в CLLocation
недопустима. Вы получаете только высоту с 3D-позицией GPS.
1414 для horizontalAccuracy
указывает, что горизонтальное положение (lat/lon) может быть до 1414 м (это всего лишь оценочная ошибка). Это, вероятно, местоположение, определяемое триангуляцией ячеек ячейки или данными о местоположении WiFi. Месторасположение GPS обычно составляет 100 м или лучше.
Чтобы получить место с более высокой точностью (300 м или лучше), вам нужно установить desiredAccuracy
и дождаться, когда GPS-приемник заблокирует не менее 3 спутников (или 4 для 3D-исправления). Пока это не произойдет, CLLocationManager
даст вам лучшее, что есть в результатах триангуляции Wi-Fi или Cell tower.