import UIKit
//往控制器类文件中引入地图框架
import MapKit
//添加地理视图代理协议
class ViewController: UIViewController , MKMapViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
//把经纬度转化为实际地名在控制台输出----
// 初始化一个地理位置解析类,使用该类进行地理坐标的反向解析
let geocoder = CLGeocoder()
// 通过设定经纬度来创建一个地理位置
let location = CLLocation(latitude: 39.9, longitude: 116.3)
// 使用解析对象,解析地理坐标
geocoder.reverseGeocodeLocation(location) { (placemark:[CLPlacemark]?, error:Error?)
-> Void in
if (placemark?.count)! > 0
{
// 获得位置标记数组中的第一个元素
let placemark = placemark?.first
// 在控制台打印解析后的结果
print(placemark?.name ?? "")
}
}
//---------输出了实际地名,此操作和后续代码没有关联
// Do any additional setup after loading the view, typically from a nib.
// 初始化一个地图对象,并指定位置与尺寸与根视图保持一致
let map = MKMapView(frame: self.view.bounds)
// 在地图中显示用户当前的地理位置
map.showsUserLocation = true
// 设置地图的显示样式
// 1.卫星视图模式
map.mapType = MKMapType.satellite
// 通过设定经纬度来创建一个地理位置
let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105)
// 设置缩放级别
let zoomlevel = 0.002
// 初始化一个常量,表示地图对象的显示区域
let region = MKCoordinateRegionMake(coordinate2D, MKCoordinateSpanMake(zoomlevel, zoomlevel))
// 设置地图对象的显示区域
map.setRegion(map.regionThatFits(region), animated: true)
// 初始化一个点注释对象
let objectAnnotation = MKPointAnnotation()
// 设置注释对象的地理位置
objectAnnotation.coordinate = coordinate2D
// 设置注释对象的标题内容
objectAnnotation.title = "Imperial Palace"
// 设置注释对象的字标题内容
objectAnnotation.subtitle = "China's biggest palace."
// 将注释窗口添加到地图中
map.addAnnotation(objectAnnotation)
self.view.addSubview(map)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}