データ・クライアント Interactive API

Interactive API は 'Interactive REST API をミラーリングします

地理データへの簡単なアクセスを提供し、読み取りと書き込みのための 2 つの API クラスで構成されています。

両方の API クラスについて 、リクエストごとの設定メトリクスが適用されます。

ReadFeaturesApi

地理データを取得し、さまざまな条件で一覧表示する方法を提供します。

ReadFeaturesApiのすべての仕様について は、 ReadFeaturesApi を参照してください。

Scala
Java
val client = BaseClient()
// Interactive Map Layers Read Feature
val imlReadFeaturesApi = client.of[ReadFeaturesApi]

val someHrn = "hrn:here:data::olp-here-test:whatever"
val someLayer = "whateverLayer"
val hereTileType = "here"
val somePartitionId = "partition-xyz-123"
val result: Future[FeatureCollection] =
  imlReadFeaturesApi
    .getFeaturesByTile(someHrn, someLayer, hereTileType, somePartitionId)
    .executeToEntity()

result
  .andThen {
    case Success(response) =>
      // do something with the partitions metadata
      response.features.foreach { feature =>
        println(s"feature ${feature.id.getOrElse("<unknown>")} with type ${feature.getType}")
      }
    case Failure(ex) =>
      ex.printStackTrace()
  }

Await.result(result, Duration.Inf)
BaseClient client = BaseClientJava.instance();
// Interactive Map Layers Read Feature
ReadFeaturesApi imlReadFeaturesApi = new ReadFeaturesApi(client);

String someHrn = "hrn:here:data::olp-here-test:whatever";
String someLayer = "whateverLayer";
String hereTileType = "here";
String somePartitionId = "partition-xyz-123";

FeatureCollection result =
    imlReadFeaturesApi
        .getFeaturesByTile()
        .withHrn(someHrn)
        .withLayerId(someLayer)
        .withTileType(hereTileType)
        .withTileId(somePartitionId)
        .build()
        .executeToEntity()
        .toCompletableFuture()
        .join();

// do something with the feature collection
for (Feature feature : result.getFeatures()) {
  System.out.printf(
      "feature %s with type %s\n", feature.getId().orElse("<unknown>"), feature.getType());
}

WriteFeaturesApi

ジオデータを作成、変更、置換、削除する方法を提供します。

WriteFeaturesApi のすべての仕様について は、「 WriteFeaturesApi 」を参照してください。

Scala
Java
val client = BaseClient()
// Interactive Map Layers Write Feature
val imlWriteFeaturesApi = client.of[WriteFeaturesApi]

val someHrn = "hrn:here:data::olp-here-test:whatever"
val someLayer = "whateverLayer"
// e.g. Berlin city center
val somePoint = Point(coordinates = Some(Seq(52.520008d, 13.404954d)))
val someFeatureId = "my-city-centers"
val someFeature = Feature(id = Some("berlin"), geometry = Some(somePoint))
val result: Future[Int] =
  imlWriteFeaturesApi
    .putFeature(someHrn, someLayer, someFeatureId, someFeature)
    .executeToStatusCode()

result
  .andThen {
    case Success(responseCode) =>
      // check response code
      if (responseCode == 200) {
        // geo data creation was successful
        println("geo data creation was successful")
      } else {
        // should not happen as in case of error below Failure will match
      }
    case Failure(ex) =>
      ex.printStackTrace()
  }

Await.result(result, Duration.Inf)
BaseClient client = BaseClientJava.instance();
// Interactive Map Layers Write Feature
WriteFeaturesApi imlWriteFeaturesApi = new WriteFeaturesApi(client);

String someHrn = "hrn:here:data::olp-here-test:whatever";
String someLayer = "whateverLayer";
// e.g. Berlin city center
Point somePoint =
    new JPoint.Builder().withCoordinates(Arrays.asList(52.520008d, 13.404954d)).build();
String someFeatureId = "my-city-centers";
Feature someFeature = new JFeature.Builder().withId("berlin").withGeometry(somePoint).build();

try {
  Integer status =
      imlWriteFeaturesApi
          .putFeature()
          .withHrn(someHrn)
          .withLayerId(someLayer)
          .withFeatureId(someFeatureId)
          .withFeature(someFeature)
          .build()
          .executeToStatusCode()
          .toCompletableFuture()
          .join();
  assert (status == 200);
} catch (Exception ex) {
  // log some problem
} finally {
}

地理座標

ReadFeaturesApi WriteFeaturesApi 地理座標を使用できます。 地理座標の意味は 、 GeoJSON RFC7946 によって定義されています。 RFC7946 の「位置付け」の章を引用 :

" 位置は数値の配列です。 2 つ以上の要素が必要です。 最初の 2 つの要素は、経度と緯度、または東距と北距です。正確には、この順序で 10 進数を使用します。 高度または高度は、オプションの 3 番目の要素として含めることができます。 "

RFC7946 の「バウンディング ボックス」の章を引用するバウンディングボックスの場合 :

"bbox メンバーの値は、長さ 2*n の配列である必要があります。 n は、含まれているジオメトリで表される寸法の数です。最も南寄りのポイントのすべての軸の後に、より北寄りのポイントのすべての軸が続きます。 bbox の軸の順序は、形状の軸の順序に従います。 "bbox" 値は、一定の経度、緯度、および高度の線に続くエッジを持つシェイプを定義します。

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

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