Skip to content

Introdução a mapKit com objective-C

Introdução a mapKit com objective-C

Bom pessoal neste tutorial iremos ensinar a colocar uma annotation no mapa, basicamente iremos usar isso para definir algum ponto no mapa usando o componente mapKit.

Bom antes de começarmos nosso código propriamente dito precisaremos pedir permissão do usuário para acessar o mapa.

O requerimento das permissões mudou um pouco no IOS 8 para fazer o requerimento precisamos adicionar uma linha na aba “info” de nosso projeto.

mapkit-Foto1

NSLocationWhenInUseUsageDescription

Com esta linha nosso app irá perguntar para o usuário se ele pode fazer uso do mapa, caso o usuário concorde o aplicativo continuará o funcionamento.

Para usarmos o mapa marcando o ponto onde estamos precisaremos de duas bibliotecas a mapKit e CoreLocation.

mapkit-Foto2

Vamos para nossa viewController nossa tela será bem simples, vamos colocar apenas um mapa nela e ligar a nosso .h, nosso arquivo.h ainda precisa de 2 delegates o do mapkit e o userLocation, em nosso .h também precisamos criar um CLLocationManager que será nossa ferramenta para gerenciar a localização do usuário. No fim nosso arquivo viewController.h fica assim:

#import <UIKit/UIKit.h>

#import <CoreLocation/CoreLocation.h>

#import <MapKit/MapKit.h>

@interface ViewController : UIViewController <MKMapViewDelegate,CLLocationManagerDelegate>

@property (strong, nonatomic) CLLocationManager *gerenciadorDeGPS;

@property (weak, nonatomic) IBOutlet MKMapView *mapa;

@end

Agora precisamos partir para nosso ViewController.m onde vamos realmente trabalhar com nosso mapa, como estamos fazendo apenas um tutorial bem simples vamos criar o seguinte código dentro de nosso ViewDidLoad, precisaremos iniciar nosso gerenciadorDeGps requer de nosso usuário a permissão de usar sua localização e começar a “seguir” nosso usuário. Vamos também implementar nosso delegate, e mostrar a localização do usuário.

self.mapa.delegate = self;

self.mapa.showsUserLocation = YES;

// iniciando alocando nosso gerenciador que usaremos para pegar a poisção do usuário

self.gerenciadorDeGPS = [[CLLocationManager alloc]init];

[self.gerenciadorDeGPS requestWhenInUseAuthorization];

[self.gerenciadorDeGPS startUpdatingLocation];

Agora vamos dizer para nosso mapa qual a região nosso mapa vai representar para isso precisamos da latitude e da longitude em que nosso usuário está, por isso criamos nosso gerenciadorDeGPS.

self.mapa.region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(self.gerenciadorDeGPS.location.coordinate.latitude, self.gerenciadorDeGPS.location.coordinate.longitude), 250, 250);

Com essa linha definimos a latitude e a longitude, e também nosso zoom (no caso usamos 250 por 250, porem você poderá brincar com ele a vontade dependendo da necessidade do app).

Vamos por fim fazer uma annotation que seria uma pequena anotação no mapa, ou uma marcação de um ponto especifico, também precisamos da latitude e da longitude do ponto a ser mostrado:

MKPointAnnotation *annotation =[[MKPointAnnotation alloc]init];

annotation.coordinate = CLLocationCoordinate2DMake(self.gerenciadorDeGPS.location.coordinate.latitude, self.gerenciadorDeGPS.location.coordinate.longitude);

Bom para evitar estender muito o tutorial usei a mesma localização do ponto anterior porem você poderá escolher outra latitude e longitude.

Por fim vamos dar um titulo para nosso ponto e também colocar no mapa.

annotation.title = [NSString stringWithFormat:@”Onde Estou”];

[self.mapa addAnnotation:annotation];

No fim nosso método ViewDidLoad ficou assim:

– (void)viewDidLoad {

[super viewDidLoad];

self.mapa.delegate = self;

self.mapa.showsUserLocation = YES;

// iniciando alocando nosso gerenciador que usaremos para pegar a poisção do usuário

self.gerenciadorDeGPS = [[CLLocationManager alloc]init];

[self.gerenciadorDeGPS requestWhenInUseAuthorization];

[self.gerenciadorDeGPS startUpdatingLocation];

// iniciando nosso mapa na posição em que estamos

self.mapa.region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(self.gerenciadorDeGPS.location.coordinate.latitude, self.gerenciadorDeGPS.location.coordinate.longitude), 250, 250);

MKPointAnnotation *annotation =[[MKPointAnnotation alloc]init];

annotation.coordinate = CLLocationCoordinate2DMake(self.gerenciadorDeGPS.location.coordinate.latitude, self.gerenciadorDeGPS.location.coordinate.longitude);

annotation.title = [NSString stringWithFormat:@”Onde Estou”];

[self.mapa addAnnotation:annotation];

}

Bom pessoal por hoje é isso foi um tutorial bem rápido só para dar uma introdução a ferramenta, poderemos em outros tutorias continuando com a ferramenta.

No comment yet, add your voice below!


Add a Comment

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