[SwiftUI]Apple iOS Appで地図アプリを利用する。【MAPKit】

スポンサーリンク
[SwiftUI]Apple iOS Appで地図アプリを利用する。【MAPKit】 SwiftUI
スポンサーリンク

位置情報サービスは、アプリの地理的コンテキストを提供します

ユーザーの地理的な場所を知ることで、提供する情報の品質を向上させることができ、アプリの中心となることもあります。ナビゲーション機能を備えたアプリは、位置情報サービスを使用してユーザーの位置を監視し、更新を生成します。他の種類のアプリは、位置情報サービスを使用して、近くのユーザー間のソーシャル接続を可能にします。関連する章:ユーザーの位置の取得地域の監視とiBeacon位置データのジオコーディング iOSアプリが正しく機能するために位置情報サービスを必要とする場合UIRequiredDeviceCapabilitiesは、アプリのInfo.plistファイルにキーを含めます。App Storeはこのキーの情報を使用して、ユーザーがリストされた機能を含まないデバイスにアプリをダウンロードできないようにします。

Core Locationフレームワークを使用すると、デバイスの現在の位置を特定し、その情報をアプリで使用できます。フレームワークは、デバイスの場所をコードに報告し、サービスの構成方法に応じて、新しいデータまたは改善されたデータを受信するときに定期的な更新も提供します。

次の2つのサービスで、ユーザーの現在地を確認できます。

  • 標準位置情報サービスは、位置データを取得し、精度の指定レベルの位置の変化を追跡するための構成可能な、汎用のソリューションです。
  • 有意な変化ロケーションサービスは、例えば500メートル以上のように、装置の位置に大きな変化があった場合にのみ更新配信します。

位置データの収集は、電力を大量に消費する操作です。ほとんどのアプリでは、通常、初期位置修正を確立し、その後定期的にのみ更新を取得するだけで十分です。アプリ内の位置データの重要性に関係なく、適切な位置情報サービスを選択し、デバイスのバッテリーを消耗しないように賢明に使用する必要があります。例えば:

  • iOSアプリがバックグラウンドでも位置情報を監視し続ける必要がある場合は、標準の位置情報サービスを使用しlocationUIBackgroundModesキーの値を指定して、バックグラウンドで実行を継続し、位置情報の更新を受信します。(この状況では、電力を節約するためにロケーションマネージャーのpausesLocationUpdatesAutomaticallyプロパティがに設定されYESていることも確認する必要があります。)このタイプのロケーション更新が必要になる可能性のあるアプリの例は、フィットネスまたはターンバイターン方式のナビゲーションアプリです。
  • GPSレベルの精度がアプリにとって重要ではなく、継続的な追跡が必要ない場合は、大幅な変更の位置情報サービスを使用できます。これらの更新は、停止するまで24時間継続的に実行され、効果的に使用しないと実際にはエネルギー使用量が増える可能性があるため、重要な変更位置情報サービスを正しく使用することが重要です。

標準または大幅な変更の位置情報サービスを開始する前に、常にのlocationServicesEnabledクラスメソッドを呼び出すことをお勧めしますCLLocationManager。それが戻ってきてNO、とにかく位置情報サービスを開始しようとすると、システムは、位置情報サービスを再度有効にする必要があるかどうかを確認するようにユーザーに求めます。ユーザーが意図的に位置情報サービスを無効にした可能性があるため、プロンプトは歓迎されない可能性があります。

コメント