Como funciona o recurso Check-in Check-out:
Check-in / Check-out
- O vendedor faz o checkin/out pelo aplicativo. Neste momento o dispositivo pega as coordenadas da localização atual.
- Assim que o evento de checkin/out é sincronizado com o ambiente online, nós registramos as coordenadas da localização enviada do mobile, e a do endereço que está cadastrado no cliente.
- - Se o cliente não possuir latitude e longitude do endereço, nós precisamos buscar, caso possuir vai para o próximo passo. Para buscar as coordenadas, como a mercos não tem satélite e nem registros de endereços, nós usamos um serviço de terceiro (https://www.mapbox.com/) onde passamos um endereço e o serviço nos retorna coordenadas desse endereço.
3.1 - Para isto é necessário realmente ter um endereço cadastrado corretamente no cliente, caso não ter ou caso for bem genérico, a informação passa a ter baixa confiabilidade;
3.2 - Usamos para consulta, o país Brasil, então se for um cliente de fora nos informe. Usamos os campos de rua, número, bairro, cidade e estado do endereço principal. Então se o cadastro estiver assim separado, melhor ainda. - Este registro de latitude e longitude do endereço do cliente é salvo, assim futuras visitas neste cliente, não precisamos integrar novamente com o serviço do MapBox.
4.1 Caso o endereço seja alterado no cadastro, as latitudes e longitudes salvas voltam a ficar em branco, para em uma futura visita voltar a buscar as novas coordenadas do novo endereço.
Como o relatório calcula a distância de check-in e do cliente?
- É necessário ter dois pontos, o ponto A sendo coordenadas do endereço do cliente (passos de cima), e ponto B sendo coordenadas enviadas pelo dispositivo móvel.
- Para registros aqui, a fórmula de distância entre dois pontos, se chama Haversine:
a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
/c = 2 ⋅ atan2( √a, √(1−a) )
/d = R ⋅ c
/ φ = latitude, λ = longitude, R radius da terra.
- O resultado da fórmula é a distância mostrada no relatório.
Agora que a gente já sabe como funciona tudo, quando a distância tá muito estranha, o problema pode estar então:
- Na coordenada do endereço do cliente
- Na coordenada do endereço do cliente
- Coordenada que o gps do dispositivo móvel enviou.
Para descobrir, basta acessar o relatório (Indicadores / aba Relatórios / relatório Vistas Checkin Checkout) e clicar no link da distância. Como a imagem mostra, temos a coordenada que obtemos do Mapbox, e a coordenada enviada pelo celular.
Resolvendo problemas de distâncias gigantescas.

Para descobrir, basta acessar o relatório (Indicadores / aba Relatórios / relatório Vistas Checkin Checkout) e clicar no link da distância. Como a imagem mostra, temos a coordenada que obtemos do Mapbox, e a coordenada enviada pelo celular.
Resolvendo problemas de distâncias gigantescas.
- Se o problema for o endereço do cliente, basta o usuário preencher as coordenadas certas. Ele preenchendo ali vai salvar essas coordenadas para futuras visitas (lembrando que caso o endereço seja alterado no cadastro, essas coordenadas serão apagadas, para buscar o novo endereço, vide ponto 4.1). Ou então verificar se possui algum problema no cadastro do endereço, e preencher melhor.
Nos aplicativos tentamos obter a localização de 2 formas:
- Com maior precisão (entre 0 e 100m) - consome mais bateria e é mais demorada
- Com menor precisão (entre 100 e 500m) - utilizada quando a primeira opção falha
Em relação a precisão, o carregamento destas coordenadas pode depender do tipo do dispositivo (hardware), rede conectada e triangulação, versão do dispositivo e até privacidade. Muitos não se atentam a esse último detalhe, mas no iOS, por exemplo, quando aparece a janela para compartilhar os dados de localização, o usuário pode escolher por compartilhar a localização “precisa” ou dos “arredores”. O Google também está implementando isso no Android, porém é algo que não conseguimos ter controle.