Maps SDK for iOS

最新バージョン: v6.3.0 変更ログ

  • カスタムマップスタイル
  • オフラインマップ
  • 高速なベクターマップ
  • 他のMapboxツールとの互換性

Maps SDK for iOSは、iOSアプリケーション内に高度にカスタマイズされたマップを埋め込むためのライブラリです。機能は以下の通りです:

  • カスタム・スタイリング: 美しいテンプレートスタイルまたはMapbox Studioで構築された独自のカスタムスタイルを使用します。実行時にマップのスタイルを変更することもできます。
  • オフラインマップ: オフラインでマップを保存することで、データ接続なしでより多くのことを行うことができます。
  • データ可視化: 独自のカスタムデータを含めることで、パワフルでインタラクティブなデータビジュアライゼーションを作成できます。
  • オープンソース: オープンソースのGitHubリポジトリに貢献して、新しい機能を把握しましょう。

iOS用のMapbox Maps SDKは、Xcode 8以上で構築され、iOS 9以上でデプロイされたアプリケーションと互換性があります。

最新バージョンへのアップグレード

古いバージョンのMapbox Maps SDK for iOSから新しいバージョンのMapbox Maps SDKへの移行については、以下を参照してください:

  • v4.x.xからv5.x.x: このバージョン変更により、毎月のアクティブユーザーのカウント方法が改善されました。移行する不要は無いですが、これらの詳細に関しては、変更ログおよび製品別価格設定をご参照ください。
  • v3.7.xからv4.0.x

マップSDKのインストール

Maps SDK を使用してアプリケーションの開発を開始する前に、クレデンシャル情報を設定し、依存関係として SDK を追加する必要があります。

クレデンシャル情報の設定

メモ

SDKを直接ダウンロードしてインストールする場合は、シークレットトークンを設定する必要はありません。パブリックトークンを設定する必要があります。

SDKをインストールする前に、適切なクレデンシャル情報を収集する必要があります。SDKは、お客様のMapboxアカウントから以下の2つの機密情報を必要とします。Mapboxアカウントをお持ちでない場合は、サインアップしてアカウントページに移動してください。以下の情報が必要となります。

  • パブリックアクセストークン: アカウントのトークンページから、デフォルトのパブリックトークンをコピーするか、Create a tokenボタンをクリックして新しいパブリックトークンを作成することができます。
  • シークレットトークン: Downloads:Readスコープを持つ秘密のトークン:
    1. アカウントのトークンページから、Create a tokenボタンをクリックします。
    2. トークン作成ページから、トークンに名前を付け、Downloads:Readスコープの隣のボックスがチェックされていることを確認してください。
    3. ページ下部のCreate tokenボタンをクリックして、トークンを作成します。
    4. シークレットトークンは作成時のみトークン内容のコピーが可能ですので、コピー後は安全な場所に保管ください。

これらのアクセストークンは、権限のないユーザーに公開しないこと、又はソースコードにコミットしないことを強く推奨します。代わりに、コンピュータ上の安全な場所に保存し、アプリがビルドされる場合のみ読み込まれることを確認してください。この設定ステップが完了すると、アプリの他の部分で権限情報を参照できるようになります。

シークレットトークンの設定

シークレットトークンを使用すると、SDKをMapboxから直接ダウンロードすることができます。シークレットトークンを使用するには、ホームディレクトリ(プロジェクトディレクトリとは異なります)に.netrcファイルを保存する必要があります。この方法は、シークレットトークンをアプリケーションのソースコードに含まないようにすることで、誤ってシークレットトークンを公開してしまうことを防ぐのに役立ちます。環境によっては、このファイルをすでに持っているかもしれませんので、新しいファイルを作成する前にまず確認してください。

~/.netrcファイルは、特定の開発環境で使用されるプレーンテキストファイルで、リモートサーバーにアクセスするために使用されるクレデンシャル情報を保存するために使用されます。SDKのダウンロードに必要なクレデンシャル情報を設定するには、~/.netrcファイルに次のエントリを追加します。

machine api.mapbox.com 
login mapbox
password <シークレットトークンを追加>

パブリックトークンの設定

パブリックアクセストークンを設定するには、プロジェクトのInfo.plistファイルを開き、値がパブリックアクセストークンであるMGLMapboxAccessTokenキーを追加します。

複数のアクセストークンをローテーションする場合は、それに応じてInfo.plistファイルのトークンの値を更新する必要があります。

guide
アクセストークンのベストプラクティス

モバイルアプリでアクセストークンを非公開にする方法をご紹介します。

場所のパーミッションを設定する

iOS用のMapbox Maps SDKは、MGLMapView.showUserLocationYESに設定されている場合、ユーザの位置情報利用許可を要求します。

iOS 14以前は、デバイスはユーザーの正確な位置情報しか送信できませんでした。iOS 14では、ユーザーはおおよその位置情報を選択することができます。ユーザーは、アプリまたはシステム設定で位置情報の初期許可が要求されたときに、正確な位置情報をオフに切り替えることができるため、開発者はおおよその位置情報をサポートすることを強くお勧めします。

ユーザーインターフェースを扱う

Maps SDKは、おおよそのユーザー位置情報をユーザーが提供する場合、地図上にておおよそに表示されます。このインジケータは、MGLMapView.showUserLocationYESに設定され、正確な位置情報がオプトアウトされている場合、デフォルトで表示されます。このコンポーネントをさらに設定したり、非表示にしたりすることができます。

正確な場所への一時的なアクセスを要求する

アプリケーションの機能によっては、正確な位置情報を必要とする場合があります。iOS用の Mapbox Maps SDKは、アプリケーションの設定レベルでユーザーがオプトアウトした場合に、正確な位置情報への一時的なアクセスを要求する AppleのCoreLocation APIのラッパーを提供します。

[MGLLocationManager.requestTemporaryFullAccuracyAuthorizationWithPurposeKey:]

ロケーションポップアップにて表示される説明はInfo.plistファイルにて以下の調整を行ってください。

アプリが一時的なアクセスのために位置情報を使用する方法をユーザーに簡単に説明します。

<key>NSLocationWhenInUseUsageDescription</key>
<string>Your precise location is used to calculate turn-by-turn directions, show your location on the map, and help improve the map.</string>

NSLocationTemporaryUsageDescriptionDictionary辞書の要素としてMGLAcccuracyAuthorizationDescriptionを追加して、アプリ内の機能が正確な位置を必要とする理由をユーザーに簡単に説明します。

<key>NSLocationTemporaryUsageDescriptionDictionary</key>
<dict>
    <key>MGLAccuracyAuthorizationDescription</key>
    <string>Please enable precise location. Turn-by-turn directions only work when precise location data is available.</string>
</dict>

便宜上、アプリケーションがMGLMapView.userTrackingModeを使用してユーザーの位置を追跡する場合、Maps SDKは完全な精度の認証をチェックし、ユーザーに代わってアクセスを要求します。

場所の承認の変更を処理する

任意の時点で、ユーザーはシステム設定で正確な位置情報へのアクセスを許可したり、取り消したりすることができます。iOS用のMaps SDKは、これらの変更を処理するためのデリゲートメソッドを提供します。

[MGLMapViewDelegate mapView:didChangeLocationManagerAuthorization:]

詳細については、このデリゲートメソッドの実装例を参照してください。

現在のセッションが終了すると、ユーザーが次にアプリを開いたときに位置情報の許可を求めるポップアップが表示されます。ユーザーは、このポップアップ、またはアプリのシステム設定で正確な位置情報を有効にする必要があります。

依存関係の追加

MapboxはCarthageCocoaPods直接ダウンロードを介してMaps SDKを提供しており、いずれかを選択することができます。

地図の追加

SwiftObjective-C、またはStoryboardを使用して、3つの方法のいずれかでアプリケーションにマップを追加できます。次のオプションのいずれかを選択して、お好みの方法でマップを作成する方法を確認してください。

他のツールとの統合

Maps SDK for iOSは、他のMapbox製品と連携可能です。他のツールやプラグインを組み合わせることで位置情報を活用した高度なアプリケーションを作成することができます。iOS開発者としてMapboxスタジオの使用方法の詳細をご参照ください。

Mapboxスタジオ

MapboxマップSDKはMapboxスタジオと互換性があります。ブランドとアプリケーション設計にシームレスに一致するマップを設計し、Mapboxスタジオ・ウェブ・インターフェース内で独自のカスタムデータを注ぎます。

ディレクションとターンバイターンナビゲーション

アプリケーション内にリアルタイムのターンバイターンナビゲーションを埋め込みます。iOS用Mapboxナビゲーションは、直ぐに使用できる高品質なユーザーエクスペリエンスを提供するために、ユーザーを別のアプリケーションに誘導する必要はありません。多くのカスタマイズオプションと再利用可能なコンポーネントにより、独自のユースケースとデザインにインターフェースの適合を可能にします。

ナビゲーションSDKは、MapboxディレクションAPIを使用して、複数の場所間を運転やサイクリング、歩行向けの交通情報を備えたディレクション機能が存在します。MapboxDirections.swiftは、ターンバイターン機能性なしでディレクションに直接アクセスする必要があるアプリケーションでも利用可能です。

検索

MapboxジオコーディングAPIを搭載したMapboxGeocoder.swiftを使用して、地図座標を住所に、または住所を地図座標に変換します。

スタティック・マップ

iOS用Mapbox Maps SDKには、アプリケーション内の既存マップのスタティック・スナップショットを生成するメソッドが含まれています。MGLMapSnapshotterクラスを使用して、別のAPIに要求することなくマップのスタティック・ラスター・イメージを作成します。

MapboxスタティックAPIを搭載したMapboxStatic.swiftを使用して、スタティック・マップ・スナップショットを備えたコンパニオンtvOSおよびwatchOSアプリケーション全体で一貫したエクスペリエンスを提供します。

価格設定

Maps SDK for iOSの価格設定は、毎月のアクティブユーザーを基に測定されます。詳細に関しては、価格設定ページをご参照ください。

利用可能なリソース

Maps SDK for iOSのドキュメンテーションは以下の形式で提供されます:

お探しものが見つからない場合、弊社サポートチームにお問い合わせください