Help us understand the problem. What is going on with this article?

[iOS]緯度経度取得ライブラリINTULocationManagerを使ってみた。

More than 5 years have passed since last update.

「iPhoneで、現在地の緯度経度を取得したい」という要求がありまして、色々と調べていたところ、”INTULocationManager”というライブラリが良さそうな感じでした。

触りだけ使ってみたので、ご紹介します。

Github:intuit/LocationManager

特徴

Githubのreadmeによれば、以下の特徴があるとのことです。

  • (iOS標準のCLLocationManagerだと難しい)、1回限りのlocation検索ができる。
  • シンプルなAPI
  • 精度、タイムアウト時間を設定できる
  • (緯度経度が求まったらGPSをOFFにするので)バッテリーにやさしい

連続して位置情報を取得するのではなく、1回限りの位置情報取得に特化したライブラリです。カーナビアプリのように、ずっと位置情報を使うアプリには向かないようです。

インストール

インストールは、おなじみのCocoaPodsで行います。Podfileに

pod 'INTULocationManager'

と書いて、pod install なり pod update なりを実行すればインストールできます。

準備

iOS 8以降で使用する場合は、Info.plistに NSLocationWhenInUseUsageDescription または NSLocationAlwaysUsageDescription の記入が必須になります。

これは、位置情報を使う場合は必ずやらなくてはいけない設定ですね...。

参考サイト:iOS 8から位置情報を取得する方法が変わるよ - Qiita

ソースコード

実際に使用するときは以下のようになります。githubのサンプルソースをSwiftで書き換えてみました。

        let locMgr = INTULocationManager.sharedInstance()
        locMgr.requestLocationWithDesiredAccuracy(INTULocationAccuracy.City,
            timeout: 10.0,
            block: { (currentLocation:CLLocation!, achievedAccuracy:INTULocationAccuracy, status:INTULocationStatus) -> Void in

                switch (status) {
                case .Success:
                    println("success")
                case .TimedOut:
                    println("timeout")
                default:
                    println("default")
                }
                println("accuracy=" + String(achievedAccuracy.rawValue))
                println("location=" + currentLocation.description)
        })

実行結果

こんな感じになります。

status: 0
success
accuracy=5
location=<+38.26042400,+140.88213500> +/- 5.00m (speed -1.00 mps / course -1.00) @ 12/3/14, 9:27:03 PM Japan Standard Time

感想

INTULocationManagerは「位置情報を1回だけ行いたい」用途に特化したライブラリでした。幸いにも、自分が実装したい機能にバッチリマッチしていましたので、導入してみようと思います。

以前、CLLocationManagerで1回だけ緯度経度情報を取得するコードを書いた事があるんですが、結構面倒でしたし...。

このライブラリなら、お手軽にその機能が実現できるので、良いんじゃないでしょうか!

tototti
仙台でプログラマー会社員をやっています。仙台iOS勉強会(SWWDC)をやったり、iOSアプリを開発したりしています。
http://lablog.tototti.com/
nanairo
仙台・宮城の伝統工芸の活性化や継承を目的としたオンラインクラフトショップ運営やアプリ開発を行う IT x クリエイティブ企業
https://nanairo-inc.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away