应该如何设置下面的数组.我试图在我的地图上添加多个注释.我能够在stackoverflow上找到下面的代码,但是他们没有展示如何设置数组.
var objects = [ //how should the array be setup here ] for objecters in objects!{ if let latit = objecters["Coordinates"]["Latitude"]{ self.latitudepoint = latit as! String self.map.reloadInputViews() } else { continue } if let longi = objecters["Coordinates"]["Longitude"]{ self.longitudepoint = longi as! String self.map.reloadInputViews() } else { continue } var annotation = MKPointAnnotation() var coord = CLLocationCoordinate2D(latitude: Double(self.latitudepoint)!,longitude: Double(self.longitudepoint)!) mapView.addAnnotation(annotation) }
解决方法
你可以做,例如:
let locations = [ ["title": "New York,NY","latitude": 40.713054,"longitude": -74.007228],["title": "Los Angeles,CA","latitude": 34.052238,"longitude": -118.243344],["title": "Chicago,IL","latitude": 41.883229,"longitude": -87.632398] ] for location in locations { let annotation = MKPointAnnotation() annotation.title = location["title"] as? String annotation.coordinate = CLLocationCoordinate2D(latitude: location["latitude"] as! Double,longitude: location["longitude"] as! Double) mapView.addAnnotation(annotation) }
或者,或者,使用自定义类型,例如:
struct Location { let title: String let latitude: Double let longitude: Double } let locations = [ Location(title: "New York,latitude: 40.713054,longitude: -74.007228),Location(title: "Los Angeles,latitude: 34.052238,longitude: -118.243344),Location(title: "Chicago,latitude: 41.883229,longitude: -87.632398) ] for location in locations { let annotation = MKPointAnnotation() annotation.title = location.title annotation.coordinate = CLLocationCoordinate2D(latitude: location.latitude,longitude: location.longitude) mapView.addAnnotation(annotation) }
或者您可以使用map替换for循环:
let annotations = locations.map { location -> MKAnnotation in let annotation = MKPointAnnotation() annotation.title = location.title annotation.coordinate = CLLocationCoordinate2D(latitude: location.latitude,longitude: location.longitude) return annotation } mapView.addAnnotations(annotations)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。