2017-05-25 3 views
0

J'ai besoin de votre aide. Je travaille sur une application qui montre quelques endroits près de mon emplacement d'utilisateur. il montre le nom du lieu et la distance. Ce qui me pose problème, c'est d'ajouter une image pour que l'utilisateur puisse voir la description de l'emplacement et une image. Comment puis-je le faire? Mon code est le suivant ...(Swift) Ajouter une image à ma légende d'annotation

import UIKit 
import MapKit 
import CoreLocation 

class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate { 

    let locationManager = CLLocationManager() 

    struct Location { 
    let title: String 
    let latitude: Double 
    let longitude: Double 
    } 


    let locations = [ 
    Location(title: "Saint Paul Hospital",  latitude: 49.280524700, longitude: -123.128232600) 
    ] 

    override func viewDidLoad() { 
    super.viewDidLoad() 

     mapita.showsUserLocation = true 

     for location in locations { 

     let annotation = MKPointAnnotation() 
     annotation.title = location.title 
     annotation.coordinate = CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude) 


     if let currentLocation = locationManager.location?.coordinate { 
      let locationMapPoint = MKMapPointForCoordinate(currentLocation) 
      let pinMapPoint = MKMapPointForCoordinate(annotation.coordinate) 


      let distance = MKMetersBetweenMapPoints(locationMapPoint, pinMapPoint) 
      if distance >= 0 && distance <= 4500000 { 
       let distancia: Double = round (distance/1000) 
       annotation.subtitle = "Dist. \(distancia) kilometros" 
       mapita.addAnnotation(annotation) 
      } 
     } 
    } 

C'est ce que je reçois. Ce dont j'ai besoin est de mettre l'image dans les appels enter image description here

J'apprécierais votre aide les gars! Merci

+0

Utilisez un UIImageView et réglez son image – user1046037

Répondre

0

Essayez ceci:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 
    if annotation is MKUserLocation { 
     return nil 
    } 

    var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "pin") 

    if annotationView == nil { 
     annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "pin") 
     annotationView!.canShowCallout = true 
     annotationView!.image = UIImage(named: "sun") 
    } else { 
     annotationView!.annotation = annotation 
    } 

    return annotationView 
}