利用開始

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

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

情報

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

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

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

  • Register or sign in on here-tech.skawa.fun and download the HERE SDK package from your projects and account page.
  • HERE Platform Portal登録またはサインインし、HERE SDK パッケージをダウンロードします。 任意のエディションを参照し、 [ 今すぐ取得 ] ボタンをクリックします。 パッケージはバックグラウンドでダウンロードされます。 しばらくお待ちください。

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

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

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

資格情報の取得

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

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

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

You can register and manage your app as described in the Identity & Access Management guide. You can acquire credentials for you plan either from here-tech.skawa.fun or on the HERE platform portal:

  • On here-tech.skawa.fun, after creating your project, generate an app to obtain an access key ID and access key secret. You can either choose an existing project or Select a plan for a new project. Then scroll down to the HERE SDK product family and click キーの作成.
  • または、HERE Platform Portalアプリのページに移動し、新しいアプリを登録します。登録が完了すると 、資格情報 を作成できます。

これらの資格情報は、プラットフォームに関係なく、Lite、および Explore Edition の各エディションで再利用できます。さらに、これらの資格情報を複数のアプリで使用できます。たとえば、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 コードはここには含まれていません。 Xcode を IDE として使用することをお勧めします。 iOS の開発に慣れていない場合 は、 developer.apple.com のガイドに従って、最初のステップを実行してください。

「 HelloMap 」のサンプルコードは、 こちらです。

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

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

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

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

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

Hello Map!の表示

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

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

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

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

HERE SDK の統合

On here-tech.skawa.fun you can find the latest release artifacts including the HERE SDK framework to include in your application (named xx.yy.zz.release_date).

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

Xcode でApp targetのGeneral設定を開き、「Frameworks、Libraries、およびembedded content」セクションに heresdk.xcframework を追加します(「+」をクリックしてから、「Add other...」をクリックします)。-> 「Add files ... 」)。

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

HERE 資格情報の設定

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を追加する方法を示します 。次に、 Storyboard を使用してMapViewLiteを追加する方法を示します。

いずれの方法を選択した場合も 、次のモジュールのインポート行をファイルに追加する必要があります。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 InspectorCustom Classで、MapViewLiteと入力 します。 Moduleheresdkと入力 します。

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

@IBOutlet var mapView: MapViewLite!

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

Swift UI を使用してマップ ビュー の追加

または、マップ ビュー と Swift 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()
}

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

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 のApp Store で公開するなどの目的でほかの人と共有する場合は、 Apple 開発者アカウントが必要です。 Apple デベロッパアカウントがない場合は、 iOS シミュレータで実行できます。 または、 Xcode の「Free Provisioning」 ( Personal Team ) プロファイルを作成します。このプロファイルを使用して、実際のデバイスでアプリケーションを試用できます。 このプロファイルは期間限定で有効です。

トラブルシューティング

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

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

サポートが必要な場合

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

  • HERE の担当者がいる場合、質問や問題がある際には弊社担当者に問い合わせてください。
  • If you manage your applications and accounts through here-tech.skawa.fun, log into your account and check the pages on the SLA report.
  • 詳細については、 stackoverflow.com/questions/tagged/here-api を参照してください。
  • 請求、アカウント、その他の情報についてご質問 がある場合は、こちらからお問い合わせください。
  • HERE の販売店からプラン / 製品を購入した場合は、弊社販売店にお問い合わせください。

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

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