我沿着我的路线得到了一组点,但在汽车在高速公路上的路径中,这些路段很远。我想获得更细粒度的路由。可能吗?
$.ajax({
url: 'https://route.cit.api.here.com/routing/7.2/calculateroute.json',
type: 'GET', dataType: 'jsonp', jsonp: 'jsoncallback',
data: {
waypoint0: '59.159486,17.645687',
waypoint1: "59.397635,17.891626",
mode: 'fastest;car;traffic:enabled',
app_id: 'VXZP5fwHfh2WQIWnp0Zx',
app_code: 'NgKq-kVEUMKxxNpBKP_hBg',
departure: 'now'
},
success: function (data) {
moves = data.response.route[0].leg[0].maneuver;
timeAvailable = 45;
trackPoints = moves.map(function (d) { return {
lat: d.position.latitude,
lng: d.position.longitude,
time = d.travelTime }; });
for (var i = 0; i < trackPoints.length; i++) {
smackUpArea(map, trackPoints[i], timeAvailable);
timeAvailable -= trackPoints[i].time;
};
}
})
最理想的是,我希望每行驶 x 公里或每 y 分钟获得一个积分。这可能吗?
最佳答案
要获取更细粒度的路由信息,您可以请求路由组成的链接
。为此,请添加值为 links
或 li
的 legattributes
查询参数。这会将 link
数组添加到每个路由中每个 leg
对象的响应中。此外,您可以使用 linkattributes
查询参数来决定要查看每个链接
的哪些信息。您可以包括链接
的长度和形状,以及用户沿路线到达此链接时路线上的剩余时间或距离等信息。还有许多其他可能性,您可以找到 here(查找 RouteLinkAttributeType)。
因此,在您的代码中,这可能类似于:
data: {
waypoint0: '59.159486,17.645687',
waypoint1: "59.397635,17.891626",
mode: 'fastest;car;traffic:enabled',
app_id: 'VXZP5fwHfh2WQIWnp0Zx',
app_code: 'NgKq-kVEUMKxxNpBKP_hBg',
departure: 'now',
legattributes: 'li',
linkattributes: 'le,rt'
},
响应中返回的实际链接如下所示:
{
"linkId":"-733185668",
"shape":["52.5158286,13.3774424","52.5158286,13.3774424"],
"length":0,
"remainTime":249,
"speedLimit":13.8888893,
"_type":"PrivateTransportLinkType"
}
关于javascript - 如何在Here Maps中获得更多沿途积分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39876334/