Geschwindigkeitsmessung über iPhone SDK

Ich muss eine native iPhone-App implementieren, um die Geschwindigkeit des Telefons zu messen (im Grunde genommen ein Tachometer). Ich weiß, dass Sie dies über die CoreLocation-API recht einfach tun können, aber ich mache mir Sorgen über den Batterieverbrauch, da dies eine Echtzeitmessung sein soll, die bis zu zwei Stunden gleichzeitig verwendet werden kann. Meines Wissens nach ist die Überwachung von Ereignissen mit dem LocationManager zwar aktiv (obwohl mir der GPS-Standort eigentlich egal ist), jedoch sehr batterieintensiv.

Die andere naheliegende Option wäre, die Beschleunigungsmesser zu verwenden, um die Geschwindigkeit zu berechnen. Die API enthält jedoch keine Hilfestellung. Nach meinen Recherchen sollte dies möglich sein, erscheint aber äußerst kompliziert und fehleranfällig. Die Übersetzung von Beschleunigung zu Geschwindigkeit kann zunächst schwierig sein, und die Daten des iPhone-Beschleunigungsmessers können "laut" sein. Ich kenne das SDK-Beispiel, das die Verwendung von Tief- / Hochpassfiltern usw. demonstriert, aber ich habe nirgendwo ein gutes Beispiel für die Berechnung der Geschwindigkeit gesehen.

Hat jemand echte Erfahrungen damit, die er teilen kann? Code wäre fantastisch, aber ich möchte nur wissen, ob jemand dies erfolgreich gemacht hat (für eine langlebige App) und welchen Ansatz er gewählt hat.

BEARBEITEN: Ich habe einen funktionierenden Prototyp, der die LocationManager-API verwendet. Es funktioniert einwandfrei, aber der Aktualisierungszyklus ist alles andere als ideal für eine Geschwindigkeitsmessung in Echtzeit. Abhängig von den Umständen kann das Update manchmal bis zu 4-5 Sekunden dauern. Das Fahren mit einer bestimmten Geschwindigkeit funktioniert in der Regel in Ordnung, aber das Beschleunigen / Abbremsen verzögert sich vom Standpunkt der Benutzerinteraktion aus in der Regel sehr stark. Außerdem muss ich Geschwindigkeit in einige andere Berechnungen einspeisen, die ich mache, und die Präzision ist nicht wirklich das, was ich brauche.

Es scheint möglich, basierend auf (sehr wenigen) anderen Apps, die ich gesehen habe, insbesonderegMeter die behauptet, kein GPS zu benutzen, sondern die Geschwindigkeit genau berechnet. Ich bin wirklich überrascht, dass es keine Referenzen oder Beispielcodes gibt, die dies überall demonstrieren, wo ich sie finden kann. Mir ist klar, dass es komplex ist, aber es gibt sicherlich etwas da draußen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage