【问题标题】:Avoid toll roads only if possible in Here maps仅在此处地图中尽可能避免收费公路
【发布时间】:2020-03-18 08:38:07
【问题描述】:

我正在使用 HERE.com Routing API 来获取 2 点之间的路线。我在请求中使用了 tollroad:-1 功能。据我了解,它将尽量避开收费公路,如果无法避开收费公路,它将返回收费公路的路线。

例如,如果我尝试计算“德国柏林”和“法国巴黎”之间的路线,我会收到此错误:

{"issues":[{"message":"路由器没有返回路由,错误:400 : {\"_type\":\"ns2:RoutingServiceErrorType\",\"type\":\"ApplicationError\" ,\"subtype\":\"NoRouteFound\",\"details\":\"错误是 NGEO_ERROR_GRAPH_DISCONNECTED_CHECK_OPTIONS\",\"additionalData\":[{\"key\":\"error_code\",\"value \":\"NGEO_ERROR_GRAPH_DISCONNECTED_CHECK_OPTIONS\"}],\"metaInfo\":{\"timestamp\":\"2020-03-18T08:29:37Z\",\"mapVersion\":\"8.30.106.154\ ",\"moduleVersion\":\"7.2.202010-6650\",\"interfaceVersion\":\"2.6.76\",\"availableMapVersion\":[\"8.30.106.154\"]}}\ n"},{"message":"请求 id: c75dd122-3d7c-4364-b4db-ffefc08a5187"}],"response":null,"error_id":"c75dd122-3d7c-4364-b4db-ffefc08a5187","re​​sponse_code ":"400 错误请求"}

这是来自 calculateroute.json 的请求 https://fleet.api.here.com/2/calculateroute.json?app_id=XXX&app_code=XXX&resolution=10&legAttributes=none,links,maneuvers&maneuverAttributes=none,position,notes&linkAttributes=none,shape,roadName,roadNumber,flags,remainTime,remainDistance&rollup=none,country,country%3Btollsys,total&detail=1&commercial=1&currency=EUR&routeAttributes=none,sc,notes,legs,summary,summaryByCountry&shippedHazardousGoods=&driver_cost=15&vehicle_cost=0.7&tollVehicleType=3&mode=fastest%3Btruck%3Btraffic:disabled%3Btollroad:-1&length=16.5&cost_optimize=0&height=4m&weightPerAxle=8t&vehicleNumberAxles=3&vehicleWeight=40t&limitedWeight=40t&emissionType=5&trailersCount=1&trailerType=2&trailerNumberAxles=2&trailerHeight=2m&waypoint0=geo!52.51605,13.37691&waypoint1=geo!48.85718,2.34141&truckRestrictionPenalty=soft

要明确一点,我希望的是,如果没有办法避开收费公路(避免 -1),那么返回一条收费公路的路线。对此有何建议或建议?

提前致谢

【问题讨论】:

  • 看看你的论点,最好稍微简化你的调用。您不仅仅是在说从 A 到 B 的路线并避开收费公路,您还有更多数据可能导致它没有返回任何路线。
  • @RaymondCamden,当我删除所有卡车规范属性时,我确实得到了一条路线。但是,如果我不想删除它们怎么办? 'tollroad:-1'(避免)不应该因为没有路线匹配约束而返回带通行费的路线吗?

标签: javascript here-api here-maps-rest


【解决方案1】:

看起来已经通过的模式有问题。我猜有一条从 A 点到 B 点的道路——它被标记为收费公路和卡车路线。免费和卡车路线的结合使该地区没有可用的道路。

如果您遇到这样的失败,请尝试放松约束(卡车 + 包括收费):例如而不是 =mode=fastest%3Btruck%3Btraffic:disabled%3Btollroad:0 使用以下之一:

Truck + toll - mode=fastest;truck;traffic:disabled;tollroad:0

【讨论】:

  • 但是如果没有找到与约束匹配的路线,toll​​road:-1(避免)不应该返回路线。
  • 就像更新一样,也许您可​​以提供帮助:当我从请求中删除卡车规范属性时,我确实得到了一条路线。但是,如果我不想删除它们怎么办?我需要在请求中包含这些属性来计算通行费
  • 我不知道该建议什么。如果路由必须与您发送的内容匹配而您什么也得不到,那可能是现实,对吧? IE。没有什么适合你想要的。
  • @RaymondCamden,我明白你的意思,这很有意义。我的问题是我 100% 知道 A 和 B 之间有一条收费路线(我们称之为 R1)。当我使用 mode=''fastest;truck;traffic:disabled;tollroad:-1" 我预计算法不会找到没有通行费的路线,所以它会返回(R1)。但它没有。这就是我的问题它在结果中的路由对象中返回错误而不是空数组。
  • 至少这是我从这里提到的“RouteFeatureWeightType”的文档中了解到的:developer.here.com/documentation/routing/dev_guide/topics/…
猜你喜欢
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 2019-03-11
  • 2011-11-16
相关资源
最近更新 更多