Android 版 Navigation SDK 提供了增强型方式来指定途经点,从而提供更准确的路线规划和更好的到达体验,尤其对于有多个入口或特定接入点的目的地。您可以使用 navigationPointToken 或将纬度和经度坐标与地点 ID 相结合,以提供更多背景信息,从而前往精确位置。如果适用,系统将继续执行目的地突出显示功能。
背景
在 v7.4 之前,您可以使用纬度和经度坐标或地点 ID 定义 Waypoint。虽然对于大多数使用情形来说,仅根据经纬度进行路线规划是有效的,但有时可能会导致下车点或上车点不够理想,尤其是在大型场所、公园或有多个入口的建筑物中。结果可能会贴靠到最近的路段,但该路段可能不是最方便或最正确的入口点。
增强型途经点选项允许提供更多背景信息,从而解决此问题。
结合地点 ID 与经度和纬度
从 v7.4 开始,您可以在创建 Waypoint 时同时提供地点 ID 以及纬度和经度坐标。如果您想指定一个精确的点(纬度/经度),同时仍提供整个地点的上下文(地点 ID),此方法会很有用。这样一来,Navigation SDK 就可以通过突出显示目的地建筑物或显示与地点 ID 相关的附近兴趣点,提供更丰富的到达体验。
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
注意事项:
如果您同时提供 placeId 和 latlng:
- 相应路线主要面向指定的
latlng。 placeId用作上下文,以提升到达体验。- 回退:如果 SDK 确定所提供的
placeId对应的功能与给定的latlng相差太远,则会忽略placeId。在这种情况下,系统只会继续前往latlng,而不会提供特定地点的到达体验增强功能。
使用导航点令牌
如需获得前往特定接入点(例如入口、装货平台或指定取货区)的最精确路线,您可以使用 navigationPointToken。此令牌通过调用 Geocoding API 的 destinations 方法获得。它表示与某个地点关联的特定可导航点。
如需指定导航点令牌,请执行以下操作:
- 从 Geocoding API 的 Destinations 方法响应中获取
navigationPointToken。 - 使用构建器中的
setNavigationPointToken()方法创建Waypoint。
注意:使用 setNavigationPointToken() 时,您不能同时使用 setLatLng() 或 setPlaceIdString()。这些方法与 setNavigationPointToken() 互斥。
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
有效航点配置摘要
| 方法 | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
路由行为 | 突出显示目的地 |
|---|---|---|---|---|---|
| 仅限 LatLng | set | 缺席 | 缺席 | 前往距离指定坐标最近的路段的路线 | 不展示 |
| 仅限地点 ID | 缺席 | set | 缺席 | 前往地点 ID 的默认接入点的路线 | 出发地点 ID |
| 仅限导航点令牌 | 缺席 | 缺席 | set | 通往令牌所代表的精确接入点的路线 | 来自 Geocoding API 的 destinations 方法请求中定义的目的地 |
| LatLng 和地点 ID 组合 | set | set | 缺席 | 前往距离指定坐标最近的路段的路线 | 来自 PlaceID,但如果 PlaceID 与 LatLng 相距太远,则不会显示 |