默认情况下,中间航点用于停靠以接送乘客,但您也可以指定中间航点仅用于通过。
如果路线包含一个起点航点、一个经停中间航点和一个目的地航点,则该路线仅包含一个连接起点和目的地的航段,同时会经过中间航点(称为 via)。
使用 Waypoint 接口将航点的 via 属性设置为 true,从而将中间航点配置为经停航点。
在响应用户拖动地图上的航点而创建路线时,via 属性最有效。这样,用户就可以实时查看最终路线,并有助于确保航点放置在 Routes 库可访问的位置。
示例请求
以下示例请求演示了如何将中间航点标记为经停航点。
const routeRequestWithVia = { origin: '100 Moffett Blvd, Mountain View, CA 94043', destination: '1199 9th Ave, San Francisco, CA 94122', travelMode: 'DRIVING', intermediates: [ {location: 'Half Moon Bay, CA', via: true} // Set the via property to true ], fields: ['path', 'legs'], }; // Make the request. const {routes, fallbackInfo, geocodingResults} = await Route.computeRoutes(routeRequestWithIntermediates);
获取中间航点的地点 ID
如果您将起点、终点或中间航点的位置指定为地址字符串或 Plus Code,Routes 库会尝试查找具有相应地点 ID 的最相关位置。结果中的 geocodingResults.intermediates 数组包含与航点位置对应的地点 ID,以及有关该位置的其他数据。
地理编码结果响应示例
{ "origin": { "geocoderStatus": "OK", "types": [ "premise", "street_address" ], "partialMatch": false, "placeId": "ChIJb5NgcTa3j4ARrfF4Oc_f6q8", "intermediateWaypointRequestIndex": null }, "destination": { "geocoderStatus": "OK", "types": [ "premise", "street_address" ], "partialMatch": false, "placeId": "ChIJAbIPLl2HhYARQ0SSdDFxU-s", "intermediateWaypointRequestIndex": null }, "intermediates": [ { "geocoderStatus": "OK", "types": [ "locality", "political" ], "partialMatch": false, "placeId": "ChIJC8sZCqULj4ARVJvnNcic_V4", "intermediateWaypointRequestIndex": 0 } ] }