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

インタラクティブマップ API は 、インタラクティブマップ REST 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[FeatureCollectionModification] =
  imlReadFeaturesApi
    .getFeaturesByTile(someHrn, someLayer, hereTileType, somePartitionId)
    .executeToEntity()
    .asInstanceOf[Future[FeatureCollectionModification]]

result
  .andThen {
    case Success(response) =>
      // do something with the feature collection
      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";

FeatureCollectionModification result =
    (FeatureCollectionModification)
        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 {
}

ManageChangesetsApi

ジオデータの変更セットを管理する方法を提供します。

ManageChangesetsApi のすべての仕様について は 'ManageChangesetsApi を参照してください

Scala
Java
val client = BaseClient()
// Interactive Map Layers Get Changesets Feature
val imlManageChangesetsApi = client.of[ManageChangesetsApi]

val someHrn = "hrn:here:data::olp-here-test:whatever"
val someLayer = "whateverLayer"
val someStartVersion = Some(100)
val someEndVersion = Some(123)
val result: Future[ChangesetCollection] =
  imlManageChangesetsApi
    .getChangesets(someHrn, someLayer, someStartVersion, someEndVersion)
    .executeToEntity()

result
  .andThen {
    case Success(response) =>
      // do something with the changesets
      response.versions.foreach { changesetMap =>
        changesetMap.foreach { changeset =>
          println(
            s"changeset ${changeset._1} with author ${changeset._2.author.getOrElse("unknown")}")
        }
      }
    case Failure(ex) =>
      ex.printStackTrace()
  }

Await.result(result, Duration.Inf)
BaseClient client = BaseClientJava.instance();
// Interactive Map Layers Get Changesets Feature
ManageChangesetsApi imlManageChangesetsApi = new ManageChangesetsApi(client);

String someHrn = "hrn:here:data::olp-here-test:whatever";
String someLayer = "whateverLayer";
Optional<Integer> someStartVersion = Optional.of(100);
Optional<Integer> someEndVersion = Optional.of(123);

ChangesetCollection result =
    imlManageChangesetsApi
        .getChangesets()
        .withHrn(someHrn)
        .withLayerId(someLayer)
        .withStartVersion(someStartVersion)
        .withEndVersion(someEndVersion)
        .build()
        .executeToEntity()
        .toCompletableFuture()
        .join();

// do something with the changesets
for (Map.Entry<String, Changeset> changeset :
    result.getVersions().orElse(Collections.emptyMap()).entrySet()) {
  System.out.printf(
      "changeset %s with author %s\n",
      changeset.getKey(), changeset.getValue().getAuthor().orElse("<unknown>"));
}

地理座標

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

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

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

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

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

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