Bagaimana akurasi lokasi diukur di Android?


95

Adakah yang tahu interpretasi yang tepat dari pengukuran akurasi yang dikembalikan oleh getAccuracy ()? Misalnya, apakah mereka dihitung sebagai:

  • Kemungkinan Kesalahan Melingkar (artinya, jika saya mengerti dengan benar, radius lingkaran kepercayaan 50%)?

  • Radius lingkaran kepercayaan 95%?

  • sesuatu yang lain?

Selain itu, kalkulasi apa saja yang digunakan dan seberapa besar kita bisa mengandalkannya? Apakah ini bergantung pada sumber perkiraan lokasi (GPS vs. jaringan)?

Terima kasih banyak atas saran yang bisa Anda berikan kepada saya.


4
Pertanyaannya bukanlah bagaimana lokasi diperoleh, melainkan tentang definisi sebenarnya dari nilai kembalian getAccuracy di kelas lokasi.
Janusz

Jawaban:


67

Untuk menjawab satu bagian dari pertanyaan, angka tersebut the radius of 68% confidence,berarti ada kemungkinan 68% bahwa lokasi sebenarnya berada dalam radius titik yang diukur dalam meter. Dengan asumsi bahwa kesalahan didistribusikan secara normal (yang, seperti yang dikatakan oleh dokumen, belum tentu benar), itu berarti ini adalah satu deviasi standar. Misalnya, jika Location.getAccuracymengembalikan 10, maka ada kemungkinan 68% lokasi perangkat yang sebenarnya berada dalam jarak 10 meter dari koordinat yang dilaporkan.

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


Terima kasih, Karl. Saya melihat mereka sekarang telah memperbarui dokumentasi, yang sangat membantu. Inilah yang saya cari meskipun menurut saya poin dscheffy juga penting.
John RB Palmer

@paracycle Juga membuat poin yang baik bahwa akurasi dilaporkan oleh penyedia, yang, pada akhirnya, dapat memutuskan untuk menanganinya sesuka mereka. Misalnya, menggunakan DDMS akan memberikan nilai 0,0 untuk akurasi karena Anda meletakkan koordinat yang tepat.
karl

11
@AidenStore, tidak. Jika akurasi kembali 1000, itu berarti ada kemungkinan 68% bahwa lokasi sebenarnya berada dalam jarak 1000 meter dari lokasi yang disediakan.
karl

Apakah akurasi dipengaruhi oleh cuaca?
Juri Tichomirow

@ karl maksud Anda 32% berada di luar 10 meter? (misalnya 11 atau 12 meter atau lebih).
david

44

Lokasi adalah tugas yang sulit untuk dilakukan, saat Anda memiliki masa pakai baterai terbatas dan saat tidak ada sinyal GPS di gedung dan di area dengan banyak gedung besar dan lain-lain. Namun Android membuatnya jauh lebih mudah. Saat Anda meminta lokasi, Anda hanya perlu menentukan akurasi yang Anda butuhkan.

Jika Anda menentukan yang Anda inginkan , accuracymisalnya *100 meters*, Android akan mencoba mendapatkan lokasi dan jika bisa mendapatkan lokasi dengan akurasi 70 meter, itu akan mengembalikannya kepada Anda, tetapi jika Android bisa mendapatkan lokasi dengan akurasi lebih tinggi dari 100 meter, aplikasi Anda akan menunggu dan tidak akan menerima apa pun hingga ada lokasi yang akurat.

Biasanya Android pertama-tama akan mendapatkan ID Seluler dan kemudian akan mengirimkannya ke server Google, yang memetakan ID Sel tersebut dan server akan mengembalikan garis lintang dan garis bujur dengan akurasi yang rendah misalnya 1000 meter. Saat ini Android juga akan mencoba melihat semua jaringan WiFi di area tersebut dan akan mengirimkan informasi tentangnya juga ke server Google dan jika memungkinkan server Google akan mengembalikan lokasi baru dengan akurasi yang lebih tinggi, misalnya 800 meter.

Saat ini GPS akan menyala. Perangkat GPS membutuhkan setidaknya 30 detik dari awal yang dingin untuk mendapatkan perbaikan, jadi jika bisa mendapatkan perbaikan itu akan mengembalikan garis lintang dan bujur tetapi sekali lagi dengan akurasi, yang akan setinggi mungkin misalnya 100 meter. Semakin lama GPS bekerja, semakin baik akurasi yang didapat.

Pemberitahuan penting: Dua metode pertama membutuhkan koneksi internet. Jika tidak ada koneksi data, Anda harus menunggu GPS, tetapi jika perangkat berada di dalam gedung, Anda mungkin tidak akan mendapatkan lokasi.


14
Itu tidak benar-benar menjawab pertanyaan apa arti "akurasi 100m".
Tomas

2
@vendor, mohon sebutkan referensi dari mana Anda mendapatkan info ini. jawaban Anda membantu saya memahami cara kerjanya, terima kasih.
pemain yang adil

@a fair player Beberapa informasi ada di developer.android.com dan saya telah melakukan beberapa tes dengan layanan berbasis lokasi di Android.
vendor

9
API apa yang memungkinkan Anda menentukan akurasi 100 meter? Saya melihat Kriteria ACCURACY_COARSE, ACCURACY_FINE, ACCURACY_HIGH, ACCURACY_LOW, ACCURACY_MEDIUM, tetapi tidak 100 meter.
Cris

Berdasarkan apa jawaban ini?
AlikElzin-kilaka

18

Dokumentasi di getAccuracy mengatakan bahwa ia mengembalikan akurasi dalam meter. Saya akan menebak bahwa ini berarti jika Anda mendapatkan nilai kembali 60 Anda berada di suatu tempat dalam lingkaran dengan radius 60 meter di sekitar posisi yang disediakan.


1
jika saya melihat ke peta google saya dan posisi saya saat ini Anda benar ... dalam banyak kasus. Itu juga terjadi, bahwa ponsel saya menunjukkan posisi saya sekitar 2 atau 3 kilometer dari posisi saya yang sebenarnya ... Saya juga tertarik dengan masalah ini
poeschlorn

1
Terima kasih. Saya setuju bahwa nilai yang dikembalikan oleh getAccuracy adalah dalam meter dan harus berupa jari-jari lingkaran (atau mungkin bola ketika ketinggian juga diberikan dalam perkiraan lokasi). Tetapi harus ada juga probabilitas yang terkait dengannya, dan itu aneh bahwa dokumentasi tidak mengatakan apa probabilitas itu atau bagaimana itu tiba. Saya telah melihat satu posting online di mana seseorang menyarankan bahwa itu mungkin CEP, tetapi itu sepertinya hanya tebakan jadi saya benar-benar ingin menemukan cara untuk mengonfirmasi apakah itu atau lingkaran kepercayaan 95% atau sesuatu yang lain.
John RB Palmer

1
Berikut ini beberapa tautan yang berguna untuk memahami pertanyaan (tetapi tidak menyelesaikannya): users.erols.com/dlwilson/gpsacc.htm groups.google.com/group/android-developers/browse_thread/thread/…
John RB Palmer

12

Sejauh yang saya bisa lihat dari sekilas kode sumber Android, ini tergantung pada perangkat keras perangkat dan nilai apa yang dipilihnya untuk dikembalikan.

The GpsLocationProvider.javafile memiliki reportLocationmetode yang dipanggil oleh kode asli dan dilewatkan akurasi sebagai nilai. Jadi, tampaknya tidak ada perhitungan yang terjadi setidaknya dalam kerangka tersebut.

The QCOM (yang saya percaya adalah Qualcomm) GPS git repo adalah melewati satu hor_unc_circularparameter untuk akurasi yang tampaknya menyiratkan bahwa, setidaknya, implementasi yang menggunakan CER.


4

Jika, seperti dikutip dalam dokumen, ini adalah akurasi, maka posisi aktual pengguna ada di suatu tempat dalam QUOTED_LOCATION +/- AKURASI. Jadi keakuratan menentukan radius yang Anda harapkan dari pengguna. Apa yang tidak dikatakan oleh dokumen adalah seberapa yakin Anda bahwa pengguna berada dalam radius - standarnya adalah 95% jadi saya rasa ini dia.


1
Saya lebih tertarik pada kepercayaan diri seperti yang ditunjukkan oleh pertanyaan itu. Bisa menjadi salah satu dari banyak pengukuran gpsinformation.net/main/errors.htm
Samuel

1

Saya mengerti bahwa Anda meminta jawaban pasti dalam hal probabilitas, tetapi saya pikir ada dua hal yang perlu dipertimbangkan di sini.

Pertama, terserah penyedia untuk memutuskan apa yang ingin mereka masukkan ke dalam nilai ini, jadi bergantung pada penyedia, ini mungkin hanya tebakan yang buruk.

Kedua, mungkin membantu untuk menganggap ini sebagai masalah pembulatan potensial. Jika saya mencoba menghitung lokasi Anda berdasarkan sejumlah input, dan beberapa input tersebut hanya tersedia untuk sejumlah digit signifikan tertentu, maka hanya mungkin untuk menghitung lokasi dengan sejumlah digit signifikan tertentu.

Pikirkan seperti ini - apa "tentang" satu plus "tentang" seratus. Mungkin sekitar seratus, karena keakuratan seratus kemungkinan kurang dari besarnya 1. Jika saya tiba-tiba mengatakan jawabannya sekitar 101, maka saya mungkin akan menyiratkan tingkat akurasi yang tidak ada. Namun, jika saya benar-benar menentukan keakuratannya, maka saya dapat mengatakan bahwa itu 100 plus atau minus 10 plus 1 plus atau minus .1 adalah 101 plus atau minus 10. Saya mengerti bahwa ini umumnya mengacu pada sesuatu seperti tingkat kepercayaan 95% ( standard error), tetapi sekali lagi, semua mengasumsikan bahwa penyedia memahami statistik dan tidak hanya menebak-nebak.


Terima kasih - ini sangat membantu. Pada masalah pertama, pendekatan saya dengan pelacakan lokasi adalah mengumpulkan perkiraan akurasi tetapi juga melakukan "pemeriksaan kenyataan" dengan menghitung jarak dan waktu antara titik-titik yang berurutan dan kemudian membuang yang membutuhkan kecepatan yang tidak realistis (bahkan jika, seperti kadang-kadang kasus, mereka dilaporkan memiliki akurasi yang tepat). Jika Anda memiliki saran lain, saya akan senang mendengarnya.
John RB Palmer
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.