インタラクティブなマップ レイヤーで作業します

この例では、 HERE Data SDK for TypeScript を使用して Node.js のインタラクティブなマップ レイヤーからデータを読み取り、そのデータを書き込む方法を示します。

Node.js でアプリをビルドして実行します

アプリをビルドする前に、すべての依存関係がインストールされていることを確認してください。

Node.js でアプリをビルドして実行するには、次の手順に従います。

  1. NPM プロジェクトを作成します。

    mkdir example-app && cd example-app && npm init
    
  2. TypeScript プロジェクトを初期化します。

    tsc --init
    
  3. インストールノードタイプ。

    npm install --save-dev @types/node
    
  4. SDK モジュールを取り付けます。

    npm install --save @here/olp-sdk-authentication @here/olp-sdk-dataservice-api
    

    ここで、すべてがアプリを作成するように設定されます。

  5. index.ts ファイルとアプリスケルトンを作成します。

    /**
     * An example of the Node.js app used for reading data from and writing it to an interactive map layer in the datastore.
     */
    
    class App {
      run() {
        console.log("App works!");
      }
    }
    
    const app = new App();
    app.run();
    
  6. アプリをコンパイルして実行します。

    tsc && node .
    

正常に実行されると、コンソールに次のメッセージが表示されます。

App works!

作成 RequestBuilder

RequestBuilderInteractiveApi の機能を使用する必要 @here/olp-sdk-dataservice-apiがあります。 これらのInteractiveApi関数を使用し て、インタラクティブなマップ レイヤーから任意のデータを要求できます。

RequestBuilder インスタンスを作成するには :

  1. OlpClientSettings オブジェクトを作成します。

    手順については、「プラットフォームクライアント設定を作成する」を参照してください。

  2. RequestBuilderRequestFactory カタログ HERE リソースネーム 、ステップ 1 のプラットフォームクライアント設定、 API 名、および API バージョンを含むを使用して、インスタンスを作成します。

    const requestBuilder = await RequestFactory.create(
      "interactive",
      "v1",
      settings,
      HRN.fromString("your-catalog-HRN")
    );
    

インタラクティブなマップ レイヤーからデータを取得します

インタラクティブマップ レイヤー には、マップ データでの作業を要求して使用できるさまざまな機能セットがあります。

インタラクティブマップ レイヤーの 1 つ以上の機能を、 ID 、それらを含むタイル、バウンディング ボックス、空間検索、検索、イテレーションを使用して要求できます。 および統計情報。

インタラクティブマップ レイヤーから機能をリクエストすると、 FeatureCollection リクエストが 1 つの機能のみを返した場合や、機能が見つからなかった場合でも、リクエストが処理されます。

インタラクティブ API では、次のタイルタイプがサポートされています。

  • web –メルカトル図法 (OpenStreetMap 、 Google マップ、 Bing マップで使用 ) 形式 : level_x_y。 たとえば 10_100_100 、はレベル 10 、 x 座標 100 、 y 座標 100 を示します。

  • tms –オープンソース地理空間財団が開発したタイルマップサービスの仕様。 形式 : level_x_y。 たとえば 10_100_100 、はレベル 10 、 x 座標 100 、 y 座標 100 を示します。

  • quadkey – Bing マップ ( 以前の Virtual Earth) で使用されていた四角形のキー。 たとえば、 0123031233 はレベル 10 タイルの quadkey です。

  • here – HERE tiling スキーマの場合。

インタラクティブレイヤーからフィーチャーを取得するには:

  1. RequestBuilder オブジェクトを作成します。

    手順については 、「 RequestBuilder を作成する」を参照してください。

  2. 機能の取得に使用する内容に応じて、次のいずれかの操作を行います。

    • ID を使用して 1 つの機能を取得するに getFeature は、リクエストビルダ、機能 ID 、およびレイヤー ID を使用して関数を呼び出します。

      const result = await InteractiveApi.getFeature(requestBuilder, {
        featureId: "your-feature-id",
        layerId: "your-layer-id",
      });
      
    • ID を使用して複数の機能を取得するに getFeatures は、リクエストビルダ、これらの機能の ID 、およびレイヤー ID で関数を呼び出します。

      const result = await InteractiveApi.getFeatures(requestBuilder, {
        id: "your-feature1-id,your-feature2-id",
        layerId: "your-layer-id",
      });
      
    • バウンディング ボックスを使用して機能を取得するに getFeaturesByBBox は、リクエストビルダ、バウンディング ボックス、およびレイヤー ID を使用して関数を呼び出します。

      const result = await InteractiveApi.getFeaturesByBBox(requestBuilder, {
        bbox: "13.082,52.416,13.628,52.626", // Bounding box of Berlin
        layerId: "your-layer-id",
      });
      
    • タイルを使用して機能を取得するには getFeaturesByTile 、リクエストビルダ、タイルタイプ、タイル ID 、レイヤー ID 、およびパラメータを指定して関数を呼び出します。 これは追加のフィーチャープロパティです。

      const result = await InteractiveApi.getFeaturesByTile(requestBuilder, {
        tileType: "your tile type",
        tileId: "your-tileId",
        layerId: "your-layer-id",
        params: "your-params-string",
      });
      
    • 空間検索を使用してフィーチャを取得するには、次のいずれかの関数を呼び出します。

      • getFeaturesBySpatial リクエストビルダー、緯度、経度を含む関数 (WGS84 の小数度 ) 、およびレイヤー ID 。

        const result = await InteractiveApi.getFeaturesBySpatial(requestBuilder, {
          lat: "latitude-in-WGS84-decimal-degrees",
          lng: "longitude-in-WGS84-decimal-degrees",
          layerId: "your-layer-id",
        });
        
      • getFeaturesBySpatialPost リクエストビルダ、レイヤー ID 、検索半径を含む関数 ( 単位 : メートル ) 。

        const result = await InteractiveApi.getFeaturesBySpatial(requestBuilder, {
          layerId: "your-layer-id",
          radius: "radius-in-meters",
        });
        

      空間検索を使用すると、特定の位置または特定のリージョンの周囲にあるすべてのフィーチャを検索できます。 詳細については、『 Data API Guide 』の「空間的検索機能」を参照してください。

    • 検索を使用して機能を取得するに searchFeatures は、関数を呼び出します。

      詳細については、『 Data API Guide 』の「機能の検索」を参照してください。

    • イテレーションを使用してフィーチャーを取得するに iterateFeatures は、関数を呼び出します。

      注文された機能のセットが提供され、いずれの機能も 2 回返されません。 詳細については、『 Data API ガイド』の「機能の反復処理」を参照してください。

    • 統計情報を使用してフィーチャを取得するに getStatistics は、レイヤの ID を使用して関数を呼び出します。

      const result = await InteractiveApi.getStatistics(requestBuilder, {
        layerId: "your-layer-id",
      });
      

データを更新して、インタラクティブなマップ レイヤーに公開します

インタラクティブなマップ レイヤーで既存のフィーチャーを更新したり、新しいフィーチャーをパブリッシュしたりできます。

フィーチャーを更新して公開するには:

  1. RequestBuilder オブジェクトを作成します。

    手順については 、「 RequestBuilder を作成する」を参照してください。

  2. patchFeaturepostFeaturesputFeatureputFeatures 、またはの各関数を呼び出します。

    詳細については、「 Data API ガイド」の「インタラクティブマップ レイヤーでのデータの更新」および「インタラクティブマップ レイヤーへの公開」を参照してください。

インタラクティブなマップ レイヤーからデータを削除します

必要なくなった機能は、インタラクティブマップ レイヤーから削除できます。

  1. RequestBuilder オブジェクトを作成します。

    手順については 、「 RequestBuilder を作成する」を参照してください。

  2. deleteFeature 関数または deleteFeatures 関数を呼び出します。

    詳細については、『 Data API Guide 』の「対話型マップ レイヤーからのデータの削除」を参照してください。

」に一致する結果は 件です

    」に一致する結果はありません