Observation-lib
Observation-Lib
HERE でサポートされているクラウドストレージに機能や観察結果を保存し、 Live Sense SDK が検出した後でこのストレージから取得できるようにするメソッドが含まれています。 これは、近隣の車両間のリアルタイムの警告に利用できます。
注
現在、 Observation ライブラリはデータストレージプラットフォームとして HERE Data Hub をサポートしています。
要件と前提条件
この関数の前提条件と要件を以下に示します。
- 顧客がクラウドストレージを所有し、保守しています。
- このライブラリはセルフサービスの顧客には利用できません。 詳細については 、ヘルプを参照してください。
- 特定のマップで検出されたフィーチャを正確に見つけるには、フィーチャの詳細にジオロケーションを追加します。
使用量 - データ ハブ
このライブラリには、資格情報の検証、データ ハブからのフィーチャーの保存、および取得を行うためのメソッドがあります。
1. 初期化中です
Observation ライブラリのメソッドの呼び出しに使用する LSOClient を使用して、 LSODataHubClient を初期化します。
LSODataHubClient(String spaceID, String token)
このクライアントオブジェクトは、ユーティリティのパブリックメソッドの呼び出しに使用できます。
パラメータ :
-
spaceID
: データを保存するデータ ハブスペースの ID -
token
: インターフェイスを許可するための許可トークン。 トークンには、データ ハブスペースに対する get 、 put 、および read のアクセス権が必要です
例 :
LSODataHubClient client = new LSODataHubClient("spaceID", "token")
エラー
-
Unauthorized
- ユーザーにアクセス権がない場合にエラーを受信 Observation Library
しました。
2. 資格情報を検証します
初期化中に提供された資格情報が有効であることを確認します。 有効な場合、リスナーはステータスコード 200 の成功応答を受け取ります。
public void validateCredentials(@NotNull LSOEventSyncListener eventSyncListener)
コールバック :
-
LSOEventSyncListener
: リクエストの成功またはエラー時に通知されるリスナー。
例 :
try {
LSOClient client = new LSODataHubClient("spaceID", "token");
client.validateCredentials(new LSOEventSyncListener() {
@Override
public void onSuccess(@NotNull LSOResponse response) {
int statusCode = response.getStatusCode();
}
@Override
public void onError(@NotNull LSOError error) {
String errorMessage = error.getMessage();
}
});
} catch (AuthorizationException aee) {
String exceptionMessage = aee.getMessage();
}
3. 観察を行ってください
観察のリストをデータ ハブスペースにプッシュします。
public void putObservations(@NotNull LSOData obsData, @NotNull LSOEventSyncListener eventSyncListener)
パラメータ :
-
lsoData
:- 観察結果のリストを含む LSOData オブジェクト、顧客 ID 、タイムスタンプの送信 ( 以下の表記 ) 。
コールバック :
-
response
: データがデータ ハブに正常にプッシュされたときのコールバック -
error
: エラーが発生した場合のコールバック
例 :
try {
LSOClient client = new LSODataHubClient("spaceID", "token");
client.putObservations(LSOData, new LSOEventSyncListener() {
@Override
public void onSuccess(@NotNull LSOResponse response) {
int statusCode = response.getStatusCode();
}
@Override
public void onError(@NotNull LSOError error) {
int errorCode = error.getStatusCode();
String errorMessage = error.getMessage();
}
});
} catch (AuthorizationException aee) {
String exceptionMessage = aee.getMessage();
}
4. 観察結果を取得します
指定した座標(緯度、経度)を中心とする指定した領域内で、観測を非同期に取得します。特定の日付範囲の観測をフィルタリングするに は、from
およびto
のパラメータで範囲を指定する必要があります。
public void getObservations(double latitude, double longitude, double radiusInMeters, @NotNull LSOEventSyncListener eventSyncListener)
パラメータ :
-
latitude
: 検索エリアの中心点の緯度 ( 度数 ) -
longitude
: 検索エリアの中心点の経度 ( 度数 ) -
radiusInMeters
: 検索範囲の半径 ( メートル単位 ) 。 上限は 2000 メートルです -
eventSyncListener
: リクエストの成功またはエラーが発生したときに通知を受け取るリスナー
コールバック :
-
onSuccess
: 成功コード、成功メッセージ、および LSOData を含む LSOResponse オブジェクト -
onError
: LSOError オブジェクト ( エラーコード、エラーメッセージ、および追加メッセージがある場合 )
例 :
try {
LSOClient client = new LSODataHubClient("spaceID", "token");
client.getObservations(40.758043, -73.985542, 2000, new LSOEventSyncListener() {
@Override
public void onSuccess(@NotNull LSOResponse response) {
LSOData lsoData = response.getData();
}
@Override
public void onError(@NotNull LSOError error) {
String errorMessage = error.getMessage();
}
});
} catch (AuthorizationException aee) {
String exceptionMessage = aee.getMessage();
}
5. 指定した日付範囲の観察結果を取得します
指定した検索範囲内で、ポイント(緯度、経度)と指定した日付範囲を中心に観察を非同期に要求します。
public void getObservations(double latitude, double longitude, double radiusInMeters, @NotNull Calendar sinceDate, @NotNull Calendar tillDate, @NotNull LSOEventSyncListener eventSyncListener)
パラメータ :
-
latitude
: 検索エリアの中心点の緯度 ( 度数 ) -
longitude
: 検索エリアの中心点の経度 ( 度数 ) -
radiusInMeters
: 検索範囲の半径 ( メートル単位 ) 。 上限は 2000 メートルです -
sinceDate
: タイムスタンプに基づいて観察を取得する開始日 -
tillDate
: タイムスタンプに基づいて観察を取得する終了日 -
eventSyncListener
: リクエストの成功またはエラーが発生したときに通知を受け取るリスナー
コールバック :
-
onSuccess
: 成功コード、成功メッセージ、および LSOData を含む LSOResponse オブジェクト -
onError
: LSOError オブジェクト ( エラーコード、エラーメッセージ、および追加メッセージがある場合 )
例 :
try {
Calendar startDate = Calendar.getInstance();
Calendar tillDate = Calendar.getInstance();
LSOClient client = new LSODataHubClient("spaceID", "token");
client.getObservations(40.758043, -73.985542, 2000, startDate, tillDate,
new LSOEventSyncListener() {
@Override
public void onSuccess(@NotNull LSOResponse response) {
LSOData lsoData = response.getData();
}
@Override
public void onError(@NotNull LSOError error) {
String errorMessage = error.getMessage();
}
});
} catch (AuthorizationException aee) {
String exceptionMessage = aee.getMessage();
}
覚えておくべきポイント
- Live Sense SDK では、ネットワークが利用できない、サーバー / クラウドサービスが利用できない、または資格情報が無効であるなどの理由により、クラウドに正常に保存されなかったデータや機能はキャッシュされません。
- データ ハブは、以前は「 XYZ 」と命名されていました。
- 各フィーチャーに詳細情報を追加するに
customPayload
は、オブジェクトを使用します。 - 現在のライセンスに Observation ライブラリの使用権がない場合、すべてのパブリックメソッドが
AuthorizationException
をスローします。
追加のリソース
- ダウンロードパッケージには、このライブラリの非常に基本的な使用法を示すサンプルがバンドルされています。 この例のコードを自由に試してください。 このサンプルの実行に必要な手順を記載した readme が含まれています。