here-api - 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 ) 时会得到不同的结果:
- 来自:start2=[49.5874311604988,6.36225600752937]
- 至:目的地4 = [49.6199640866961,6.0752615082501]
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}}
有人经历过类似的事情吗?这是一个错误还是有人可以解释为什么我们会得到这些不一致的结果?
更新:添加响应详细信息。
解决方案
底层算法使用启发式算法,它根据开始/目的地的数量来驱动搜索。不同的矩阵大小可能会产生不同的结果,这是意料之中的。在我们使用这种启发式方法之前,我们无法确保不同大小的矩阵得到相同的结果。
如果您缩短一点距离,路线将穿过不同的路段。这是因为在这种情况下,短距离可能会提供更精确的搜索。
推荐阅读
- c# - 在两个屏幕中最大化表单窗口C#
- bash - 我在这个 read while 循环中使用了什么 shell 范围?
- aws-lambda - Dynamo 数据库访问问题 AWS Lambda
- ocr - 真实视频字幕生成中使用拉伸阿拉伯字母的规则是什么?
- c# - C#方法调用多次
- macos - 安装 PHP 7.1 for Mac 时出错(使用 Homebrew)
- sql - 如何捕获基于 Web 的应用程序发送到 Oracle 服务器的 SQL 查询?
- mysql - SQL 中的正则表达式性能
- python - 返回 UnboundLocalError 的 Zip() 函数:分配前引用的局部变量 'zip'
- pytest - 如何从 unittest TestCase 类中声明的测试方法中获取夹具值?