Core Location E MapKit – Swift – Parte 2
Core Location
No primeiro post chegando até o ponto de o usuário liberar ou não sua localização. Neste tutorial iremos add um restaurante em nosso mapa.
1 – Vamos adicionar um restaurante no nosso mapa através da função MKPointAnnotation que ira indicar um ponto no mapa:
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. locationManager.delegate = self // inicializada por padrao locationManager.requestWhenInUseAuthorization() // requisitar o uso da localizacao com o aplicativo em //primeiro plano var point = MKPointAnnotation(); point.coordinate = CLLocationCoordinate2DMake(37.331507, -122.033354) point.title = "La Cave Restaurante" point.subtitle = "perto de você" mapView.addAnnotation(point) mapView.showAnnotations([point], animated: false) }
Como essa função não tem representação visual vamos para o passo dois:
Passo 2 Core Location
2 – Temos que implementar o protocolo MKMapViewDelegate sem esquecer de configura-lo na viewDidLoad():
class MapKitViewController: UIViewController, CLLocationManagerDelegate, MKViewDelegate{
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, //typically from a nib. mapView.delegate = self
Passo 3 – Core Location
3 – Agora vamos implementar o método viewForAnnotation:
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { var identifier = "CustomAnnotation" //Aqui criamos uma identificador unico. if annotation.isKindOfClass(MKUserLocation){ return nil } if annotation.isKindOfClass(MKPointAnnotation){ //Verificamos se a classe pertence a um point annotation. Se isso for verdade criamos uma nova notação var pin = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as! MKPinAnnotationView! if pin == nil { pin = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier) pin.pinColor = .Green //Configuramos aqui a cor do Pin pin.animatesDrop = true //E sua animacao pin.canShowCallout = true // Inserimos uma balao de informacaoes //Callout var button = UIButton.buttonWithType(.DetailDisclosure) as! UIButton pin!.leftCalloutAccessoryView = button // do lado esquerdo colocamos um botao var image = UIImageView(image: UIImage(named: "item_check")!) pin!.rightCalloutAccessoryView = image }else{ pin!.annotation = annotation } return pin } return nil } }
4 – Quando rodar o aplicativo você virá além da sua localização um ponto marcado no mapa.
Por aqui é isso até o próximo.