本文将演示当点击地图上的标注圆点时,弹出信息窗口。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //首先往视图控制器类文件中,引入地图框架 3 import MapKit 4 5 //添加地理地图代理协议MKMapViewDelegate 6 class ViewController: UIViewController, MKMapViewDelegate { 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 // Do any additional setup after loading the view, typically from a nib. 11 //初始化一个地图对象,并制定其位置和尺寸:与根视图保持一致 12 let mapView = MKMapView(frame: self.view.bounds) 13 //在地图中,显示当前用户的地理位置 14 mapView.showsUserLocation = true 15 //设置地图的显示样式,为标准的地图类型 16 mapView.mapType = MKMapType.standard 17 18 //设置在地图视图上显示指南针控件 19 mapView.showsCompass = true 20 //设置在地图视图上显示缩放信息 21 mapView.showsScale = true 22 //设置在地图视图上显示交通信息 23 mapView.showsTraffic = true 24 25 //设置在地图视图上显示三维建筑信息 26 mapView.showsBuildings = true 27 //设置在地图视图上显示兴趣点信息 28 mapView.showsPointsOfInterest = true 29 //显示当前用户的地理位置 30 mapView.showsUserLocation = true 31 32 //设置在地图视图上,是否允许用户查看当前的地图 33 mapView.isScrollEnabled = false 34 //设置在地图视图上,是否使用地图相机的头信息 35 mapView.isRotateEnabled = false 36 //设置在地图视图上,是否允许用户使用捏合手势来放大和缩小地图 37 mapView.isZoomEnabled = false 38 //设置在地图视图上,当此属性设置为真时,并且有摄像机与地图关联时, 39 //可以使用摄像机的俯仰角,来倾斜地图的平面 40 mapView.isPitchEnabled = true 41 42 //通过设定经纬度,来创建一个地理位置 43 let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105) 44 //设置地图显示区域的缩放级别 45 let zoomLevel = 0.02 46 //初始化一个常量,标识地图对象的显示区域 47 let region = MKCoordinateRegion(center: coordinate2D, span: MKCoordinateSpan(latitudeDelta: zoomLevel, longitudeDelta: zoomLevel)) 48 //设置地图对象的显示区域 49 mapView.setRegion(region, animated: true) 50 51 //初始化一个点注释对象 52 let objectAnnotation = MKPointAnnotation() 53 //设置注释对象的地理位置 54 objectAnnotation.coordinate = coordinate2D 55 //设置注释对象的标题内容 56 objectAnnotation.title = "Imperial Palace" 57 //设置注释对象的子标题内容 58 objectAnnotation.subtitle = "China's biggest palace." 59 60 //将注释窗口对象,添加到地图中 61 mapView.addAnnotation(objectAnnotation) 62 63 //将地图视图对象,添加到当前视图控制器的根视图 64 self.view.addSubview(mapView) 65 } 66 67 override func didReceiveMemoryWarning() { 68 super.didReceiveMemoryWarning() 69 // Dispose of any resources that can be recreated. 70 } 71 }