如何解决如何在地图上显示注释点信息?
当我点击地图上的 Annotation 时,我希望点击位置的信息出现在底部的后视图中。我使用 Mapkit 创建地图
注解数组
let annotationLocations = [
["title":"X vet Clinic","latitude":39.895177,"longitude":32.838194],["title":"Y Vet Clinic","latitude": 39.894749,"longitude":32.841074],["title":"Z Vet Clinic","latitude": 39.893615,"longitude":32.841476]
]
func createAnnotations(locations: [[String: Any]])
{
for location in locations{
let annotations = MKPointAnnotation()
annotations.title = location["title"] as? String
annotations.coordinate = CLLocationCoordinate2D(latitude: location["latitude"] as! CLLocationdegrees,longitude: location["longitude"] as! CLLocationdegrees)
myMap.addAnnotation(annotations)
}
}
解决方法
先设置委托
myMap.delegate = self
然后执行
func mapView(_ mapView: MKMapView,didSelect view: MKAnnotationView) {
let ann = view.annotation as! MKPointAnnotation
// use ann
}
,
您可以对注释进行子类化并将所需的数据放入其中;
class VetClinicAnnotation: MKPointAnnotation {
let name: String
let address: String
let image: UIImage
init(with name: String,address: String,image: UIImage) {
self.name = name
self.address = address
self.image = image
}
}
然后您可以从地图视图委托中获取注释信息;
func mapView(_ mapView: MKMapView,didSelect view: MKAnnotationView) {
if let annotation = view.annotation as? VetClinicAnnotation {
// Use the annotation data
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。