我可以使用 HERE api v8 检索一些公共交通路线:
https://developer.here.com/documentation/public-transit/dev_guide/routing/route-example.html
我想确定:
- 总距离(公里)
- 总时长
- 以小时为单位的总步行时间
对于汽车路线,我可以选择return=summary
包括长度和持续时间。不幸的是,这不适用于公共交通 API。('return':值超出范围)。
=> 公共交通 api 是否有类似的选项?
或者我是否需要自己计算该信息,例如通过
- 循环遍历所有部分,
- 转换并减去出发和到达日期以获得持续时间
- 变换折线并从 lat,lng 值估计距离
- 总结火车/公共汽车和步行部分的这些值
我的 JavaScript 代码的一部分:
this.__publicTransitUrl = 'https://transit.router.hereapi.com/v8/routes';
//...
var startCoordinates = await this.__geoCode(startLocation);
var targetCoordinates = await this.__geoCode(targetLocation);
var url = `${this.__publicTransitUrl}?&origin=${startCoordinates}&destination=${targetCoordinates}&`;
if(departureTime){
url += 'departureTime=' + departureTime + ':00&';
}
url += `return=polyline&`;
url += `apiKey=${this.__apiKey}`;
const encodedUrl = encodeURI(url);
const jsonResult = await this._jsonQuery(encodedUrl);
const route = jsonResult.routes[0];
const sections = route.sections;
//...
async __geoCode(location){
const url = encodeURI(`${this.__geocodingUrl}?q=${location}&apiKey=${this.__apiKey}`);
const jsonResult = await this._jsonQuery(url);
const firstItem = jsonResult.items[0];
const position = firstItem.position;
const coordinatesString = '' + position.lat +',' +position.lng;
return coordinatesString;
}
//...
示例 json 响应: