Kennt jemand die richtige Interpretation der von getAccuracy () zurückgegebenen Genauigkeitsmessungen? Werden sie beispielsweise berechnet als:
Kreisfehlerwahrscheinlichkeit (dh, wenn ich das richtig verstehe, Radius eines 50% -Konfidenzkreises)?
Radius von 95% Konfidenzkreis?
etwas anderes?
Welche Berechnungen werden tatsächlich verwendet und wie stark können wir uns darauf verlassen? Hängt es von der Quelle der Standortschätzung ab (GPS vs. Netzwerk)?
Vielen Dank für jeden Rat, den Sie mir geben können.
Antworten:
Um einen Teil der Frage zu beantworten, bedeutet die Zahl
the radius of 68% confidence,
, dass eine Wahrscheinlichkeit von 68% besteht, dass sich der wahre Ort innerhalb dieses Radius des gemessenen Punkts in Metern befindet. Unter der Annahme, dass Fehler normal verteilt sind (was, wie in den Dokumenten angegeben, nicht unbedingt zutrifft), bedeutet dies, dass dies eine Standardabweichung ist. Wenn beispielsweiseLocation.getAccuracy
10 zurückgegeben wird, besteht eine Wahrscheinlichkeit von 68%, dass der wahre Standort des Geräts innerhalb von 10 Metern von den angegebenen Koordinaten liegt.http://developer.android.com/reference/android/location/Location.html#getAccuracy ()
quelle
Der Standort ist eine schwierige Aufgabe, wenn Sie eine begrenzte Akkulaufzeit haben und wenn in Gebäuden und in Gebieten mit vielen großen Gebäuden usw. kein GPS-Signal vorhanden ist. Android macht es jedoch viel einfacher. Wenn Sie einen Standort anfordern, müssen Sie nur angeben, welche Genauigkeit Sie benötigen.
Wenn Sie angeben, dass Sie einen
accuracy
für ein Beispiel wünschen*100 meters*
, versucht Android, den Standort zu ermitteln. Wenn ein Standort mit einer Genauigkeit von 70 Metern ermittelt werden kann, wird dieser an Sie zurückgegeben. Wenn Android jedoch einen Standort mit einer Genauigkeit von mehr als 100 ermitteln kann Meter, Ihre Anwendung wird warten und nichts erhalten, bis es einen Ort mit einer solchen Genauigkeit gibt.Normalerweise erhält Android zuerst die Zellen-ID und sendet sie dann an den Google-Server, der diese Zellen-IDs zuordnet. Der Server gibt einen Breiten- und Längengrad mit einer Genauigkeit zurück, die beispielsweise für 1000 Meter niedrig ist. Zu diesem Zeitpunkt wird Android auch versuchen, alle WiFi-Netzwerke in der Umgebung anzuzeigen und Informationen darüber auch an den Google-Server zu senden. Wenn möglich, gibt der Google-Server einen neuen Standort mit einer höheren Genauigkeit für beispielsweise 800 Meter zurück.
Zu diesem Zeitpunkt ist das GPS eingeschaltet. Das GPS-Gerät benötigt nach einem Kaltstart mindestens 30 Sekunden, um eine Korrektur zu erhalten. Wenn also eine Korrektur möglich ist, gibt es Längen- und Breitengrade zurück, jedoch wieder mit einer Genauigkeit, die für ein Beispiel von 100 Metern die höchstmögliche ist. Je länger das GPS funktioniert, desto genauer wird es.
Wichtiger Hinweis: Die ersten beiden Methoden erfordern eine Internetverbindung. Wenn keine Datenverbindung besteht, müssen Sie auf das GPS warten. Befindet sich das Gerät jedoch in einem Gebäude, erhalten Sie wahrscheinlich keinen Standort.
quelle
Die Dokumentation zu getAccuracy besagt, dass die Genauigkeit in Metern zurückgegeben wird. Ich würde vermuten, dass dies bedeutet, dass Sie sich irgendwo in einem Kreis mit einem Radius von 60 Metern um die angegebene Position befinden, wenn Sie einen Rückgabewert von 60 erhalten.
quelle
Soweit ich auf einen Blick auf den Android-Quellcode sehen kann, hängt dies von der Hardware des Geräts und dem Wert ab, den es für die Rückgabe auswählt.
Die
GpsLocationProvider.java
Datei verfügt über einereportLocation
Methode, die vom nativen Code aufgerufen wird und deren Genauigkeit als Wert übergeben wird. Somit scheint zumindest im Rahmen keine Berechnung zu erfolgen.Das GPS-Git-Repo von qcom (von dem ich glaube, dass es das Qualcomm ist) übergibt den
hor_unc_circular
Parameter für die Genauigkeit, was zu implizieren scheint, dass zumindest diese Implementierung CER verwendet.quelle
Wenn es sich, wie in den Dokumenten angegeben, um eine Genauigkeit handelt, befindet sich die tatsächliche Position des Benutzers irgendwo innerhalb von QUOTED_LOCATION +/- ACCURACY. Die Genauigkeit definiert also einen Radius, in dem Sie den Benutzer erwarten können. Was die Dokumente nicht sagen, ist, wie sicher Sie sein können, dass sich der Benutzer innerhalb des Radius befindet - der Standard ist 95%, also denke ich das.
quelle
Ich verstehe, dass Sie nach einer eindeutigen Antwort in Bezug auf die Wahrscheinlichkeit fragen, aber ich denke, dass hier zwei Dinge zu beachten sind.
Zunächst muss der Anbieter entscheiden, was er in diesen Wert einfügen möchte. Je nach Anbieter ist dies möglicherweise nur eine schlechte Vermutung.
Zweitens kann es hilfreich sein, dies als potenzielles Rundungsproblem zu betrachten. Wenn ich versuche, Ihren Standort anhand einer Anzahl von Eingaben zu berechnen und einige dieser Eingaben nur für eine bestimmte Anzahl von signifikanten Stellen verfügbar sind, ist es nur möglich, einen Standort mit einer bestimmten Anzahl von signifikanten Stellen zu berechnen.
Stellen Sie es sich so vor - was ist "über" eins plus "über" einhundert? Wahrscheinlich ungefähr einhundert, weil die Genauigkeit von einhundert wahrscheinlich kleiner als die Größe von 1 ist. Wenn ich plötzlich sage, dass die Antwort ungefähr 101 ist, kann dies bedeuten, dass ich ein Maß an Genauigkeit impliziere, das nicht vorhanden war. Wenn ich jedoch tatsächlich die Genauigkeit spezifiziere, kann ich sagen, dass 100 plus oder minus 10 plus 1 plus oder minus 0,1 101 plus oder minus 10 ist. Ich verstehe, dass sich dies im Allgemeinen auf ein Konfidenzniveau von 95% bezieht ( Standardfehler), aber auch hier wird davon ausgegangen, dass der Anbieter Statistiken versteht und nicht nur rät.
quelle