IOS控制元件-MKMapView的使用
阿新 • • 發佈:2018-12-21
首先簡單的使用MKMapView
使用之前要匯入官方的包import MapKit並且新增地理檢視代理協議MKMapViewDelegate
//初始化地圖控制元件。與根檢視保持一致 let map = MKMapView(frame: self.view.bounds) //顯示當前使用者的地理位置 map.showsUserLocation = true //設定地圖的顯示樣式為衛星檢視?️ map.mapType=MKMapType.satellite self.view.addSubview(map)
簡單到令人髮指的地圖就好了。
為MKMapView指定Location
在之前的程式碼基礎上新增程式碼
//設定經緯度建立一個locgtion let coordinatie2d = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105) //設定縮放級別 let zoomlevel = 0.02 //初始化一個常量,表示地圖物件的顯示區域 let region = MKCoordinateRegion(center: coordinatie2d, span: MKCoordinateSpan(latitudeDelta: zoomlevel, longitudeDelta: zoomlevel)) //設定map的顯示區域 map.setRegion(region, animated: true)
MKMapView的其它常用設定和標記、
還是在之前的程式碼新增新的程式碼
//在地圖上顯示指南針和 縮放資訊 交通 建築三維 興趣點 使用者位置 map.showsCompass = true map.showsScale = true map.showsTraffic = true map.showsBuildings = true map.showsPointsOfInterest = true map.showsUserLocation = true //是否允許滾動檢視地圖 是否使用地圖相機的頭資訊。是否允許通過手勢放大縮小 map.isScrollEnabled = false map.isRotateEnabled = false map.isZoomEnabled = true //當攝像機和地圖關聯時。此處為true時 可以使用相機的俯仰角來傾斜地圖的平面 map.isPitchEnabled = true //初始化一個點註釋物件 let objectAnnotation = MKPointAnnotation() objectAnnotation.coordinate=coordinatie2d; objectAnnotation.title = "標題" objectAnnotation.subtitle = "子標題" map.addAnnotation(objectAnnotation)
將地理座標轉換為實際地名
//初始化一個地理位置解析類。反向解析地理座標
let geocoder = CLGeocoder()
//解析座標
let location = CLLocation(latitude: 39.915352, longitude: 116.397105)
geocoder.reverseGeocodeLocation(location){
(placeMarks:[CLPlacemark]?,errno:Error?)
->Void in
if (placeMarks?.count)! > 0{
let placeMark = placeMarks?.first
print(placeMark?.name ?? "");//輸出“Taihe Gate”
print("1")
}else{
print("2")
}
}