書き込み例
このページでは、異なるプラットフォームでサンプル書き込みプロジェクトをビルドおよび実行し、 HERE Data SDK for C++ を使用してストリーム レイヤーにデータを公開する方法について説明します。
サンプルプロジェクトを実行する前に、 HERE platform に認証します。
-
[ アプリとキー ] ページで、アプリのアクセスキー ID とアクセスキーのシークレットをコピーします。
アクセスキー ID およびアクセスキーシークレットを取得する方法については、『 Identity & Access Management 開発者ガイド』の「アプリケーションの登録」セクションを参照してください。
-
examples/main.cppで、プレースホルダーをアクセスキー ID 、アクセスキーシークレット、カタログの HERE リソースネーム ( HERE リソースネーム )、およびデータを公開するレイヤーの名前に置き換えます。
注
コマンド ラインオプションを使用して、これらの値を指定することもできます。
AccessKey access_key{};
std::string catalog;
std::string layer_id;
Linux でビルドして実行します
Linux でサンプルプロジェクトをビルドして実行するには、次の手順に従います。
-
CMake ターゲットの例を有効にします。
mkdir build && cd build
cmake -DOLP_SDK_BUILD_EXAMPLES=ON ..
-
build フォルダで、サンプルプロジェクトを構築します。
cmake --build . --target dataservice-example
-
サンプルプロジェクトを実行します。
./examples/dataservice-example --example write --key_id "here.access.key.id" --key_secret "here.access.key.secret" --catalog "catalog" --layer_id "layer_id"
-
( オプション ) 他のパラメータを使用して例を実行するには、 help コマンドを実行してから、必要なパラメータを選択します。
./examples/dataservice-example --help
サンプルプロジェクトをビルドして実行すると、次のメッセージが自動的に表示されます。 " 公開に成功しました - TraceID : \"。
Android でビルドして実行できます
Android サンプルプロジェクトに Data SDK ライブラリを統合するには、次の手順を実行します。
前提条件
Android サンプルプロジェクトに Data SDK ライブラリを統合する前に、次の点を確認してください。
- Android 環境を設定します。
-
で examples/android/app/src/main/cpp/MainActivityNative.cpp.in
、プレースホルダーをアプリケーションのアクセスキー ID 、アクセスキーシークレット、カタログ HERE リソースネーム 、およびレイヤー名で置き換え、サンプルを実行するように指定 RunExampleWrite
します。
アクセスキー ID およびアクセスキーシークレットを取得する方法については、『 Identity & Access Management 開発者ガイド』の「アプリケーションの登録」セクションを参照してください。
Data SDK を構築します
Android で Data SDK を構築するには、次の手順を実行します
OLP_SDK_BUILD_EXAMPLES
をに設定 ON
します。 - 変数を使用
CMAKE_TOOLCHAIN_FILE
して、 Android NDK ツールチェーンファイルへのパスを指定します。 -
特定の Android プラットフォーム用に SDK をビルドする場合は -DANDROID_PLATFORM CMake
、フラグを使用 -DANDROID_ABI
し、特定の Android アーキテクチャ用に SDK をビルドする場合は、フラグを使用します。 詳細については、NDK 固有の CMake 変数を参照してください。
mkdir build && cd build
cmake .. -DOLP_SDK_BUILD_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE=$NDK_ROOT/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a
CMake コマンドを使用 Gradle
build/examples/android
すると、フォルダーにプロジェクトが生成されます。
-
Data SDK ライブラリを sysroot ディレクトリにインストールします。
(sudo) make install
APK をビルドして実行します
APK をビルドして実行するには、次の手順に従います。
- Android Studio IDE で
build/examples/android/build.gradle
、スクリプトを開きます。 - アプリケーションのアクセスキー ID 、アクセスキーシークレット、カタログ HERE リソースネーム 、およびレイヤー名を入力します。
dataservice_example
APK をインストールして実行します。
メイン画面に次のメッセージが表示されます。 " 例が正常に終了しました " 。
iOS でビルドして実行します
Objective-C 言語で記述された iOS サンプルアプリケーションに Data SDK ライブラリを統合するには、次の手順を実行します。
前提条件
iOS サンプルプロジェクトに Data SDK ライブラリを統合する前に、次のことを行います。
- iOS 開発環境を設定するには、 Xcode およびコマンドラインツールをインストールします。
-
外部の依存関係をインストールします。
依存関係およびインストール手順については、 README.MD ファイルの関連セクションを参照してください。
-
で examples/ios/ViewController.mm
、プレースホルダーをアプリケーションのアクセスキー ID 、アクセスキーシークレット、カタログ HERE リソースネーム 、およびレイヤー名で置き換え、サンプルを実行するように指定 RunExampleWrite
します。
アクセスキー ID およびアクセスキーシークレットを取得する方法については、『 Identity & Access Management 開発者ガイド』の「アプリケーションの登録」セクションを参照してください。
mkdir build && cd build
cmake .. -GXcode -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/iOS.cmake -DPLATFORM=iphoneos -DOLP_SDK_BUILD_EXAMPLES=ON -DOLP_SDK_ENABLE_TESTING=OFF
シミュレータの Data SDK を設定するに SIMULATOR
ON
は、変数をに設定します。
Data SDK を構築します
iOS で Data SDK を構築するには、次の手順を実行します
OLP_SDK_BUILD_EXAMPLES
をに設定 ON
します。 - (任意)テストをディセーブルにするに
OLP_SDK_ENABLE_TESTING
OFF
は、をに設定します。 -
CMAKE_TOOLCHAIN_FILE
変数を使用して、 iOS ツールチェーンファイルへのパスを指定します。
注
iOS ツールチェーンファイルは、 SDK と一緒に出荷 <olp-sdk-root>/cmake/toolchains/iOS.cmake
され、の下にあります。
mkdir build && cd build
cmake .. -GXcode -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/iOS.cmake -DPLATFORM=iphoneos -DOLP_SDK_BUILD_EXAMPLES=ON -DOLP_SDK_ENABLE_TESTING=OFF
アプリケーションをビルドして実行します
iOS でサンプルアプリケーションを実行するには、次の手順を実行します。
-
生成された Xcode プロジェクトを開きます。
open olp-cpp-sdk.xcodeproj
-
Xcode プロジェクトのスキームのリストから dataservice-example
、スキームを選択します。
-
dataservice-example
ターゲットで、アプリケーションのアクセスキー ID とアクセスキーシークレットを指定します。
-
サンプルアプリケーションをビルドして実行します。
メイン UI 画面に次のメッセージが表示されます。 " 例が正常に終了しました " 。 詳細については、デバイスログを確認してください。
エラーメッセージが表示された場合は、エラーの詳細な説明について、デバイスのログを確認してください。 エラーメッセージの例 : " 例でエラーが発生しました。 "
仕組み
ストリーム レイヤーにデータを公開します
ストリーム レイヤーを使用して、データをデータ利用者にリアルタイムでストリーム配信するキューを作成できます。
ストリーム レイヤーにデータを公開するには、次の手順に従います。
-
OlpClientSettings
オブジェクトを作成します。
手順については、「プラットフォームクライアント設定を作成する」を参照してください。
-
StreamLayerClientSettings
オブジェクトを作成します。
auto stream_client_settings = olp::dataservice::write::StreamLayerClientSettings{};
-
StreamLayerClient
レイヤーを含むカタログの HERE リソースネーム ( HERE リソースネーム )、ステップ 2 のストリーム レイヤークライアント設定、およびステップ 1 のプラットフォームクライアント設定を使用してオブジェクトを作成します。
auto client = olp::dataservice::write::StreamLayerClient(
olp::client::HRN{kCatalogHRN}, stream_client_settings, client_settings);
-
PublishDataRequest
パブリッシュするデータとレイヤー ID を使用してオブジェクトを作成します。
auto request = PublishDataRequest().WithData(buffer).WithLayerId(kLayer);
-
PublishData
DataRequest
パラメーターを使用してメソッドを呼び出します。
auto futureResponse = client.PublishData(request);
-
PublishDataResponse
未来を待っていてください。
auto response = futureResponse.GetFuture().get();
PublishDataResponse
このオブジェクトは、完了した操作の詳細を保持し、操作の成功および結果のデータへのアクセスを判断するために使用されます。
-
IsSuccessful()
–操作が成功した場合は、を返し true
ます。 それ以外の場合は、を返します false
-
GetResult()
–操作が成功すると、次の結果データが返されます。 olp::dataservice::write::PublishDataResult
-
GetError()
– olp::client::ApiError
オブジェクトのエラーの結果としてエラー情報が含まれます。
if (response.IsSuccessful()) {
auto response_result = response.GetResult();
} else {
auto api_error = response.GetError();
}