我实际上是在使用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来找出它们属于哪个城市,因为这些腿包含“机动”,其中包含“坐标”,但是对我来说,使用的资源过多。
另一个想法是找到一种直接从请求中添加有关它的元数据的方法,但是我在文档中没有找到任何有关它的东西。
所以我还不知道该怎么办。任何帮助都会很棒!
感谢阅读。
答案 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"
}]