1

我可以使用 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 响应:

在此处输入图像描述

4

0 回答 0