首页 > 解决方案 > HERE API 用于土路导航

问题描述

TLDR

是否可以使用 HERE API/SDK 制作一个应用程序,该应用程序将尽可能多地在土路上绘制汽车路线,并且只有在没有其他选择的情况下才使用其他/更好的道路类型 - 比如进入城市时?

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


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


然后,我尝试了 HERE REST API。有一个选项可以设置道路类型的优先级/惩罚:RouteFeatureWeightType,可用于strictExcludesoftExcludeavoid道路类型。motorway但是每当我将类型的权重设置为avoid或更差时 - REST API 只返回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,隧道:-1,dirtRoad:0&waypoint0=geo!37.77713,-122.41964&waypoint1=geo!39.76691,-86.14996

注意-1除土路以外的所有东西的重量-据我所知,这应该是avoid除土路以外的任何道路类型-而不是strictExclude它们,这是一个-3值。我也尝试过-2具有相同错误结果的值。


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

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


So, is there any options in the HERE REST API/SDK, that allows and prefers generation of obviously ineffective, terribly slow routes with dangerous road angles for cars/trucks?

标签: here-api

解决方案


In general no, there is no option available from the API or SDK which would prefer dirt roads when calculating routes.

In theory you could block some roads with the feature like avoidArea (in REST API) and dynamic penalty (in Mobile SDK) , of-course this has the downside that you would need to have this areas known before hand.


推荐阅读