首页 > 解决方案 > HereAPI 不一致的成本矩阵结果对于从/到的相同位置对

问题描述

我们在调用 HereAPI 计算矩阵时遇到不同/不一致的结果: https ://developer.here.com/documentation/routing/dev_guide/topics/resource-calculate-matrix.html

这两个请求在获取位置对的成本矩阵 ( https://matrix.route.api.here.com/routing/7.2/calculatematrix.json ) 时会得到不同的结果:

req1Params = {app_id=[abc], app_code=[xxx], mode=[fastest;truck;traffic:disabled], summaryAttributes=[traveltime,costfactor,distance], limitedWeight=[3.5], height=[2.815], width=[2.426], length=[6.945], start0=[49.99432,6.09711], start1=[50.04874,6.11873], start2=[49.5874311604988,6.36225600752937], start3=[50.1567001905827,6.0488119628559], start4=[49.6199640866961,6.0752615082501], start5=[50.05481,6.02723], destination0=[49.99432,6.09711], destination1=[50.04874,6.11873], destination2=[49.5874311604988,6.36225600752937], destination3=[50.1567001905827,6.0488119628559], destination4=[49.6199640866961,6.0752615082501], destination5=[50.05481,6.02723]}

start2 -> destination4 的矩阵结果: {"startIndex":2,"destinationIndex":4,"summary":{"distance":41400,"travelTime":3136,"costFactor":3176}}

req2Params = {app_id=[abc], app_code=[xxx], mode=[fastest;truck;traffic:disabled], summaryAttributes=[traveltime,costfactor,distance], limitedWeight=[3.5], height=[2.815], width=[2.426], length=[6.945], start0=[49.630539,6.13332], start1=[49.8302,5.84841], start2=[49.5874311604988,6.36225600752937], start3=[49.8503553810064,6.12768609880935], start4=[49.6199640866961,6.0752615082501], start5=[49.84435496244089,6.0966557264328], start6=[49.85112,6.09573], destination0=[49.630539,6.13332], destination1=[49.8302,5.84841], destination2=[49.5874311604988,6.36225600752937], destination3=[49.8503553810064,6.12768609880935], destination4=[49.6199640866961,6.0752615082501], destination5=[49.84435496244089,6.0966557264328], destination6=[49.85112,6.09573]}

start2 -> destination4 的矩阵结果: {"startIndex":2,"destinationIndex":4,"summary":{"distance":30737,"travelTime":2122,"costFactor":2162}}

有人经历过类似的事情吗?这是一个错误还是有人可以解释为什么我们会得到这些不一致的结果?

更新:添加响应详细信息。

标签: here-api

解决方案


底层算法使用启发式算法,它根据开始/目的地的数量来驱动搜索。不同的矩阵大小可能会产生不同的结果,这是意料之中的。在我们使用这种启发式方法之前,我们无法确保不同大小的矩阵得到相同的结果。

如果您缩短一点距离,路线将穿过不同的路段。这是因为在这种情况下,短距离可能会提供更精确的搜索。


推荐阅读