Frage

Ich erhalte seltsamen befülltem CLLocationManager verwenden. Die Breite / Länge gemeldet wird vor Ort auf, aber die zurückgelegte Strecke ist weg. Ich habe die folgende Delegatmethode als so implementiert:

.h:
    CLLocationManager *mLocationManager;
    CLLocation *mStartDistance;

Und

.m:
    - (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
    fromLocation:(CLLocation *)oldLocation
    {
        NSLog(@"%g", newLocation.coordinate.latitude);
        NSLog(@"%g", newLocation.coordinate.longitude);
        NSLog(@"%g", newLocation.altitude);
        NSLog(@"%g", newLocation.verticalAccuracy);

    if (mStartDistance == nil)
    { mStartDistance = newLocation; }

    CLLocationDistance dist = [newLocation getDistanceFrom:mStartDistance];
    NSLog(@"%gm", dist);
}

Und wenn ich laufe dies auf meinem Gerät erhalte ich die folgende (lat / long maskiert die Schuldigen heh zu schützen):

] xx.xxxx
] -yy.yyyy
] 0
] -1
] 0m

] xx.xxxx
] -yy.yyyy
] 0
] -1
] 0m

] xx.xxxx
] -yy.yyyy
] 0
] -1
] 376.133m <-- wat?

Ich verstehe nicht, warum die sagen, ich bin umgezogen + 376m..that ist wie + 1200ft!

War es hilfreich?

Lösung

Wenn Sie auch Ihre newLocation.horizontalAccuracy einloggen, werden Sie wahrscheinlich sehen, dass für die ersten beiden Updates, die er über 400 m ist. Es ist nicht mit GPS (Du bist innen und es gibt dir -1 für die vertikale Genauigkeit der Höhe) und das Handy Triangulation kann ziemlich schlecht anfänglich sein. Manchmal ist meine erste Lage nur genau 10 Meilen, aber es immer noch ablegt seine beste Vermutung. Sobald es eine bessere Sperre bekommt, kann dieser Punkt ziemlich weit recht schnell bewegen.

Ein Teil der Verschlagenheit dich mit der Corelocation Ihre eigene Heuristik ist die Bestimmung für die Annahme oder ein Update ablehnen. Einige Dinge zu beachten sind die horizontale Genauigkeit, die Zeit damit verbracht Aktualisierung und die Anzahl der vorherigen Aktualisierungen, die Sie erhalten haben. Ich habe schon ein paar Schemata gesehen haben zuvor auf dieser Seite diskutiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top