如何在Here Maps中获得更多积分?

时间:2016-10-05 14:12:42

标签: javascript gis here-api

我的路线上有一组积分,但在汽车在高速公路上的路径上,这些路段很远。我想得到一个更精细的路由粒度。有可能吗?

$.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分钟就能得到一分。这有可能吗?

2 个答案:

答案 0 :(得分:2)

要获得更细粒度的路由信息​​,您可以请求组成路由的links。为此,请添加值为legattributeslinks的{​​{1}}查询参数。这将为每个路由中的每个li对象的响应添加link数组。此外,您可以使用leg查询参数决定要为每个link查看哪些信息。您可以包含linkattributes的长度和形状等内容,以及用户沿路径到达此链接时路线上的剩余时间或距离。您还可以找到许多其他可能性here(查找 RouteLinkAttributeType )。

因此,在您的代码中,这可能类似于:

link

响应中返回的实际链接类似于:

  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'
  },

答案 1 :(得分:0)

我认为有一种可能的解决方案,但这不是最佳的。 我会在路由属性中添加形状作为请求的参数。并且从响应中,遍历每两对lat / long来计算它们的路径。这会将细分分解成更小的部分。它仍然不像你在问题中提到的那样最优。使用基于时间或基于距离的等值线以起点为中心然后让交叉点对我来说是痛苦的。希望有人有更好的解决方案。