默认情况下,中间途经点用于停靠以接送乘客,但您也可以指定某个中间途经点仅用于途经。
包含出发地航点、途经中间航点和目的地航点的路线仅包含一条连接出发地和目的地的路线段,该路线段会途经中间航点(称为 via)。
通过使用 Waypoint 接口将途经点的 via 属性设置为 true,将中间途经点配置为直达途经点。
在创建路线以响应用户在地图上拖动途经点时,via 属性最为有效。这样做可让用户实时查看最终路线的可能外观,并有助于确保途径点放置在路线库可访问的位置。
示例请求
以下示例请求演示了如何将中间途经点标记为直达途经点。
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 } ] }