como adicionar um mapa à sua aplicação com MapKit e localização principal-guia Swift iOS

Passo 4: botão Localizar-Me: mostrar a localização no mapa

primeiro passo, iremos recuperar a localização actual quando o Utilizador carregar no botão Localizar-me 🧭.

o Gestor de localização dá-lhe a localização actual num objecto CLLocation com locationManager.location. Este objeto contém diferentes informações, incluindo os valores das coordenadas de latitude e longitude.

adicione uma anotação ao mapa

vamos criar uma nova função que irá adicionar uma anotação ao MAPA nas coordenadas dadas.

a seguinte função cria um novo objeto MKPointAnnotation, e adiciona – o ao mapa depois de remover todas as anotações anteriores. Ele também zooms e scrolls o mapa para colocar a anotação recém-adicionada no centro da tela.

adicione uma anotação ao mapa

agora que temos esta função, você pode chamá-la com as informações de localização atual que você deseja exibir, no seu botão função IBAction. Por agora, vamos colocar nil como título, uma vez que ainda não temos esta informação.

updateLocationOnMap(to: locationManager.location, with: nil)

adicione o endereço completo da localização como título à anotação

agora, vamos adicionar o endereço completo da localização como título à anotação. A co-localização dá-nos uma facilidade de o fazer com CLGeocoder.

Criar uma extensão para CLLocation e adicione a seguinte função:

Obter Marcador de Localização

vai inverter as coordenadas geográficas de localização e dá-lhe um CLPlacemark, contendo todas as informações necessárias para extrair o endereço postal completo.

as informações de endereço são armazenadas como abaixo no objeto Placemark. Para obter um valor de cadeia de caracteres do endereço completo, terá de concatenar os componentes de que necessita. Aqui está um exemplo para a Apple SEDE endereço na tabela abaixo:

os Valores correspondentes para CLPlacemark propriedades de

Vamos adicionar uma função para o nosso CLLocation extensão que nos dá o endereço completo diretamente. Por conveniência, você pode adicionar uma nova propriedade em uma extensão de CLPlacemark. Neste exemplo, esta propriedade é chamada stringValue.

obtenha o endereço completo do texto da localização

agora vamos atualizar a chamada para updateLocationOnMap com a nossa nova função lookUpLocationName.

Mostrar a localização actual no Mapa do botão toque em

Criar e executar o aplicativo: agora, quando você pressionar a localizar-me, a sua localização actual é adicionado no mapa, que mostra a sua localização atual endereço completo!

adicione um marcador de um endereço de cadeia Ao mapa

A maior parte da função que escrevemos no Passo 3 para o botão locate-me também será usada nesta parte. Só adicionaremos uma nova função updatePlaceMark(to address: String) e a chamaremos de validação TextField.

nesta função, vamos primeiro obter marcadores do valor string introduzido pelo usuário, em seguida, vamos atualizar o mapa com o primeiro placemark com o seu valor de endereço completo.

Mostrar a localização no mapa baseado em uma seqüência de caracteres de endereço

Note que geocodeAddressString não é um local de pesquisa do recurso e, por isso para que ele funcione é necessário um endereço válido, e local de identificação, uma cidade, estado ou país no campo para ter um resultado.

Passo 6: Mostrar a localização em tempo Real no mapa

para mostrar a localização em tempo real, adicione a seguinte função de delegado na extensão CLLocationManagerDelegate que já criámos.

o Gestor de localização irá chamar esta função automaticamente em actualizações de localização, de acordo com a política definida no início.

mostrar a localização em tempo real no mapa

Passo 7: construir & executar

construir e executar a sua aplicação: Você agora tem um aplicativo de mapa que lhe mostra a sua localização atual, mostrando o endereço completo em tempo real, localizando-o em um toque de botão locate-me e permitindo que você procure por locais de um campo de texto.



+