Observation-lib
Observation-Lib
HERE でサポートされているクラウドストレージに機能や観察結果を保存し、 Live Sense SDK が検出した後でこのストレージから取得できるようにするメソッドが含まれています。 これは、近隣の車両間のリアルタイムの警告に利用できます。
注
現在、 Observation ライブラリはデータストレージプラットフォームとして HERE Data Hub をサポートしています。
要件と前提条件
この関数の前提条件と要件を以下に示します。
- 顧客がクラウドストレージを所有し、保守しています。
- このライブラリはセルフサービスの顧客には利用できません。 詳細については、 ヘルプを参照してください。
- 特定のマップで検出されたフィーチャを正確に見つけるには、フィーチャの詳細にジオロケーションを追加します。
使用量 - データ ハブ
資格情報 の検証、データ ハブ からのフィーチャーの保存、および取得を行うメソッド。
1. 初期化中です
パブリックメソッドの呼び出しに使用されるインターフェイス (LSOClient) を初期化します。
func convenience init(spaceID:String, auth:String)
パラメータ :
-
spaceID
: クライアントが通信する必要があるスペースの ID 。 これは、データ ハブによって提供される一意の ID です -
auth
: インターフェイスを許可するには、トークンを認証します
使用量 :
let observationClient = LSOClient(spaceID:"YOUR SPACE_ID", auth:"YOUR TOKEN")
2. 資格情報を検証します
spaceId
このメソッドを使用して、およびを使用して資格情報 を検証します authToken
func validateCredentials(spaceId: String, authToken:String, output: @escaping (LSOResponseHandler))
パラメータ :
-
spaceId
: データ ハブの SpaceID -
authToken
: 承認のためのトークン
キャップ類 :
-
output
: [String: Any] および LSOError です
使用量 :
self.observationClient.validateCredentials(spaceId:"YOUR SPACE_ID", authToken:"YOUR TOKEN") { (res, error) in
}
3. 観察を行ってください
観察のリストをデータ ハブスペースにプッシュします。
func putObservations(_ observation: LSOData, success: @escaping (LSOSuccessHandler), failure: @escaping (LSOFailureHandler))
パラメータ :
-
observation: LSOData
:: 顧客 ID を含むデータ型。タイムスタンプおよび観察オブジェクトのリストを送信します。 観察オブジェクトの詳細については、以下の「使用状況」を参照してください。
キャップ類 :
-
success
: データがストレージに正常に挿入 / 更新されたときのコールバック -
failure
: 障害が発生した場合のコールバック
使用量 :
let obData = LSOData()
let observation = ObservationData()
observation._id = "12323"
observation.type = "pedestrian"
observation.confidence = 0.8
observation.value = "road-basics"
observation.timestamp = Date().millisecondsSince1970
observation.coordinates = [41.882702,-87.619392]
observation.metadata = Metadata()
observation.tags = ["test"]
observation.customPayload = [["Key":"some data"]]
obData.observations?.append(observation)
self.observationClient.putObservations(obData, success: {(observations, res) in}) { (error, res) in
print("Failed \(error.message)")
}
4. 観察結果を取得します
指定した座標を中心とする指定した領域内での観測を非同期に取得します(緯度、経度)。 特定の日付範囲の観察結果をフィルタリングするには、 from
および to
パラメータで範囲を指定する必要があります
func getObservations(_ position: CLLocation, to:Int, from:Int,
success: @escaping (LSOSuccessHandler),
failure: @escaping (LSOFailureHandler))
パラメータ :
-
position
: ユーザーによって提供された CLLocation -
to
: 観察の終了範囲 ( 任意 ) -
from
: 観察の開始範囲 ( 任意 )
キャップ類 :
-
success
: および LSOData
HTTPURLResponse です -
failure
: および LSOError
HTTPURLResponse です
使用量 :
let location = CLLocation(latitude:41.881832, longitude: -87.623177)
self.observationClient.getObservations(location, success: { (data, resp) in}) { (error, response) in
}
覚えておくべきポイント
- Live Sense SDK では、ネットワークが利用できない、サーバー / クラウドサービスが利用できない、または資格情報が無効であるなどの理由により、クラウドに正常に保存されなかったデータや機能はキャッシュされません。
- データ ハブは、以前はという名前
XYZ
でした。 - 各フィーチャーに詳細情報を追加するに
customPayload
は、オブジェクトを使用します。
追加のリソース
- 簡単な例がダウンロードパッケージにバンドルされています。このパッケージには、ライブラリ の使用方法が記載されています。 また、サンプルの実行に必要な手順を一覧表示した readme ファイルも含まれています。 詳細については、サンプルコードを試してください。