Obtendo a velocidade em que o dispositivo está se movendo
-
19-09-2019 - |
Pergunta
estou usando CLLocation.speed
Para se mover a velocidade do dispositivo, mas estou recebendo 0 todas as vezes. eu tentei
speed = ([newlocation getDistanceFrom:oldlocation]/[newlocation.timeStamp timeIntervalSinceDate:oldlocation.timeStamp])
O problema é que está dando a velocidade errada de vez em quando.
Solução
Há uma pequena configuração que o ajudará:
CLLocationManager
Não enviará uma atualização, a menos que o usuário se mova para fora de um círculo no local atual. Você pode controlar o raio do círculo (torná -lo menor) para obter atualizações mais refinadas. Ver Filter a distância.CLLocationManager
tem um controle de precisão, que você deseja definir para o seu melhor nível. Ver DesededAcuracy.
Sua melhor aposta é simplesmente calcular continuamente essa "velocidade" e usar um filtro de passagem baixa fraca para suavizar os resultados.
Veja também esta pergunta para obter mais informações: CoreLocation para iPhone: como obter a velocidade mais precisa.