HERE Route Matching v8:使用轨迹文件时如何定义中途停靠点拆分路径?
解决HERE Route Matching v8 API拆分路径为多段Leg的问题
核心问题原因
HERE Route Matching v8 API默认会将整个匹配轨迹合并为单个Leg,即使在CSV中添加速度、时间标记停靠点,API也不会自动识别并拆分Leg——这些字段仅用于优化匹配精度,而非拆分路径。
可行解决方案
1. 显式传入waypoints参数拆分Leg
这是最直接可靠的方法,通过在请求中指定起点、所有停靠点、终点作为waypoints,强制API按这些点拆分路径为多个Leg,同时保留完整CSV轨迹用于精准匹配。
请求示例(POST Body)
{ "mode": "fastest;car", "waypoints": [ {"lat": 52.5200, "lng": 13.4050}, // 起点 {"lat": 52.5160, "lng": 13.3779}, // 第一个停靠点 {"lat": 52.5075, "lng": 13.4261}, // 第二个停靠点 {"lat": 52.4978, "lng": 13.3975} // 终点 ], "csvData": "lat,lng,speed,time\n52.5200,13.4050,0,2024-05-20T08:00:00\n52.5185,13.4022,35,2024-05-20T08:01:00\n..." // 完整轨迹CSV }
注意事项
waypoints中的坐标必须与CSV轨迹里的停靠点坐标尽量接近,避免因偏差过大导致匹配失败;- 若停靠点的原始GPS存在漂移,可先对停靠点坐标做简单校准后再传入
waypoints。
2. 手动拆分返回的单Leg结果
如果无法修改请求参数,可在拿到API返回的单Leg数据后,通过以下步骤手动拆分:
- 遍历每个停靠点的原始GPS坐标,在返回的匹配路径
link和position列表中,找到距离最近的匹配点(可通过计算经纬度距离筛选); - 根据这些匹配点在Leg的
sections、maneuvers中的位置,将单Leg切割为多个分段Leg; - 处理时注意保留每个分段的路径属性(如距离、耗时、道路信息等)。
3. 验证CSV字段的有效性
虽然添加速度、时间列无法触发Leg拆分,但可确认是否使用了API支持的字段格式:
- 速度字段需以km/h或m/s为单位(需与请求
mode中的交通工具匹配); - 时间字段需符合ISO 8601格式(如
2024-05-20T08:00:00Z); - 若API文档未提及
stop类字段,添加自定义列不会被识别,无需浪费精力。
内容的提问来源于stack exchange,提问作者Jacopo Guanetti
相关产品推荐
相关产品推荐

