1. 程式人生 > >IOS控制元件-MKMapView的使用

IOS控制元件-MKMapView的使用

首先簡單的使用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")
            }
        }