Standortalter des Benutzers in Mapkit überprüfen - GPS-Genauigkeit für MapKit-Benutzerstandort deutlich besser als mit CLLocationManager?

Indoors auf einem iPhone 4. WiFi deaktiviert

Wenn Sie das LocateMe SDK-Beispiel oder meinen eigenen Code 30-60 Sekunden lang ausführen, erhalten Sie eine horizontale Genauigkeit von 2294 Metern. Ziemlich ungenau, aber angemessen für die Triangulation des Zellturms. Ein Blick auf andere Apps, die Geokodierung oder Standortdaten wie Foursquare umkehren, zeigt einen ähnlichen Mangel an Genauigkeit.

Wenn ich jedoch in meiner App auf eine andere Ansicht umschalte, die Mapkit verwendet, und den Benutzerstandort überprüfe / anzeige, auf den es sich bezieht. Ich meine auf die Hausebene genau auf der Karte, die ich mit WLAN-Level-Standort oder einem starken GPS-Read assoziieren würde.

So stellte ich fest, dass Mapkit wahrscheinlich auf einem zwischengespeicherten Speicherort basiert, der ermittelt wurde, als WLAN auf meinem Gerät aktiviert wurde. Ich habe die Ortungsdienste in den Einstellungen deaktiviert. Die neu gestartete Karten-App hat die Karte von meinem aktuellen Standort entfernt. Beenden Sie die erneut aktivierten Ortungsdienste. Öffne die Map App erneut - Bingo gleich wieder mit dem starken Standort.

Soweit ich weiß, handelt es sich beim Ortungsdienst um einen Singleton auf Systemebene, dh mit MapKit werden dieselben Daten wie mit meiner CLLocationManager-Instanz geteilt. Das einzige, was mir einfällt, ist, dass der Standort in MapKit großzügiger zwischengespeichert wird und das Deaktivieren der Standortdienste den Cache nicht löscht, selbst wenn map.app gestartet wird.

Ist jemandem eine Möglichkeit bekannt, das Alter des Benutzerstandorts in MapKit zu überprüfen? Ich würde gerne weitere Nachforschungen anstellen und selbst wenn es sich um einen undokumentierten Anruf oder eine undokumentierte Eigenschaft handelt, die ich nicht mitliefern kann, würde ich sie gerne zum Debuggen verwenden, um zu verstehen, was los ist.

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage