Core Location E MapKit – Swift – Parte 2

On 23 de abril de 2015 by Pedro Duarte

Apple_Swift_Logo

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.

post location 2

 

Por aqui é isso até o próximo.

Deixe um comentário

O seu endereço de e-mail não será publicado.