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.

Foi útil?

Solução

Há uma pequena configuração que o ajudará:

  1. 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.

  2. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top