【问题标题】:I want to delete the old pin when clicking on the new place to pin on the map我想在点击新位置以在地图上固定时删除旧图钉
【发布时间】:2017-04-21 13:14:21
【问题描述】:

我正在做一个项目并坚持这部分:当我选择数组 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
    }

}

【问题讨论】:

标签: ios swift uitableview mapkit cllocationmanager


【解决方案1】:

如果你想删除注释,那么你可以像这样使用

mapView.removeAnnotations(mapView.annotations)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多