ナビゲーション ポイントへのルート

iOS 向け Navigation SDK では、経由地を指定する方法が強化され、特に複数の入り口や特定のアクセス ポイントがある目的地で、より正確なルート案内とより快適な到着体験を提供できるようになりました。navigationPointToken を使用するか、位置座標とプレイス ID を組み合わせてコンテキストを追加することで、正確な位置にルートを設定できます。

該当する場合は、目的地ハイライト表示機能が引き続き実行されます。

背景

v10.10 より前は、位置座標またはプレイス ID のいずれかを使用して Waypoint を定義できました。緯度と経度のみにルートを設定することは、効果的な場合もありますが、特に大規模な会場、公園、複数の入り口がある建物の場合、最適な乗降場所にならないことがあります。その結果、最も近い道路セグメントにスナップされることがありますが、それが最も便利で正しいアクセス ポイントとは限りません。

強化された経由地オプションでは、より多くのコンテキストを提供できるようになり、この問題に対処しています。

ナビゲーション ポイント トークンを使用する

入り口、発送センター、指定された受け取り場所などの特定のアクセス ポイントへの最も正確なルート案内には、navigationPointToken を使用できます。

このトークンは、Geocoding API の Destinations メソッドを呼び出すことで取得できます。これは、場所に関連付けられた特定のルーティング可能なナビゲーション ポイントを表します。

ナビゲーション ポイント トークンを指定するには:

  1. Geocoding API の Destinations メソッドのレスポンスから navigationPointToken を取得します。

  2. GMSNavigationWaypoint の作成時に navigationPointToken を指定します。

注: ナビゲーション ポイント トークンと、位置情報および PlaceID を同時に指定することはできません。

Swift

// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
  navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"

場所 ID と位置情報を組み合わせる

v10.10 以降では、経由地を作成するときに、プレイス ID と位置座標の両方を指定できます。このメソッドは、場所全体のコンテキスト(プレイス ID)を提供しながら、正確なポイント(場所)を指定する場合に便利です。これにより、Navigation SDK は、目的地の建物をハイライト表示したり、プレイス ID に関連する付近のスポットを表示したりすることで、より充実した到着体験を提供できます。

Swift

// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
  location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),  
  placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];

考慮事項:

placeIDlocation の両方を指定する場合:

  • このルートは主に指定された location を対象としています。
  • placeId は、到着時の利便性を高めるためのコンテキストとして使用されます。
  • フォールバック: 提供された placeId が、指定された location からかけ離れた特徴に対応していると SDK が判断した場合、placeId は無視されます。この場合、ルート検索は location のみに進み、場所固有の到着エクスペリエンスの強化は利用できません。

有効な経由地構成の概要

仕様 location placeID navigationPointToken 転送の動作 宛先のハイライト表示
位置情報の座標のみ set 欠損 欠損 定義された座標に最も近い道路区分にルーティングします 目的地を高い信頼度で推測できる場合に表示されます
Place ID のみ 欠損 set 欠損 プレイス ID のデフォルトのナビゲーション ポイントへのルート 出発地のプレイス ID
ナビゲーション ポイント トークンのみ 欠損 欠損 set トークンで表される正確なナビゲーション ポイントへのルート 元の Geocoding API の destinations メソッドリクエストで定義された目的地
位置座標とプレイス ID の組み合わせ se set 欠損 定義された座標に最も近い道路区分にルーティングします 場所 ID から(ただし、場所 ID が緯度/経度の座標から離れすぎている場合は表示されません)