通过中间航点的路线--通过参数传递一个坐标列表。

问题描述 投票:0回答:1

我需要在参数中传递一个坐标列表,并在 通过参数但我找不到方法。这是一个只有一对坐标(lat, lng)的例子。

function calculateRoute (platform) {
  var router = platform.getRoutingService(null, 8),
    routeRequestParams = {
      routingMode: 'fast',
      transportMode: 'truck',
      origin: '36.87689,-2.44138',
      destination: '36.69630,-4.47968',
      via: '38.99112,-1.86902', //LIST HERE!!!
      return: 'polyline'
    };

  router.calculateRoute(
    routeRequestParams,
    onSuccessRoute,
    onError
  );
}

我希望得到的网址是这样的:

https://router.hereapi.com/v8/routes?apikey=
{API_KEY}&routingMode=fast&transportMode=truck&origin=36.87689,-2.44138&via=38.99112,-1.86902&via=37.95862,-1.15538&destination=36.69630,-4.47968&return=polyline

正如你所看到的,在URL中,via是重复的。

非常感谢!我需要传递一个坐标列表。

here-api
1个回答
0
投票

对于Routing v8 API来说,JavaScript API并不支持多个路由航点,也就是说,它并不支持将一个坐标列表传递给Routing v8 API。via 参数。

所以你最好的办法是直接针对Routing v8 REST API,像follow一样,从响应中建立一条多线。

# Note: line breaks and spaces are for readability only (they need to be removed)

https://router.hereapi.com/v8/routes?
  origin=52.550464,13.384223
  &transportMode=car
  &destination=52.477545,13.447395
  &via=52.529791,13.401389
  &via=52.513079,13.424392
  &via=52.487581,13.425079
  &apikey={YOUR_API_KEY}

或者,如果你知道你在做什么,你可以使用下面的技巧 将多个航点 "序列化 "到JS API中。

var routingParameters = {
  'routingMode': 'fast',
  'transportMode': 'car',
  'origin': '50.1120,8.6834',
  'destination': '52.5309,13.3846',
  'via': '50.1234,8.7654&via=51.2234,9.1123',
  'return': 'polyline'
};

0
投票

不知道是否对你有帮助,但是. .

function calculateRouteFromAtoB (platform) {
  var router = platform.getRoutingService(),
      routeRequestParams = {
      mode: 'fastest;car',
      representation: 'display',
      routeattributes : 'waypoints,summary,shape,legs',
      maneuverattributes: 'direction,action',
      waypoint0: '55.7520,37.6175',
      waypoint1: '55.8941,37.4439',
      waypoint2: '55.7982,37.9680'
      };
  router.calculateRoute(
      routeRequestParams,
      onSuccess,
      onError
  );
}

我的作品。

© www.soinside.com 2019 - 2024. All rights reserved.