Check-in Check-out

Check-in Check-out

Como funciona o recurso Check-in Check-out:

 

Check-in / Check-out
  1. O vendedor faz o checkin/out pelo aplicativo. Neste momento o dispositivo pega as coordenadas da localização atual. 
  2. 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.
  3. - 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.
  4. 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?
  1. É 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.
  1. 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.
  1. 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
- 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.

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

Avaliamos e os problemas com as distâncias exibidas em um dispositivo, mesmo que sejam grandes, pode ser devido a várias razões:

  1. 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.
  2. Localização Não Atualizada: Se você não atualizou sua localização atual no dispositivo, as distâncias podem estar incorretas.
  3. 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.
  4. 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.