2016-07-25 9 views
0

Ich versuche derzeit, die Geschwindigkeit einer Person durch die Verwendung von GooglePlayServices zu ermitteln.Speed-Wert kann nicht richtig abgerufen werden - Casting funktioniert nicht

Ich habe es geschafft, eine Verbindung zu den Diensten herzustellen und Updates über den Standort zu erhalten, aber das Problem besteht darin, die Geschwindigkeit für die betreffende Person auszuarbeiten - das heißt, ich habe Schwierigkeiten, Zeit und Entfernung zu teilen.

Ich habe dies zuvor gepostet, und jemand schlug vor, dass Casting lange das Problem beheben würde. Es wurde schnell als Duplikat gekennzeichnet, sodass ich die Diskussion nicht fortsetzen konnte, aber ich wollte sagen, dass es nicht funktioniert hat.

Das Folgende ist mein aktueller Code.

float Distance = OldLocation.distanceTo(location); 
    //Getting Difference in seconds 
    long TimeDiff = location.getTime()-OldLocation.getTime(); 
    float SecondDiff = TimeUnit.MILLISECONDS.toSeconds(TimeDiff); 
    //Finally working out speed (m/s) 
    if (SecondDiff == 0) { 
     SecondDiff = 1; 
    } 
    float Speed = ((long)Distance/SecondDiff); 

Die Geschwindigkeit bleibt auf 0 und nicht auf dem richtigen Wert. Ich habe das lange auf sie geworfen, aber es abgelehnt.

Ich habe auch versucht:

float Speed = ((long)Distance/(long)SecondDiff); 

und

float Speed = (long)(Distance/SecondDiff); 

Was hier die Quelle für mein Problem sein könnte?

+0

float f = ((lang) (Entfernung/SecondDiff)) floatvalue(); –

+0

kann Methode floatValue –

+0

nicht auflösen, aber warum werfen Sie von Float zu Long und wieder zu Float –

Antwort

0

Warum nicht Sie bekommen nur die Geschwindigkeit von jedem Ort Objekt durch die getSpeed() Methode, wie:.

float speed = location.getSpeed(); 
+0

??? Wie funktioniert das? O> o Ist es die Geschwindigkeit von zwei Punkten? Wie erhalten Sie eine Geschwindigkeit von einem Standortobjekt? –

+0

Nun, ein vom LocationManager erzeugter Ort besteht normalerweise aus anderen optionalen Informationen wie Geschwindigkeit. Mit der Methode hasSpeed ​​() können Sie überprüfen, ob der Standort eine Geschwindigkeit aufweist – momo

Verwandte Themen