現在地の表示
(1)Info.plistに「ユーザに位置情報の使用を許可する際のMessage」を設定する
info.plistの設定
NSLocationWhenInUseUsageDescription   // MyAplを使う時だけ許可
or
NSLocationAlwaysUsageDescription   //常時、許可
を追加して、位置情報を使用する目的を記載します。
この内容はユーザに位置情報の使用を許可する際に表示されます。
cf.”現在位置を地図に表示するために利用します。”

設定したIDに対応する認証Dlgを表示
NSLocationAlwaysUsageDescription
self.myLocationManager.requestAlwaysAuthorization()
NSLocationWhenInUseUsageDescription
self.myLocationManager. requestWhenInUseAuthorization()

(2)MapKitとCLLocationManagerの設定
1.framework
MapKit.framework
CoreLocation.framework
2.import設定

   import CoreLocation
   import MapKit

3.コード概要

class DetailViewController: UIViewController
				,CLLocationManagerDelegate
				,MKMapViewDelegate {
   	 //現在地取得用
         var myLocationManager: CLLocationManager = CLLocationManager()

         var currentLocation: CLLocationCoordinate2D
		 =CLLocationCoordinate2D(latitude: 34.687315
					,longitude: 135.526201) //default現在地
    override func viewDidLoad() {
	//MapViewデリゲート設定
       	self.mapVw.delegate = self
      	//現在地の取得
       	self.getCurrentLocation()
    }

// MARK: - MapViewを地点を指定して表示する
    func drawMapView( center: CLLocationCoordinate2D ,_ anim:Bool = false){
        	
        //表示範囲 数値が小さくなるほど表示される領域は狭くなります。
	//(つまり、ズームレベルが高くなる)
        let span = MKCoordinateSpanMake(0.1, 0.1);
        
        //中心座標と表示範囲をマップに登録する。
        let region = MKCoordinateRegionMake(center, span);
        mapVw.setRegion(region, animated:anim);
    }

 // MARK: - 現在地を取得する
    func getCurrentLocation(){
        print("---- getCurrentLocation()");
        
        // 現在地を取得します
        myLocationManager = CLLocationManager()
	//delegate設定
        myLocationManager.delegate = self

        // 承認されていない場合はここで認証ダイアログを表示します.
        let status = CLLocationManager.authorizationStatus()
        if(status == CLAuthorizationStatus.NotDetermined) {
            print("didChangeAuthorizationStatus:\(status)");
            
	  //info.plist設定したIDに対応する認証 DLGを表示する
	  self.myLocationManager.requestWhenInUseAuthorization()
          //  ✳️✳️ NSLocationAlwaysUsageDescriptionの時は
	 // self.myLocationManager.requestAlwaysAuthorization()をCallする
        }
        
        myLocationManager.desiredAccuracy = kCLLocationAccuracyBest
        myLocationManager.distanceFilter = 100
        myLocationManager.startUpdatingLocation()
    }

// MARK: - 現在地表示Btnの押下==現在地(赤ピン位置)の表示
    @IBAction func clickedCurpointBtn(sender: AnyObject) {
        print("-- clickedCurpointBtn --")
        
        self.drawMapView(self.currentLocation)
    }

CLLocationManagerDelegateとMKMapViewDelegate のデリゲートを設定します

 //MARK: ==== CLLocationManagerDelegate --- 位置情報を取得したときに呼ばれる。
    func locationManager(manager: CLLocationManager
			, didUpdateToLocation newLocation: CLLocation
			, fromLocation oldLocation: CLLocation) {
       
        print("---- locationManager()--- 位置情報を取得した");
        print("緯度:\(manager.location!.coordinate.latitude)")
        print("経度:\(manager.location!.coordinate.longitude)")

        // 取得した位置情報の緯度経度を保存
        let latitude = newLocation.coordinate.latitude
        let longitude = newLocation.coordinate.longitude
	self.currentLocation = CLLocationCoordinate2DMake(latitude,longitude)
    }
    
//MARK: ==== CLLocationManagerDelegat --- 位置情報取得が失敗した際に呼ばれる。
    func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
        print("---- locationManager()--- 位置情報取得が失敗した");
	//取得できない場合、デフォルトの現在地が表示される
    }

// MARK: ====== MKMapViewDelegate 現在地のアノテーションビューを返すメソッド
    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
       // 現在地のアノテーションビューを設定する。
        if annotation === mapView.userLocation { // 現在地を示すアノテーション
            let identifier = "annotation"
            if let annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier("annotation") { 
		// 再利用できる場合はそのまま返す
                return annotationView
            } 
	   else { // 再利用できるアノテーションが無い場合(初回など)は生成する
                let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
                annotationView.image = UIImage(named: "curpos2") // ここで好きな画像を設定します
                return annotationView
            }
    }

で、こんな感じに表示されます

curpoint_star

 

 

 

 

 

 

では。では。