バージョン付レイヤーから読み取ります
この例では、 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 @here/olp-sdk-dataservice-api
ここで、すべてがアプリを作成するように設定されます。
-
index.ts
ファイルとアプリスケルトンを作成します。
class App {
run() {
console.log("App works!");
}
}
const app = new App();
app.run();
-
アプリをコンパイルして実行します。
tsc && node .
正常に実行されると、コンソールに次のメッセージが表示されます。
App works!
作成 VersionedLayerClient
このVersionedLayerClient
オブジェクトを使用して、バージョン付レイヤーから任意のデータおよびパーティション メタデータバージョンを要求できます。 バージョン付レイヤーから特定のバージョンのデータを要求すると、応答で受信したパーティションのバージョン番号が、要求したものよりも小さい可能性があります。 レイヤーまたはパーティションのバージョンは、そのレイヤーまたはパーティションが最後に更新されたカタログのバージョンを表します。
VersionedLayerClient
オブジェクトを作成するには :
-
OlpClientSettings
オブジェクトを作成します。
手順については、「プラットフォームクライアント設定を作成する」を参照してください。
-
VersionedLayerClient
VersionedLayerClientParams
カタログ HERE リソースネーム 、レイヤー ID 、ステップ 1 のプラットフォームクライアント設定、レイヤーバージョンを含むインスタンスを作成します。
メタデータの最新バージョンのバージョン付レイヤーを取得する場合は、バージョン番号を指定する必要はありません。
注
バージョンが指定されていない場合は、最新バージョンが使用されます。
const versionedLayerClient = new VersionedLayerClient({
catalogHrn: HRN.fromString("your-catalog-hrn"),
layerId: "your-layer-id",
settings: olpClientSettings,
version: number,
});
バージョン付レイヤーからのパーティション メタデータ は、パーティションに関する次の情報で構成されています。
- データ ハンドル
- ID
- バージョン
- データサイズ
- チェックサム
- 圧縮されたデータサイズ
パーティション メタデータは、次のいずれかの方法で入手できます。
- メタデータサービス API を使用する
- Query Service API を使用する
API は、パーティションに HERE Tile スキームがある場合にのみ、クエリーサービスパーティション メタデータを使用して取得できます。 HERE Tile スキームの詳細については、「パーティション」を参照してください。
パフォーマンス上の理由から、特定のパーティションのメタデータを取得する場合にのみ、クエリーサービス API を使用することをお勧めします。 バッチ処理の場合、および多数のパーティションまたはレイヤー内のすべてのパーティションのメタデータを取得するには、メタデータサービス API を使用します。
バージョン付レイヤーからパーティション メタデータを取得するには、次の手順に従います。
-
VersionedLayerClient
オブジェクトを作成します。
手順については、「 VersionedLayerClient を作成する」を参照してください。
-
次のいずれかの操作を行います。
-
( HERE Tile スキームを使用するパーティションの場合)メタデータサービス API を使用してパーティション メタデータを取得するには、次の手順を実行します。
-
QuadKeyPartitionsRequest
メタデータ、 quadkey 、および子パーティションの数を取得するレイヤーのバージョン番号 (0 ~ 4) を使用してオブジェクトを作成します。
リクエストで指定されたバージョンが VersionedLayerClient
、オブジェクトで指定されたバージョンよりも優先されます。
注
メタデータの最新バージョンのバージョン付レイヤーを取得する場合は、バージョン番号を指定する必要はありません。
const requestByQuadKey = new QuadKeyPartitionsRequest()
.withVersion("VersionNumber")
.withQuadKey("QuadKey")
.withDepth("NumberOfChildPartitions")
.withBillingTag("MyBillingTag");
-
getPartitions
RequestByQuadKey
パラメーターを使用してメソッドを呼び出します。
const partitionsByQuadKey = await versionedLayerClient.getPartitions(
requestByQuadKey
);
要求されたパーティションおよびその親パーティションと子パーティションの quadkey ツリーインデックスに、メタデータが含まれています。
-
メタデータサービス API を使用してパーティション メタデータを取得するには、次の手順を実行
-
PartitionsRequest
fetch オプションを使用してオブジェクトを作成します。
デフォルトのフェッチオプションはです OnlineIfNotFound
。 要求されたリソースがキャッシュに見つからない場合、ネットワークに問い合わせます。 キャッシュの参照をスキップしてただちにネットワークにクエリーを送信する場合 withFetchOption
OnlineOnly
は、メソッドをに設定します。
const partitionsRequest = new PartitionsRequest()
.withBillingTag("MyBillingTag")
.withFetchOption(FetchOptions.OnlineOnly);
-
getPartitions
PartitionsRequest
パラメーターを使用してメソッドを呼び出します。
const partitions = await versionedLayerClient.getPartitions(
partitionsRequest
);
レイヤー内のすべてのパーティションのメタデータが取得されます。
ブラウザおよび Node.js AbortController
AbortController.signal
で、リクエストが完了する前にリクエストを中止するには、オブジェクトを作成してから、そのプロパティをリクエストに追加します。 詳細については AbortController
、のマニュアルを参照してください。
例
const abortController = new AbortController();
const partitions = await versionedLayerClient.getPartitions(
partitionsRequest,
abortController.signal
);
バージョン付レイヤーからデータを取得します
バージョン付レイヤーには、任意のバージョンのデータを要求できます。 バージョン付レイヤーから特定のバージョンのデータを要求すると、応答で受信したパーティションのバージョン番号が、要求したものよりも小さい可能性があります。 レイヤーまたはパーティションのバージョンは、そのレイヤーまたはパーティションが最後に更新されたカタログのバージョンを表します。
バージョン付レイヤーからデータを取得するには、次の手順に従います。
-
VersionedLayerClient
オブジェクトを作成します。
手順については、「 VersionedLayerClient を作成する」を参照してください。
-
DataRequest
パーティション ID および FETCH オプションを使用してオブジェクトを作成します。
デフォルトのフェッチオプションはです OnlineIfNotFound
。 要求されたリソースがキャッシュに見つからない場合、ネットワークに問い合わせます。 キャッシュの参照をスキップしてただちにネットワークにクエリーを送信する場合 withFetchOption
OnlineOnly
は、メソッドをに設定します。
const dataRequest = new DataRequest()
.withPartitionId("PartitionId")
.withBillingTag("MyBillingTag")
.withFetchOption(FetchOptions.OnlineOnly);
-
getData
DataRequest
パラメーターを使用してメソッドを呼び出します。
const partitions = await versionedLayerClient.getData(dataRequest);
選択したレイヤーバージョンの要求されたパーティションからデータを受信します。
ブラウザおよび Node.js AbortController
AbortController.signal
で、リクエストが完了する前にリクエストを中止するには、オブジェクトを作成してから、そのプロパティをリクエストに追加します。 詳細については AbortController
、のマニュアルを参照してください。
例
const abortController = new AbortController();
const partitions = await versionedLayerClient.getData(
dataRequest,
abortController.signal
);