Як вимірюється точність розташування в Android?


95

Хтось знає правильну інтерпретацію вимірювань точності, які повертає getAccuracy ()? Наприклад, чи розраховуються вони як:

  • Імовірність кругової помилки (мається на увазі, якщо я правильно розумію, радіус кола довіри 50%)?

  • Радіус кола довіри 95%?

  • щось ще?

Крім того, які фактичні розрахунки використовуються і наскільки ми можемо на них покластися? Чи залежить це від джерела оцінки місцезнаходження (GPS проти мережі)?

Велике спасибі за будь-яку пораду, яку ви можете мені дати.


4
Питання полягало не в тому, як отримується розташування, а в фактичному визначенні поверненого значення getAccuracy у класі розташування.
Януш,

Відповіді:


67

Щоб відповісти на одну частину запитання, число the radius of 68% confidence,означає, що існує 68% шансів, що справжнє місце розташування знаходиться в межах цього радіуса вимірюваної точки в метрах. Якщо припустити, що помилки зазвичай розподіляються (що, як кажуть документи, не обов'язково відповідає дійсності), це означає, що це одне стандартне відхилення. Наприклад, якщо Location.getAccuracyповертає 10, тоді є 68% ймовірності, що справжнє місце розташування пристрою знаходиться в межах 10 метрів від повідомлених координат.

http://developer.android.com/reference/android/location/Location.html#getAccuracy ()


Дякую, Карле. Я бачу, що зараз вони оновили документацію, що дуже корисно. Це саме те, що я шукав, хоча я думаю, що пункт dscheffy також важливий.
Джон Р. Б. Палмер,

@paracycle Також має на увазі те, що про точність повідомляє постачальник, який, зрештою, може вирішити обробляти це, як завгодно. Наприклад, використання DDMS надасть значення 0,0 для точності, оскільки ви вводите точну координату.
karl

11
@AidenStrydom, ні. Якщо точність повертає 1000, це означає, що є 68% шансів, що реальне місце розташування знаходиться в межах 1000 метрів від наданого місця.
karl

Чи впливає на точність погода?
Юрі Тіхоміров

@karl ти маєш на увазі, що 32% перевищують 10 метрів? (наприклад, 11 або 12 або більше метрів).
Девід

44

Місце розташування - це складна задача, коли у вас обмежений час автономної роботи і коли немає сигналу GPS у будівлях та в районах з великою кількістю будівель тощо. Але Android робить це набагато простішим. Коли ви запитуєте місцезнаходження, вам просто потрібно вказати, яка точність вам потрібна.

Якщо ви вказали, що вам потрібен accuracyприклад *100 meters*, Android спробує отримати місцезнаходження, і якщо воно може отримати місце з точністю до 70 метрів, воно поверне його вам, але якщо Android може отримати місце з точністю вище 100 метрів, ваша заявка буде чекати і не отримає нічого, доки не з’явиться місце з такою точністю.

Зазвичай Android спочатку отримує ідентифікатор стільникового зв'язку, а потім надсилає його на сервер Google, який відображає такі ідентифікатори стільникового зв'язку, і сервер повертає широту та довготу з точністю, яка є низькою для прикладу 1000 метрів. До цього часу Android також спробує побачити всі мережі Wi-Fi в цьому районі, а також надішле інформацію про них на сервер Google, і якщо можливо, сервер Google поверне нове місце з більш високою точністю, наприклад, 800 метрів.

На цей час GPS буде ввімкнено. GPS-пристрою потрібно щонайменше 30 секунд від холодного старту, щоб отримати виправлення, тому, якщо вдасться виправити, він поверне широту та довготу, але знову ж із точністю, яка буде максимально можливою для прикладу 100 метрів. Чим довше GPS працює, тим більшу точність ви отримаєте.

Важливе зауваження: Перші два методи вимагають підключення до Інтернету. Якщо з’єднання даних немає, доведеться почекати GPS, але якщо пристрій знаходиться в будівлі, ви, мабуть, не отримаєте місцезнаходження.


14
Це насправді не відповідає на питання, що означає "точність 100 м".
Томаш,

2
@vendor, будь ласка, вкажіть посилання, з якого ви отримали цю інформацію. ваша відповідь допомогла мені зрозуміти, як це працює, дякую.
чесний гравець

@ справедливий гравець Частина інформації міститься на веб-сайті developer.android.com, і я провів деякі тести на основі служб розташування в Android.
продавець

9
Який API дозволяє вказати точність 100 метрів? Я бачу критерії ACCURACY_COARSE, ACCURACY_FINE, ACCURACY_HIGH, ACCURACY_LOW, ACCURACY_MEDIUM, але не 100 метрів.
Cris

На чому ґрунтується ця відповідь?
AlikElzin-kilaka

18

Документація на getAccuracy говорить, що вона повертає точність у метрах. Я гадаю, що це означає, що якщо ви отримаєте повернене значення 60, ви опинитесь десь у колі з радіусом 60 метрів навколо поставленого місця.


1
якщо я стежу за своїми картами Google і моєю поточною позицією, ви маєте рацію ... в більшості випадків. Також траплялося, що мій телефон показував мою позицію приблизно на 2-3 кілометри від моєї реальної позиції ... Мене також цікавить це питання
poeschlorn

1
Дякую. Я згоден з тим, що значення, яке повертається методом getAccuracy, знаходиться в метрах і що це повинен бути радіус кола (або, можливо, сфери, коли висота також вказана в оцінці місця розташування). Але з цим також повинна бути пов'язана ймовірність, і дивно, що в документації не вказано, що це за вірогідність і як вона дійшла. Я бачив одне повідомлення в Інтернеті, де хтось припускав, що це може бути CEP, але це, здавалося, було лише здогадкою, тому я б дуже хотів знайти спосіб підтвердити, чи це то, або 95% коло довіри чи щось інше.
Джон Р. Б. Палмер,

1
Ось кілька посилань, які корисні для розуміння питання (але не вирішують його): users.erols.com/dlwilson/gpsacc.htm groups.google.com/group/android-developers/browse_thread/thread/…
John RB Palmer

12

Наскільки я бачу, швидко переглянувши вихідний код Android, це залежить від апаратного забезпечення пристрою та того, яке значення він вирішить повернути.

GpsLocationProvider.javaФайл має reportLocationметод , який буде викликатися в машинному коді і пропускається точність в якості значення. Таким чином, здається, жодного розрахунку не відбувається в рамках, принаймні.

QCOM (який я вважаю , це Qualcomm) GPS мерзотник репо проходить в hor_unc_circularпараметр для точності , який , здається, має на увазі , що, по крайней мере, що реалізація використовує CER.


4

Якщо, як це вказано в документації, це точність, то фактична позиція користувачів знаходиться десь у межах QUOTED_LOCATION +/- ТОЧНОСТІ. Тож точність визначає радіус, де ви могли б очікувати перебування користувача. У документах не сказано, наскільки ви можете бути впевнені, що користувач перебуває в радіусі - стандарт становить 95%, тому, я думаю, це все.


1
Мене більше цікавить впевненість, як вказує питання. Це може бути одним із багатьох вимірювань gpsinformation.net/main/errors.htm
Самуель

1

Я розумію, що ви просите певної відповіді з точки зору ймовірності, але, думаю, тут слід врахувати дві речі.

По-перше, провайдер повинен вирішити, що він хоче вкласти в цю вартість, тому, залежно від провайдера, це може бути просто поганою здогадкою.

По-друге, може допомогти думати про це як про потенційну проблему округлення. Якщо я намагаюся розрахувати ваше місцезнаходження на основі кількості входів, і деякі з цих входів доступні лише для певної кількості значущих цифр, тоді можна обчислити місцезнаходження з заданою кількістю значущих цифр.

Подумайте про це так - що "приблизно" один плюс "близько" сто. Можливо, близько ста, тому що точність сотні, швидше за все, менша за величину 1. Якщо я раптом скажу, що відповідь приблизно 101, то я в кінцевому підсумку маю на увазі рівень точності, якого там не було. Однак, якщо я насправді вказую точність, то я можу сказати, що це 100 плюс-мінус 10 плюс 1 плюс-мінус .1 становить 101 плюс-мінус 10. Я розумію, що це, як правило, стосується чогось типу 95% рівня впевненості ( стандартна помилка), але знову ж таки, все передбачає, що постачальник розуміє статистику, а не просто здогадується.


Дякую - це дуже корисно. Що стосується першого випуску, мій підхід до відстеження місцеположення полягав у збиранні оцінок точності, а також в проведенні "перевірки реальності", обчислюючи відстані та час між послідовними точками, а потім відкидаючи ті, які потребували б нереальних швидкостей (навіть якщо, як це іноді випадку, вони повідомляються як мають точну точність). Якщо у вас є якісь інші пропозиції, я хотів би їх почути.
Джон Р. Б. Палмер,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.