这里的地图路线:穿越城市

时间:2018-11-21 11:35:02

标签: maps here-api

大家好!

我实际上是在使用Here提供地图。我实际上是在使用routing calculate来计算距离,持续时间和城市之间跨越两点的距离。问题在于结果不包含有关交叉位置的任何信息。

我的问题:

我如何获得穿越的城市/地区/国家?

这里是一个例子:

我在这里提出了这个要求:  https://route.api.here.com/routing/7.2/calculateroute.json?app_id={app_id}&app_code={app_code}&mode=balanced;car;traffic:disabled&waypoint0=geo!48.13642,11.57755&waypoint1=geo!49.45435,11.0735&departure=2018-11-21T10:59:30.640Z&alternatives=5&routeAttributes=routeId&language=fr

结果显示路线上有26条腿的东西。

想法:

  • 一个想法是遍历所有腿,并使用另一个API来找出它们属于哪个城市,因为这些腿包含“机动”,其中包含“坐标”,但是对我来说,使用的资源过多。

  • 另一个想法是找到一种直接从请求中添加有关它的元数据的方法,但是我在文档中没有找到任何有关它的东西。

所以我还不知道该怎么办。任何帮助都会很棒!

感谢阅读。

1 个答案:

答案 0 :(得分:1)

没有直接方法可以从“路由”服务请求此请求。但是有不同的可能性可以要求进一步围绕路线本身进行详细描述:

routeAttributes -定义响应中包含哪些属性作为路由数据表示的一部分。

legAttributes -定义响应中包含哪些属性,作为路线路段数据表示的一部分。

maneuverAttributes -定义响应中包含哪些属性作为路线数据表示的一部分 演习。

linkAttributes -定义响应中包含哪些属性作为路由链接的数据表示的一部分。

另请参见此处https://developer.here.com/documentation/routing/topics/resource-calculate-route.html

也许您可以在这里找到适合您的用例的组合。

无论如何,路由器会按国家/地区提供摘要:

  

&routeattributes = sc

例如(我将您的示例扩展为跨越国家边界):

 "summary": {
    "distance": 365910,
    "trafficTime": 15369,
    "baseTime": 14261,
    "flags": ["dirtRoad", "tollroad", "noThroughRoad", "tunnel", "motorway", "builtUpArea", "park"],
    "text": "Distance du trajet: 366 km, durée: 3h58.",
    "travelTime": 14261,
    "_type": "RouteSummaryType"
  },
  "summaryByCountry": [{
    "distance": 107955,
    "trafficTime": 5821,
    "baseTime": 5347,
    "flags": ["dirtRoad", "tollroad", "noThroughRoad", "tunnel", "motorway", "builtUpArea"],
    "text": "Distance du trajet: 108 km, durée: 1h29.",
    "travelTime": 5347,
    "country": "AUT",
    "tollRoadDistance": 94321,
    "_type": "RouteSummaryByCountryType"
  }, {
    "distance": 257955,
    "trafficTime": 9548,
    "baseTime": 8914,
    "flags": ["motorway", "builtUpArea", "park"],
    "text": "Distance du trajet: 258 km, durée: 2h29.",
    "travelTime": 8914,
    "country": "DEU",
    "_type": "RouteSummaryByCountryType"
  }]