スポンサーリンク

【Swift】現在地を取得しmapviewに表示させる方法。〜 「CoreLocation」import 〜

Swift
スポンサーリンク

今回の記事ではiOSアプリで現在地を取得する方法について記載している記事です。

以前mapkitviewを使用した現在地の取得方法は記載しましたがmapkitviewが特になくても現在地情報は取得できる様なので今回はその方法をご紹介します。

スポンサーリンク

iOSアプリで現在地を取得するXcode側の設定

こちらは上記の記事にも書いているのですが、info.plistに「Privacy – Location When In Use Usage Description」を追加して下さい。

これだけで現在地の取得に関しては行うことができます。

かなり下の方にいるのでわからなかったら検索すると選択リストが1つになります。

iOSアプリで現在地を取得するソースコード

今回の記事のメインになるところです。

import UIKit
import CoreLocation

class Modelcourse_ViewController: UIViewController,CLLocationManagerDelegate {
    
    // 現在地の位置情報の取得にはCLLocationManagerを使用
    var locationManager: CLLocationManager!
    // 取得した緯度を保持するインスタンス
    var my_latitude: CLLocationDegrees!
    // 取得した経度を保持するインスタンス
    var my_longitude: CLLocationDegrees!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
        my_latitude = locationManager.location?.coordinate.latitude
        my_longitude = locationManager.location?.coordinate.longitude
        print("現在地緯度経度")
        print(my_latitude,my_longitude)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {// 許可を求めるためのdelegateメソッド
            switch status {
                case .notDetermined:// 許可されてない場合
                    manager.requestWhenInUseAuthorization()// 許可を求める
                case .restricted, .denied:// 拒否されてる場合
                    break// 何もしない
                case .authorizedAlways, .authorizedWhenInUse: // 許可されている場合
                    manager.startUpdatingLocation()// 現在地の取得を開始
                    break
                default:
                    break
            }
        }
    /* 位置情報取得失敗時に実行される関数 */
    func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
        // この例ではLogにErrorと表示するだけ.
        NSLog("Error")
    }
}

Corelocationが現在地などのマップ関連のクラスになっているのでまずはimport して下さい。

classに「CLLocationManagerDelegate」を追加します。

その下の行で「locationManager」のインスタンスを作成し、許可関連の関数を設定します。

viewdidloadの下で「locationManager」が取得できる情報を記載しているのですがそこで緯度経度を取得するための変数にメソッドで値を入れ込んでいるという仕組み。

メソッドは「.location」でまず。場所の取得、その場所の中にはいろいろな要素が含まれているのですが、「cordinate.latitude」みたいな感じでkeyを渡してあげると値を吐きます。

今回はこんな感じです。

ただ、現在地を取得する関連のアプリではおそらくmapkitviewを同時に表示させることの方が多いと思います。

そのため過去きじですがmapkitview関連の記事を書いておりますので、下記参考ページリンクを貼っておきます。ご参照ください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Swift
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました