【问题标题】:Here Maps Routing API V8 - mutiple waypointsHere Maps Routing API V8 - 多个航点
【发布时间】:2020-05-29 20:08:46
【问题描述】:

我对 Here Maps Routing API v8 非常陌生。

我已经尝试过这里提供的示例: https://developer.here.com/documentation/maps/3.1.15.1/dev_guide/topics/routing.html

我已经使用了如下所示的routingParameters:

var routingParameters = {
  'routingMode': 'fast',
  'transportMode': 'car',
  'origin': '50.1120,8.6834',
  'destination': '52.5309,13.3846',
  'return': 'polyline'
};

现在我想在 routingParameters 中添加多个航路点,我尝试了以下格式:

'via' : ['50.1234,8.7654', '51.2234,9.1123']

但是当我在 routingParameters 中使用上述行时,请求失败。

您能否建议具有多个航点的请求的正确格式?

【问题讨论】:

    标签: here-api here-maps-rest


    【解决方案1】:

    在 JS 中,添加多个航点的正确方法是使用H.service.Url.MultiValueQueryParameter

    var routingParameters = {
      'routingMode': 'fast',
      'transportMode': 'car',
      'origin': '50.1120,8.6834',
      'via': new H.service.Url.MultiValueQueryParameter(['50.1234,8.7654', '51.2234,9.1123']);
      'destination': '52.5309,13.3846',
      'return': 'polyline'
    };
    

    欲了解更多信息,请查看https://developer.here.com/documentation/maps/3.1.19.2/api_reference/H.service.Url.MultiValueQueryParameter.html的文档

    【讨论】:

    • 这是添加航点的正确方法。您可以使用新的 H.service.Url.MultiValueQueryParameter() 对象并动态向其推送更多航点。
    【解决方案2】:

    检查您正在使用的 HERE Maps JS API 的版本。从版本 3.1.19.0 开始支持此功能。

    因此计算具有多个航点的路线的方法是:

    // departure point (origin)
    var start = '52.550464,13.384223';
    
    // collection of waypoints
    var waypoints = [
      '52.529791,13.401389'
      '52.513079,13.424392'
      '52.487581,13.425079'
    ];
    
    // end point (destination)
    var end = '52.477545,13.447395'
    
    // routing parameters
    var routingParameters = {
      'origin': start,
      'destination': end,
      'via': new H.service.Url.MultiValueQueryParameter( waypoints ),
    
      'routingMode': 'fast',
      'transportMode': 'car',
    
      'return': 'polyline'
    };
    
    // Get an instance of the routing service version 8:
    var router = platform.getRoutingService(null, 8);
    
    // Call `calculateRoute` with the routing parameters,
    // the success callback and an error callback function
    // The implementation of the two callback functions is left out for brevity
    // see documentation link below for callback examples
    router.calculateRoute(routingParameters, onResultCallback, onErrorCallback)
    

    使用 HERE Maps JS API 计算路线:documentation

    【讨论】:

    • 感谢您的解决方案。我试过这个。如上所述,JS API 和 Rest API 工作正常。
    • 我知道这已经解决了,但是 Here Api 对您的期望是,例如 via=lat,lng&via1=lat,lng&via2=lat,lng,这就是他们说列表时的意思通过检查developer.here.com/documentation/routing-api/8.7.1/…
    • 这是一组硬编码的航路点。要动态添加它们,请使用 var waypoints = [ ];然后是 waypoints.push('lat,long');对于您想要的所有航点。并将 var routingParameters ={...} 中的 'via': 'lat,long' 替换为 'via': new H.service.Url.MultiValueQueryParameter(waypoints),
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    相关资源
    最近更新 更多