2009-07-28 2 views
5

Я бы хотел использовать надежные места, даже на старом iphone. Однако многие показания (в частности, сотовые вышки) слишком неточны. Я думаю.Насколько точна точность CLLocation?

Когда я рисую свою позицию + радиус точности (или смотрю приложение Google Maps), я замечаю, что центр оцененного круга, как правило, близок к моему физическому местоположению. Я предполагаю, что если я сокращу число «точность» пополам, я все равно буду в круге в 99% случаев.

Я считаю, что это вероятностная игра - менеджер местоположений пытается дать оценку, которая соответствует 99.99999% времени, поэтому они дают преднамеренно широкий запас. Любые мысли/информация?

ответ

0

Когда вы используете CoreLocation, вы возвращаетесь к «ответам», которые становятся все лучше и лучше. Я заметил, что «лучший» ответ почти всегда точнее в пределах 100 м, поэтому теоретически вы, возможно, можете сократить «буфер», который вы обычно даете. Единственный способ узнать об этом, и это то, что я буду делать, - это проверить тестовый тест. Найдите iphones и ipods из всех поколений и посмотрите, какие типы точности вы получаете и какие типы результатов вы получаете. Во многих отношениях это зависит от типа приложения, которое вы создаете, но если вы хотите доставить важную или важную информацию на основе того, где находится пользователь, вам действительно нужно дождаться, когда инфраструктура даст вам точное местоположение.

+0

Я готов дождаться максимально возможного местоположения. Мое беспокойство больше «точно, насколько точным является это сообщенное местоположение?». Моя уверенность в том, что точность измерений (1000 м, 10 м и т. Д.) Очень высока. – BankStrong

+0

И вы правы, по понятным причинам. – TahoeWolverine

2

Структура CoreLocation дает вам радиус круга для каждого CLLocation, который вы используете с помощью свойств горизонтальной точности/вертикали. Можно указать на CLLocationManager свойство desiredAccuracy, которые используют эти типы:

kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers;

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

+0

Я менее сконцентрирован на вопросе о желаемой точности и больше заинтересован в знании «истинной» точности. Когда CoreLocation сообщает вам, что «это место хорошо в радиусе 100 метров», действительно ли это означает, что «это место будет находиться в пределах 50 метров в 99,9% случаев»? – BankStrong

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