ボラタイル レイヤーから読み取ります
この例では、 HERE Data SDK for TypeScript を使用して Node.js のボラタイル レイヤーからパーティション メタデータおよびパーティション データを読み取る方法を示します。
Node.js でアプリをビルドして実行します
アプリをビルドする前に、すべての依存関係がインストールされていることを確認してください。
Node.js でアプリをビルドして実行するには、次の手順に従います。
-
NPM プロジェクトを作成します。
mkdir example-app && cd example-app && npm init
-
TypeScript プロジェクトを初期化します。
tsc --init
-
インストールノードタイプ。
npm install --save-dev @types/node
-
SDK モジュールを取り付けます。
npm install --save @here/olp-sdk-authentication @here/olp-sdk-dataservice-read
ここで、すべてがアプリを作成するように設定されます。
-
index.ts
ファイルとアプリスケルトンを作成します。
class App {
run() {
console.log("App works!");
}
}
const app = new App();
app.run();
-
アプリをコンパイルして実行します。
tsc && node .
正常に実行されると、コンソールに次のメッセージが表示されます。
App works!
作成 VolatileLayerClient
このVolatileLayerClient
オブジェクトを使用して、パーティション メタデータから最新のパブリッシュ済みデータおよびボラタイル レイヤーを取得できます。
VolatileLayerClient
オブジェクトを作成するには :
-
OlpClientSettings
オブジェクトを作成します。
手順については、「プラットフォームクライアント設定を作成する」を参照してください。
-
VolatileLayerClient
VolatileLayerClientParams
カタログの HERE リソースネーム ( HERE リソースネーム )、レイヤー ID 、およびステップ 1 のプラットフォームクライアント設定を含むオブジェクトを作成します。
const volatileLayerClient = new VolatileLayerClient({
catalogHrn: HRN.fromString("your-catalog-hrn"),
layerId: "your-layer-id",
settings: olpClientSettings,
});
ボラタイル レイヤーからのパーティション メタデータ は、パーティションに関する次の情報で構成されています。
- データ ハンドル
- ID
- データサイズ
- チェックサム
- 圧縮されたデータサイズ
パーティション メタデータは、次のいずれかの方法で入手できます。
- メタデータサービス API を使用する
- Query Service API を使用する
API は、パーティションに HERE Tile スキームがある場合にのみ、クエリーサービスパーティション メタデータを使用して取得できます。 HERE Tile スキームの詳細については、「パーティション」を参照してください。
パフォーマンス上の理由から、特定のパーティションのメタデータを取得する場合にのみ、クエリーサービス API を使用することをお勧めします。 バッチ処理の場合、および多数のパーティションまたはレイヤー内のすべてのパーティションのメタデータを取得するには、メタデータサービス API を使用します。
ボラタイル レイヤーからパーティション メタデータを取得するには、次の手順に従います。
-
VolatileLayerClient
オブジェクトを作成します。
手順については、「 VolatileLayerClient を作成する」を参照してください。
-
次のいずれかの操作を行います。
-
( HERE Tile スキームを使用するパーティションの場合)メタデータサービス API を使用してパーティション メタデータを取得するには、次の手順を実行します。
-
QuadKeyPartitionsRequest
quadkey と子パーティションの数 (0 ~ 4) でオブジェクトを作成します。
const requestByQuadKey = new QuadKeyPartitionsRequest()
.withQuadKey("QuadKey")
.withDepth("NumberOfChildPartitions")
.withBillingTag("MyBillingTag");
-
getPartitions
RequestByQuadKey
パラメーターを使用してメソッドを呼び出します。
const partitionsByQuadKey = await volatileLayerClient.getPartitions(
requestByQuadKey
);
要求されたパーティションおよびその親パーティションと子パーティションの quadkey ツリーインデックスに、メタデータが含まれています。
-
メタデータサービス API を使用してパーティション メタデータを取得するには、次の手順を実行
-
PartitionsRequest
fetch オプションを使用してオブジェクトを作成します。
デフォルトのフェッチオプションはです OnlineIfNotFound
。 要求されたリソースがキャッシュに見つからない場合、ネットワークに問い合わせます。 キャッシュの参照をスキップしてただちにネットワークにクエリーを送信する場合 withFetchOption
OnlineOnly
は、メソッドをに設定します。
const partitionsRequest = new PartitionsRequest()
.withBillingTag("MyBillingTag")
.withFetchOption(FetchOptions.OnlineOnly);
-
getPartitions
PartitionsRequest
パラメーターを使用してメソッドを呼び出します。
const partitions = await volatileLayerClient.getPartitions(
partitionsRequest
);
レイヤー内のすべてのパーティションのメタデータが取得されます。
ブラウザおよび Node.js AbortController
AbortController.signal
で、リクエストが完了する前にリクエストを中止するには、オブジェクトを作成してから、そのプロパティをリクエストに追加します。 詳細については AbortController
、のマニュアルを参照してください。
例
const abortController = new AbortController();
const partitions = await volatileLayerClient.getPartitions(
partitionsRequest,
abortController.signal
);
ボラタイル レイヤーからデータを取得します
ボラタイル レイヤー は、キーと値のペアで構成されています。 キーの新しい値は、古い値よりも優先されます。 したがって、ボラタイル レイヤーからは最新のデータのみを取得できます。
ボラタイル レイヤーからデータを取得するには、次の手順に従います。
-
VolatileLayerClient
オブジェクトを作成します。
手順については、「 VolatileLayerClient を作成する」を参照してください。
-
DataRequest
パーティション ID および FETCH オプションを使用してオブジェクトを作成します。
デフォルトのフェッチオプションはです OnlineIfNotFound
。 要求されたリソースがキャッシュに見つからない場合、ネットワークに問い合わせます。 キャッシュの参照をスキップしてただちにネットワークにクエリーを送信する場合 withFetchOption
OnlineOnly
は、メソッドをに設定します。
const dataRequest = new DataRequest()
.withPartitionId("PartitionId")
.withBillingTag("MyBillingTag")
.withFetchOption(FetchOptions.OnlineOnly);
-
getData
DataRequest
パラメーターを使用してメソッドを呼び出します。
const partitions = await volatileLayerClient.getData(dataRequest);
選択したボラタイル レイヤーの要求されたパーティションからデータを受信します。
ブラウザおよび Node.js AbortController
AbortController.signal
で、リクエストが完了する前にリクエストを中止するには、オブジェクトを作成してから、そのプロパティをリクエストに追加します。 詳細については AbortController
、のマニュアルを参照してください。
例
const abortController = new AbortController();
const partitions = await volatileLayerClient.getData(
dataRequest,
abortController.signal
);