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

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

マップキット

アプリ内に地図または衛星画像を表示し、関心のあるポイントを呼び出し、地図座標の目印情報を決定します。
スポンサーリンク

概要

MapKitを使用して、地図と位置情報でアプリに場所の感覚を与えます。MapKitフレームワークを使用して、次のことができます。

  • マップをアプリのウィンドウとビューに直接埋め込みます。
  • 関心のあるポイントを呼び出すために、注釈とオーバーレイをマップに追加します。
  • ユーザーが目的地や興味のある場所を簡単に検索できるように、テキスト補完を提供します。

アプリが交通機関のルートを提供している場合は、マップでルートを利用できるようにすることができます。マップを使用して、アプリで提供する道順を補足することもできます。たとえば、アプリが地下鉄の移動経路のみを提供している場合、マップを使用して地下鉄の駅との間の徒歩の経路を提供できます。

位置情報サービスと地図について

About Location Services and Maps

アプリで位置情報に基づく情報を使用することは、ユーザーが周囲の世界とつながるための優れた方法です。この情報を実用的な目的(ナビゲーションなど)で使用する場合でも、娯楽目的で使用する場合でも、ロケーションベースの情報は全体的なユーザーエクスペリエンスを向上させることができます。

../Art/location_and_maps_intro_2x.png

ロケーションベースの情報は、ロケーションサービスとマップの2つの部分で構成されています。ロケーションサービスは、ユーザーのロケーションと方向(デバイスが指している方向)に関する情報を取得するためのObjective-Cインターフェイスを定義するコアロケーションフレームワークによって提供されます。マップは、マップアプリにあるものと同様のマップの表示と注釈の両方をサポートするマップキットフレームワークによって提供されます。(マップキットフレームワークの機能を使用するには、Xcodeプロジェクトでマップ機能をオンにする必要があります。)位置情報サービスとマップは、iOSとOSXの両方で利用できます。

At a Glance

地理データをアプリに組み込むことで、ユーザーを周囲の環境に向け、近くの人々とのつながりを保つことができます。

地図と位置情報サービスはiOSとOSXの両方で利用できるため、位置情報ベースのアプリは両方のプラットフォームで非常によく似たコードを使用します。違いは、ユーザーインターフェイスコード(たとえば、UIViewiOSとNSViewOS Xでの使用)と、iOSでのみサポートされているいくつかの機能(見出しサービスなど)にあります。

位置情報サービスは、アプリの地理的コンテキストを提供します Location Services Provide a Geographical Context for App

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

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

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

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

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

  • iOSアプリがバックグラウンドでも位置情報を監視し続ける必要がある場合は、標準の位置情報サービスを使用しlocationUIBackgroundModesキーの値を指定して、バックグラウンドで実行を継続し、位置情報の更新を受信します。(この状況では、電力を節約するためにロケーションマネージャーのpausesLocationUpdatesAutomaticallyプロパティがに設定されYESていることも確認する必要があります。)このタイプのロケーション更新が必要になる可能性のあるアプリの例は、フィットネスまたはターンバイターン方式のナビゲーションアプリです。
  • GPSレベルの精度がアプリにとって重要ではなく、継続的な追跡が必要ない場合は、大幅な変更の位置情報サービスを使用できます。これらの更新は、停止するまで24時間継続的に実行され、効果的に使用しないと実際にはエネルギー使用量が増える可能性があるため、重要な変更位置情報サービスを正しく使用することが重要です。
標準または大幅な変更の位置情報サービスを開始する前に、常にのlocationServicesEnabledクラスメソッドを呼び出すことをお勧めしますCLLocationManager。それが戻ってきてNO、とにかく位置情報サービスを開始しようとすると、システムは、位置情報サービスを再度有効にする必要があるかどうかを確認するようにユーザーに求めます。ユーザーが意図的に位置情報サービスを無効にした可能性があるため、プロンプトは歓迎されない可能性があります。
iBeacon送信機は、Bluetooth LowEnergyワイヤレステクノロジーを使用して特定の識別情報をアドバタイズするビーコンを作成および監視する方法を提供します。同じユニバーサル一意識別子(UUID)をアドバタイズするBluetooth Low Energyビーコンは、アプリがコアロケーション領域監視サポートを通じて監視できるビーコン領域を形成します。同じUUIDを持つビーコンは、アドバタイズする追加情報によって区別できます。ビーコンがユーザーのデバイスの範囲内にある間、アプリはビーコンまでの相対距離を監視することもできます。ビーコンによってアドバタイズされた情報を使用して、特定の場所のユーザーエクスペリエンスを向上させることができます。たとえば、美術館のアプリは、美術館の重要な展示物の近くに配置されたビーコンを監視できます。ユーザーが特定の展示物に近づくと、アプリはビーコンの相対距離を手がかりとして使用して、別の展示物ではなく、その展示物に関するより多くの情報を提供できます。ビーコンはBluetoothLow Energyテクノロジーを使用して情報をアドバタイズするため、Bluetooth LowEnergyデータ共有をサポートするiOSデバイスをビーコンに変えることができます。関連する章: 地域の監視とiBeacon

見出しサービスは、デバイスがどの方向を向いているかについてのより正確な情報を提供することにより、基本的な位置情報サービスを補完します。このテクノロジーの最も明白な用途はコンパスですが、拡張現実、ゲーム、ナビゲーションアプリをサポートするためにも使用できます。磁力計(正確な方位情報を取得するために使用されるハードウェア)を備えていないデバイスでも、ユーザーのコースと速度に関する情報は、磁力計を必要とするアプリで利用できます。関連する章: デバイスの見出しとコースを取得する

マップは、ナビゲーションと地理的に関連するコンテンツの表示をサポートします Maps Support Navigation and the Display of Geographically Relevant Content

マップは、ユーザーが理解しやすい方法で地理データを視覚化するのに役立ちます。たとえば、地図では、ある地域の衛星データを表示したり、地図ビューを斜めに配置して、その地域の3Dパースペクティブ用に3次元の建物を表示したりできます。Map Kitフレームワークの標準ビューをアプリに組み込んで、特定の地理的ポイントに関連付けられた情報を表示できます。さらに、このフレームワークを使用すると、カスタム情報をマップの上に重ねて、残りのマップコンテンツと一緒にスクロールし、マップの静的スナップショットを作成して印刷することができます。関連する章: マップの表示、マップへの注釈

ルーティングアプリは、マップアプリから座標を受け取り、それらの座標を使用してユーザーにポイントツーポイントの方向を提供できます。ナビゲーション機能を提供するアプリは、最小限の追加作業でルーティングアプリを宣言できます。運転ルートと徒歩ルートに加えて、ルーティングアプリは、タクシー、飛行機、さまざまな公共交通機関のオプションなど、他のいくつかの交通手段をサポートできます。関連する章: 方向性の提供

ユーザーは、名前、住所、業種などの説明情報に基づいて場所を見つけたいと思うことがよくあります。Map Kitローカル検索APIを使用すると、このタイプのユーザー入力に基づいて検索を実行し、結果をマップに表示できます。関連する章: 検索の有効化

各テクノロジーを使用するために、このドキュメント全体を読む必要はありません。CoreLocationおよびMapKitフレームワークサービスは、他のサービスから独立しています。各章の冒頭では、対応するテクノロジーを理解するために必要な用語と情報を紹介し、その後に例とタスク関連の手順を示します。唯一の例外は、「マップ表示」の章に示されている情報に基づいて作成された「マップ注釈」の章です。

関連項目

Core Locationフレームワークのクラスについては、 『Core Location Framework Reference』を参照してください。

マップキットフレームワークのクラスについては、マップキットフレームワークリファレンスを参照してください。

プロジェクトでマップサービスを有効にする方法については、アプリ配布ガイドの「マップの構成」を参照してください。

アプリで位置認識をテストおよびデバッグする方法については、「マップを使用して位置認識をシミュレートする」を参照してください

MapKit | Apple Developer Documentation
Display map or satellite imagery within your app, call out points of interest, and determine placemark information for map coordinates.

コメント