Como funciona o recurso 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.
- É 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.
- Na coordenada do endereço do cliente
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
Avaliamos e os problemas com as distâncias exibidas em um dispositivo, mesmo que sejam grandes, pode ser devido a várias razões:
- Permissões de Geolocalização: Se o dispositivo não tiver permissão total para acessar sua localização, as distâncias podem não ser precisas. Nesse caso, sugerimos usar uma aproximação com correspondência exata.
- Localização Não Atualizada: Se você não atualizou sua localização atual no dispositivo, as distâncias podem estar incorretas.
- Dificuldades na Triangulação: O serviço de triangulação usado para determinar a localização pode estar enfrentando problemas para identificar o endereço com precisão.
- Divergência de Endereço: O endereço cadastrado pode não ser semelhante ao endereço usado no aplicativo de mapas, o que pode levar a distâncias erradas. Recomendamos atualizar o endereço de acordo com as informações fornecidas pelo Google.
Atualmente, usamos um serviço de terceiros para identificar o processo de Check-In/Check-Out. Por isso, é importante revisar os pontos mencionados acima, pois a maioria dos problemas está relacionada a configurações e permissões nos dispositivos. Ao resolver essas questões, as distâncias exibidas devem ser mais precisas.
Outra questão que pode ser avaliada é a precisão de localização no dispositivo.
No Android, você precisa verificar se as seguintes informações estão sinalizadas em:
Configurações > Local > Serviços de localização > ativar as opções: "procura de Wi-Fi" e "Procura de Bluetooth"
Já no IOS, você encontra em:
Ajustes > Privacidade e segurança > Serviços de Localização > Ativar
Dessa forma, o dispositivo busca com mais precisão os endereços e localizações.