此处 API 用于土路导航

HERE API for dirt road navigation

TLDR

是否可以使用 HERE API/SDK 制作一个应用程序,尽可能在土路上绘制汽车路线,并且仅在没有其他选择的情况下才使用 other/better 道路类型 -比如进城?

这不是询问如何在生成的路线中避开土路。我想达到完全相反的效果——尽可能多地使用土路。是的,那将是一条非常缓慢和低效的路线 - 我知道这一点。


起初我尝试了本地 HERE SDK - 但我没有发现有任何选项可以优先土路。 我只能设置 避开 任何其他道路类型 - 生成的路线占 highway/paved 道路的 99%。生成的从阿拉斯加地理中心到德克萨斯地理中心的路线只有大约 50 公里的土路类型,而有数千公里的其他道路类型,主要是高速公路。


然后,我尝试了 HERE REST API。有一个选项可以为道路类型设置 priority/penalty:RouteFeatureWeightType,可用于 strictExcludesoftExcludeavoid 道路类型。但是每当我将 motorway 类型的权重设置为 avoid 或更糟时 - REST API returns 只有 NGEO_ERROR_GRAPH_DISCONNECTED_CHECK_OPTIONS 错误。

示例请求:https://route.ls.hereapi.com/routing/7.2/calculateroute.json?apiKey=APIKEY&mode=fastest;car;tollroad:-1,motorway:-1,boatFerry:-1,railFerry:-1,tunnel:-1,dirtRoad:0&waypoint0=geo!37.77713,-122.41964&waypoint1=geo!39.76691,-86.14996

注意 -1 除土路以外的所有道路的重量 - 据我了解,这应该 avoid 除土路以外的任何道路类型 - 而不是 strictExclude 它们,这是 -3 价值。我也试过 -2 值,但结果相同。


之后,我用 REST API 做了一些实验。我最好的结果是当我将请求车辆类型从 car 更改为 truck 时。它不仅能够在不出错的情况下使用我的初始权重设置,而且实际上并没有沿着这些巨大的多车道州际公路行驶。但是那条路线仍然沿着高速公路类型的道路行驶,即使有一条明显的替代土路 运行 与高速公路平行。这可能是 truck 模式的限制。

示例:https://route.ls.hereapi.com/routing/7.2/calculateroute.json?apiKey=APIKEY&mode=fastest;truck;tollroad:-3,motorway:-3,boatFerry:-2,railFerry:-3,tunnel:-2,dirtRoad:0&waypoint0=geo!37.77713,-122.41964&waypoint1=geo!39.76691,-86.14996


那么,在 HERE REST API/SDK 中是否有任何选项允许并更喜欢生成明显无效、极慢且道路角度危险的路线 cars/trucks?

通常不会,API 或 SDK 没有提供在计算路线时更喜欢土路的选项。

理论上,您可以使用 avoidArea(在 REST API 中)和动态惩罚(在 Mobile SDK 中)等功能来封锁某些道路,当然这也有缺点,您需要拥有这些区域事先知道。