はじめに

このガイドでは、 HERE SDK を使用してアプリを構築するための最初のステップについて説明します。 HERE SDK は 、 HERE platform から モバイルアプリケーションに最適な最新のアセットを提供できるようにカスタマイズされています。

作業を開始する前に、以下の内容を確認してください。

情報

開発を開始するには、HERE SDK パッケージを取得する必要があります。 内容は次のとおりです。

  • HERE SDK は、 sdk.xcframework を継承しています。 これは、アプリに含める HERE SDK バイナリバンドルです。
  • 複数のドキュメントアセットとサンプルアプリ。
  • アプリ に含める必要がある here_notice ファイル。オープンソースに関する通知を参照してください。

HERE SDK パッケージを取得するには、次の 2 つの方法があります。

次の手順では、計画を選択します。

フリーミアム プランでは、 HERE SDK の使用を自由に開始できます。 利用可能なプランの概要については、価格設定ページを参照してください。 プランの詳細については、価格設定に関する FAQ を参照してください。

ご利用のプランに応じ て、 1 か月あたりのトランザクション数および月間アクティブユーザー (MAU) などのその他のパラメータに基づいて HERE SDK が請求します。

資格情報を入手してください

HERE SDK でアプリ を認証するには、次の 2 つの文字列が必要です。

  • アクセスキー ID ():AccessKeyId アカウントの一意の ID 。
  • アクセスキーシークレット ():AccessKeySecret 秘密キー。作成時に 1 回だけ表示されます。 ページから移動する前に、メモしておいてください。

HERE SDK を使用するために、他の資格情報 またはトークンは必要ありません。

ID およびアクセス管理 』ガイドの説明に従って、アプリ を登録および管理できます。 資格情報 は 、 developer.here.com またはHERE platform ポータルから取得できます。

  • developer.here.com で、プロジェクトを作成した後、アプリ を生成してアクセスキー ID とアクセスキーシークレットを取得します。 既存のプロジェクトを選択するか、新しいプロジェクトのプランを選択できます。 次に、 HERE SDK 製品ファミリまでスクロールダウンし、[キーの作成] をクリックします。
  • または、HERE プラットフォーム ポータルアプリのページに移動し、新しいアプリを登録します。登録が完了すると 、資格情報 を作成できます。

メモ

これらの資格情報は、プラットフォームに関係なく、Lite、および Explore の各エディションで再利用できます。さらに、これらの資格情報を複数のアプリで使用できます。たとえば、GitHub にあるすべてのサンプルアプリで動作します。 Navigate Edition の場合、HERE の担当者に連絡して、一連の評価資格情報 を生成する必要があります。

資格情報 を取得すると 、 HERE .client.id または アプリ ID も 表示されます。 これらの ID は、 HERE SDK の公開 API では必要ありませんが、 HERE サポートチームに連絡する場合に役立ちます。 アプリ ID、 Lite Edition および Explore Edition にのみ関連 し、他のエディションには使用されません。

アプリの資格情報の設定方法の詳細については、以下の「アプリケーションの認証」セクションも参照してください。

サンプルアプリを試してください

はじめにを使用する最も簡単 な方法は、 HERE SDK で利用できる多くのサンプルプロジェクトのいずれかを試すことです。

選択した例を選択してから、次の操作を行います。

  1. HERE SDK フレームワークを追加します。 heresdk.xcframework アプリのルートフォルダーにフォルダーをコピーします。 このフォルダには、 1 つのファイルInfo.plistと 2 つのフォルダ (ios-arm64,ios-arm64_x86_64-simulator) を含む、より多くのファイルが含まれていることに注意してください。
  2. HERE Credentials (AccessKeyId および AccessKeySecret) を AppDelegate.swift プロジェクトのファイルに追加します。

これで、 Xcode プロジェクトを開く準備 ができました。また、お使いのデバイスまたはシミュレータでアプリを即座に実行できます。

メモ

この開発者ガイドのほぼすべてのトピックが実行可能なアプリとして利用できることをご存知でしたか ?

サンプルのコードを自由に試してください。 以下のガイドを参照して、 HERE SDK でアプリを開発する方法についてより詳細に説明することもできます。

新しい iOS プロジェクトを作成します

最初のステップバイステップの例として、 -yes を表示する "Hello Map" iOS アプリケーションを開発します。 - 地図。 SDK を既存のアプリケーションに統合する場合は、この手順を省略できます。 特定の SDK コードが HERE に含まれていません。 Xcode を IDE として使用することをお勧めします。 iOS の開発に慣れていない場合 は、 developer.apple.com のガイドに従って、はじめにの最初のステップをサポートしてください。

メモ

「 HelloMap 」のサンプルコードは 、 HERE から入手できます。

Xcode を起動し ( このガイドではバージョン 13.0 を使用しています ) 、 新しい Xcode プロジェクトを作成します。

  • テンプレートで は、 iOS => Application => Single View アプリを選択するだけで十分です。
  • [ 次へ ] をクリックし
  • プロジェクト名を入力します ( 例 : ) 「 HelloMap 」と入力し 、言語として Swift を選択します。
  • 次へ」をクリックして、プロジェクトを保存する適切なディレクトリを選択します。

新しく作成したプロジェクトで 、アプリケーションの実行先としてシミュレータまたは実装置 ( 推奨 ) を選択します。

以下の例では、デフォルトの方向設定を保持しています。 既存のサンプルアプリを実行する場合 は、展開ターゲットがインストール済みのバージョンに設定されていることを確認してください。 iOS 12.4 が使用されています。

ここで 、現在のスキームをビルドして実行 し、プレーンプロジェクトが期待どおりに実行されることを確認します。 すべて問題が解決した場合は、内容のない空白のビューが表示されます。

こんにちは地図を発声してください。

iOS アプリが動作するようになったら、 HERE SDK を追加して、シミュレータまたはデバイスに地図を表示します。 次のステップの概要を示します。

  1. HERE SDK を統合します。
  2. 必要な資格情報 を設定します。
  3. マップ ビューをコードで追加するか、ストーリーボードに追加します。
  4. 最初のマップ シーンをロードするコードを追加します。

メモ

HERE SDK のすべての機能にシミュレータからアクセスできますが、実際のデバイスの使用を強くお勧めします。 全体的なパフォーマンスが向上し、マルチタッチ対応のハードウェアではジェスチャなどの一部の機能が簡単に使用できます。 マップ ビューのレンダリングは、モバイル機器 GPU 用に最適化されています。

まず、最初のステップで、 HERE SDK をプロジェクトに追加する方法を確認しましょう。

HERE SDK を統合します

developer.here.com で は、アプリケーションに含める HERE SDK フレームワーク (xx.yy.zz.release_date) などの最新のリリースアーティファクトを見つけることができます。

heresdk.xcframework アプリのルートフォルダーにフォルダーをコピーします。 このフォルダには、 1 つのファイルInfo.plistと 2 つのフォルダ (ios-arm64,ios-arm64_x86_64-simulator) を含む、より多くのファイルが含まれていることに注意してください。

Xcode でアプリ ターゲットの全般設定を開き、「フレームワーク、ライブラリ、および埋め込みコンテンツ」セクションに heresdk.xcframework を追加します(「+」をクリックしてから、「その他を追加...」をクリックします)。-> 「ファイルを追加 ... 」)。

メモ

このガイドは、 HERE SDK バージョン 4.12.3.0 をベースにしています。 使用しているフレームワークのバージョンがこのガイドで使用されているバージョンと異なる場合は、手順が異なる可能性があり、サンプルのソースコードを調整する必要があります。

HERE Credentials を設定します

HERE SDK を使用する場合は、一連の資格情報 でアプリケーションを認証する必要があります。

情報

ヒント : 「主な概念 」セクションでは、 HERE SDK を初期化する方法をさらに見つけることができます。

資格情報 を手元に置いたら、 HERE SDK の初期化時にプログラムで資格情報 のセットを追加します ( 次の手順を参照 ) 。

メモ

資格情報は、アプリの名前ではなく、資格情報の取得に使用されたアカウントに関連付けられています。 これにより、複数のアプリで同じ資格情報のセットを使用できます。

HERE SDK を初期化します

HERE SDK は自動的には初期化されなくなりました。 代わりに、 HERE SDK を初期化する時点を自由に決定できるようになりました。 初期化はメインスレッドで同期的に行われ、約 100 ミリ秒かかります。

HERE SDK を初期化するには、 HERE SDK を使用する前に次のメソッドを実行します。

private func initializeHERESDK() {
    // Set your credentials for the HERE SDK.
    let accessKeyID = "YOUR_ACCESS_KEY_ID"
    let accessKeySecret = "YOUR_ACCESS_KEY_SECRET"
    let options = SDKOptions(accessKeyId: accessKeyID, accessKeySecret: accessKeySecret)
    do {
        try SDKNativeEngine.makeSharedInstance(options: options)
    } catch let engineInstantiationError {
        fatalError("Failed to initialize the HERE SDK. Cause: \(engineInstantiationError)")
    }
}

HERE プログラムで資格情報 を挿入できます。 を呼び出すことで makeSharedInstance() 、 HERE SDK を使用するために必要なものをすべて初期化できます。 HERE SDK のコアクラスが呼び出さ SDKNativeEngineれます。 ボンネットの下では、このインスタンスは HERE SDK によって提供される他のエンジンによって使用されます。

メモ

4.12.1.0 よりも前の古い HERE SDK バージョンから移行する場合 plist は、まずファイルから資格情報 タグ ( 存在する場合 ) を削除してください。

以下に、レイアウトからMapView にアクセスする前にAppDelegateapplication(_ application:launchOptions:)メソッドのinitializeHERESDK()を呼び出す方法の例を示します。

同様 initializeHERESDK()に、 HERE SDK を廃棄してリソースを解放することもできます。

private func disposeHERESDK() {
    // Free HERE SDK resources before the application shuts down.
    // Usually, this should be called only on application termination.
    // Afterwards, the HERE SDK is no longer usable unless it is initialized again.
    SDKNativeEngine.sharedInstance = nil
}

以下に 、AppDelegateapplicationWillTerminate(application:) メソッドのdisposeHERESDK()を呼び出す方法の例を示します。

マップ ビューを追加します

SDK がプロジェクトに統合され、必要な資格情報が追加されたので MapViewLite 、新しいインスタンスを追加できます。

メモ

マップ ビューは、リソースに制約のあるデバイス用に最適化された特殊な軽量レンダリングアーキテクチャにより、「マップビューライト」と呼ばれています。 HERE Rendering Engine、 Explore Edition および Navigate Edition の一部としてのみ利用できます。

これを行うには、 2 つの方法があります。 まず MapViewLite 、プログラムでを追加する方法を示します MapViewLite 。次に、 Storyboard を使用してを追加する方法を示します。

いずれの方法を選択した場合も ViewController.swift 、次のモジュールのインポート行をファイルに追加する必要があります。

import heresdk

メモ

複数 のMapViewLiteインスタンスを 1 つの画面で作成してレンダリングできます。

マップ ビューをプログラムで追加します

ViewController 次の変数宣言をクラスに追加して、マップ ビュー変数を追加します。

var mapView: MapViewLite!

viewDidLoad() メソッドで、次のコードを追加してマップ ビューを初期化します。

override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize MapViewLite without a storyboard.
    mapView = MapViewLite(frame: view.bounds)
    view.addSubview(mapView)
}

MapViewLite これにより、親ビューと同じサイズになり、サブビューとして追加されます。

ストーリーボードにマップ ビューを追加します

上記のようにプログラムによってMapViewLiteを初期化するのでは なく、ストーリーボードを使用して Xcode の Interface Builder から UI を構築することをお勧めします。 この場合、上記の行を View Controller に追加する必要はありません。

代わりに、 Main.storyboard を開き、メインビュー (ViewController の下にネストされています ) を選択します。 Identity Inspectorので Custom Class、と入力 MapViewLiteします。 Moduleにと入力 heresdkします。

次に、アシスタントエディターを開き、 Ctrl キーを押しながらマップ ビューをクリックして、アウトレット ViewController を作成するためにににドラッグします。 アウトレットウィンドウがポップアップ表示されます。名前として、 mapView と入力し、 connect をクリックします。 これにより、 View Controller に次の行が追加されます。

@IBOutlet var mapView: MapViewLite!

IBOutlet View Controller からアクセスできるようになりました。このコントローラを使用できます。 この手順には、 SDK 固有のアクションは含まれていません。 MapViewLite は、他の UIView アクションとまったく同じように動作します。

スイフト UI を使用してマップ ビュー を追加します

または、マップ ビュー と スイフト UI を併用してください。

マップ ビューはサブクラス UIView です。このチュートリアルで示すように、UIViewRepresentable プロトコルに準拠した SwiftUI ビューでビューをラップできます。

スイフト UI を利用するには、 iOS 13 以降が必要です。

マップ シーンをロードします

HERE SDK を使用するこの最初のアプリでは、 SDK に付属しているデフォルトのマップスタイルのいずれかをロードします。

メモ

完全にカスタマイズされた独自のマップスタイルを作成することもできます。 HERE には WYSIWYG マップスタイルエディタがあり 、独自のマップスタイルを定義できます。

viewDidLoad() のメソッドで ViewControllerは、 normalDay 次のコードを追加して、マップのレンダリングスタイルを表すマップスタイルでシーンを読み込みます。

mapView.mapScene.loadScene(mapStyle: .normalDay, callback: onLoadScene)

コールバックでは、シーンの読み込みに成功した場合に通知するメソッドを任意で実装できます。

func onLoadScene(errorCode: MapSceneLite.ErrorCode?) {
    if let error = errorCode {
        print("Error: Map scene not loaded, \(error)")
    } else {
        // Configure the map.
        mapView.camera.setTarget(GeoCoordinates(latitude: 52.518043, longitude: 13.405991))
        mapView.camera.setZoomLevel(13)
    }
}

シーンの読み込みが完了すると、メインスレッドでコールバックが呼び出されます。 nil 以外の ErrorCode 値は、問題の内容を示します。

から MapViewLiteにアクセスして CameraLite 、マップを中央に配置する場所などのカスタムマップパラメータおよびズーム レベルを設定できます。

mapView.camera.setTarget(GeoCoordinates(latitude: 52.518043, longitude: 13.405991))
mapView.camera.setZoomLevel(13)

メモ

MapViewLite インスタンスが使用可能になるとすぐに CameraLite を設定できます。 ただし、変更内容はコールバックの終了後にのみ有効になります。

演習として、上記のマップスタイルを次のように置き換えることができます。 .satellite 何を手に入れますか?

さらに、の共有インスタンスを SDKNativeEngine に設定することで、 HERE SDK リソースを解放 nilできます。そのため、リソースは保持されなくなります。 HERE disposeHERESDK() では、上記の方法を使用できます。

func applicationWillTerminate(_ application: UIApplication) {
    disposeHERESDK()
}

最後 didReceiveMemoryWarning() に、 View Controller のを処理することをお勧めします。 HERE SDK で handleLowMemory() は、未使用のリソースが OS から要求されたときに安全にクリーンアップする方法を提供します。

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    mapView.handleLowMemory()
}

次に、アプリを構築して実行します。 問題が解決した場合は、画面の全領域をカバーする HERE マップが表示されます。 おめでとうございます。 HERE SDK for iOS の使用に関する最初のステップを習得しました。

スクリーンショット: メインの地図スタイルを表示しています。

スクリーンショット: 衛星地図スタイルを表示しています。

配布用にアプリを準備します

HERE SDK フレームワークは デバイス( arm64 ) および シミュレータ( x86_64 )用に構築されたファットバイナリです。 このため、両方のアーキテクチャが含まれています。 これ により、シミュレータおよび実際のデバイスに簡単に展開できます。

HERE SDK フレームワークは Apple の XCFramework バンドルタイプ (XCFW) に準拠しているため、アプリの配布に使用できます。 Xcode で は、アプリに署名する開発チームを選択し、 汎用 iOS デバイス を選択 して 、 [ 製品 ] -> [ アーカイブ] を選択する必要があります。

メモ

アプリを実際のデバイスに配布したり、 Apple のアプリ Store で公開するなどの目的でほかの人と共有する場合は、 Apple 開発者アカウントが必要です。 Apple デベロッパアカウントがない場合は、 iOS シミュレータで実行できます。 または、 Xcode の「フリープロビジョニング」 ( パーソナルチーム ) プロファイルを作成します。このプロファイルを使用して、実際のデバイスでアプリケーションを試用できます。 このプロファイルは期間限定で有効です。

トラブルシューティング

問題が発生した場合 は、まず最小要件サポートされているデバイスを確認してください。

  • 空白の白い地図のみが表示されます。 ご利用の HERE Credentials が有効で、 上記の「はじめに 」セクションの説明に従って設定されていることを確認してください。 また、ご利用のデバイスがインターネットに接続できることを確認してください。 インターネット接続が遅い場合、最初にロードされた地図のタイルが表示されるまでにしばらくかかることがあります。 また、デバイスの時刻が正しく設定されていることを確認してください。 まれに、デバイスの時間が正しく設定されていないと、一部のバックエンドサービスで認証の問題が発生する可能性があります。
  • ログに「有効な設定が提供されるまで地図の内容は表示されません」と表示されます。 コードが実際に呼び出されていることを確認 loadScene()してください。
  • Xcode から MapViewLite 不明なエラーが発生しました : 上記の「はじめに」の項で説明されているように、 HERE SDK フレームワークを統合してください。
  • Xcode で heresdkは、次のモジュール定義はロードされません。 これは、として知られている Xcode SourceKit エラー rdar://42087654です。 上記の「はじめに」の項で説明されているように、 HERE SDK フレームワークを統合してください。 また、プロジェクトおよびフレームワークへのパスにスペース記号が含まれていないことを確認してください。
  • Xcode はシミュレータのプロジェクトをコンパイルしていません。 M1 チップを搭載したコンピューターを使用しています。 4.9.2.0 よりも前の HERE SDK バージョンを使用しています。 HERE SDK 内のBuild Settings/Architectures/Excluded Architectures/Debug設定で「 Any iOS Simulator SDK 」の arm64 アーキテクチャを除外して、新しいバージョンの Xcode を使用するか、または Rosetta モードで実行してください。 「ターゲット」設定でこのオプションを選択します。 シミュレータを実行すると、パフォーマンスがわずかに低下することがあります。
  • 地図が表示されないか、 HERE SDK 通話で何もしません。 「 These 資格情報 do not authorize access 」というログメッセージが表示された場合は、資格情報 が有効ではありません。 資格情報 のワーキングセットを使用していることを確認してください。 3.x エディションの資格情報 には互換性がありませんLite Edition またはExplore Edition の資格情報は、 Navigate Edition と互換性がありません

サポートが必要な場合

この HERE 製品またはその他の 製品についてサポートが必要な場合は、次のいずれかのオプションを選択します。

  • HERE の担当者がいる場合は、質問や問題があるときに連絡してください。
  • developer.here.com を使用してアプリケーションおよびアカウントを管理している場合は、アカウントにログインし、 SLA レポートのページを確認します。
  • 詳細については 、 stackoverflow.com/questions/tagged/here-api を参照してください。
  • 請求、アカウント、その他の情報についてご質問 がある場合は、こちらからお問い合わせください
  • HERE の販売店からプラン / 製品を購入した場合は、販売店にお問い合わせください。

」に一致する結果は 件です

    」に一致する結果はありません