2017-04-21 2 views
-1

프로젝트에서 작업 중이며이 부분을 고수하고 있습니다. 배열 indexpath.row == 0을 선택한 다음 다른 배열을 선택하면 마지막 배열을 원합니다. 지도에 새 핀이 사라지고 놓입니다. 당신이 주석을 제거 할 경우지도에서 핀으로 새 위치를 클릭 할 때 이전 핀을 삭제하고 싶습니다.

let annotation1 = MKPointAnnotation() 

//SuperMarkets 
let SuperMarket = ["Mass SuperMarket", "West Zone SuperMarket", "Home Needs SuperMarket", "E City SuperMarket", "Al Samary SuperMarket", "Cooperative SuperMarket","Al Madina SuperMarket"] 
let locationManger1 = CLLocationManager() 

var lat = 0.0 
var lng = 0.0 

//1 
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
{ 
    let lat1: CLLocationDegrees = lat 
    let lng1: CLLocationDegrees = lng 

    let myLocation1 = CLLocationCoordinate2DMake(lat1,lng1) 
    let mySpan1:MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01) 
    let region1:MKCoordinateRegion = MKCoordinateRegion(center: myLocation1,span: mySpan1) 
    self.MapMarket.setRegion(region1, animated: true) 

    //Stop updating locations 
    self.locationManger1.stopUpdatingLocation() 

    //Place a pin for Burj Lhalifa on the map 


    annotation1.coordinate = myLocation1 
    annotation1.title = "Dubai" 

    self.MapMarket.addAnnotation(annotation1) 

} 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

    self.locationManger1.delegate = self 
    self.locationManger1.desiredAccuracy = kCLLocationAccuracyBest 
    self.locationManger1.requestAlwaysAuthorization() 
    self.locationManger1.startUpdatingLocation() 
    self.MapMarket.showsUserLocation = true 

    if indexPath.row == 0 
    { 

     lat = 25.242066 
     lng = 55.304286 
     annotation1.subtitle = SuperMarket[0] 

    } 
    else if indexPath.row == 1 
    { 
     annotation1.subtitle = SuperMarket[1] 
     lat = 25.257495 
     lng = 55.296193 
    } 
    else if indexPath.row == 2 
    { 
     annotation1.subtitle = SuperMarket[2] 
     lat = 25.257751 
     lng = 55.298907 
    } 
    else if indexPath.row == 3 
    { 
     annotation1.subtitle = SuperMarket[3] 
     lat = 25.270104 
     lng = 55.320396 
    } 
    else if indexPath.row == 4 
    { 
     annotation1.subtitle = SuperMarket[4] 
     lat = 25.269888 
     lng = 55.303436 
    } 
    else if indexPath.row == 5 
    { 
     annotation1.subtitle = SuperMarket[5] 
     lat = 25.251315 
     lng = 55.333161 
    } 
    else if indexPath.row == 6 
    { 
     annotation1.subtitle = SuperMarket[6] 
     lat = 25.280860 
     lng = 55.350525 
    } 

} 
+0

처럼 사용할 수 있습니다. [주석을 제거하는 방법] (https://developer.apple.com/reference/mapkit/mkmapview/1452409-removeannotation)을 알아야합니까? – Caleb

답변

0

당신은 당신이 요구하는지 모르겠어요이

mapView.removeAnnotations(mapView.annotations) 
관련 문제