Usando o geolocator e geocoding no Flutter

geolocator Flutter

Olá pessoas, tudo bem?

Esses dias estava montando aquela app para estudo e fui utilizar o package geolocator e achei legal dar um exemplo aqui pra vocês. 

Nessa abordagem precisei de um “step” a+, pois precisa transformar a latitude e longitude recuperadas do geolocator em Rua, Bairro, Cidade e logo acabei usando também o package geocoding então bora lá pra mais um exemplo rápido e prático ok.

Porém contudo todavia lembrem-se que para usar serviços de geolocalização é preciso ajustar no AndroidManifest e no Runner (penso que já sabe onde estou me referindo ok).

No android adicione:

Já para IOS vou deixar a DOC oficial pois nesse caso não foi implementada.
Link: https://pub.dev/packages/geolocator

Basicamente vou postar o código a seguir e explicar o mesmo:

Checar Permissão: Ele chama uma função checkPermission() para verificar se o app tem permissão para acessar a localização do usuário.

  • Se a permissão for concedida, ele segue para o próximo passo.
  • Se a permissão não for concedida, ele devolve a mensagem “Permission not granted”.

Obter Localização: Caso a permissão esteja OK, ele usa o Geolocator.getCurrentPosition() para obter a posição atual do usuário (latitude e longitude), com alta precisão.

Converter para Endereço: Com a latitude e longitude, ele usa placemarkFromCoordinates() para tentar traduzir isso para um endereço legível (nome da rua, cidade, etc.). O resultado é uma lista de possíveis lugares (Placemark), e ele usa o primeiro item da lista.

Obs.: Placemark trás todos os valores referentes ao local, então sempre é prudente identificar se é necessário apresentar todos os dados (nesse exemplo não era)!

Formatar e Retornar: Finalmente, ele retorna o endereço no formato:

  • Rua, Bairro, Região/Estado.

E claro pessoal vocês também podem e recomendo que criem validação caso o usuário negue a permissão de acesso! 

Tomando uma ação específica caso o acesso seja negado, um exemplo informar o usuário que não é possível usar o serviço sem tal acesso… 

No exemplo deixei apenas o “if”, pois haviam algumas informações não pertinentes ao nosso foco aqui 🙂

Dessa forma você garante que o seu usuário terá que dar a permissão antes, conseguindo tratar casos de negativa e evitar erros desnecessários.

E por hoje é basicamente isso meus amigos, espero que possa ter ajudado e sigamos em frente…

CATEGORIES:

Flutter

No responses yet

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Latest Comments