【问题标题】:Specifying saved waypoints in Google Map's Directions Service在 Google Maps Directions Service 中指定保存的航点
【发布时间】:2013-11-21 00:19:37
【问题描述】:

我遇到了一个问题,即我从 Google Maps API (V3) 返回了 414 (Request-URI Too Large) 状态,这基本上意味着我的 GET 请求中的查询字符串太长。问题是,这个 GET 请求是由DirectionsService route function 自动创建的,所以我不太确定我是否可以通过其他方式做到这一点。有问题的代码:

//Setup a request object
var request = {
   origin: p1, //Point 1
   destination: p2, //Point 2
   optimizeWaypoints: true,
   travelMode: google.maps.TravelMode.DRIVING
};

//If we're editing a route that has been previously saved to file
if(editing !== false){
   //Specify the waypoints
   request.waypoints = routePoints;
}

directionsService.route(request, function(response, status) { 
    //Etc.
});

在另一个问题上,我遵循了这种将先前保存的航点附加到来自this answer 的请求对象的方法。基本上,request.waypoints 应该是包含地图上点的对象数组。然而,在更长的路线上,这个数组有时会增长到 200+ 点,这显然解释了我得到的 414 代码。

【问题讨论】:

  • 你能发个 jsfiddle 什么的吗?
  • 你想做什么?渲染路线?或者你想要的只是绘制一条折线?
  • @sabotero 基本上重新渲染之前保存的路线。
  • 但是你是什么人类可读的指示(如果我可以这样称呼的话)还是只有地图上的路线没有这个指南?
  • @sabotero 不,文字说明对我来说毫无价值。基本上,用户可以在地图上绘制一条路线,拖动它以满足他们的需要,然后保存它。稍后,我可以渲染方向。但是,我无法重新渲染他们通过拖动方向所做的任何更改。

标签: javascript google-maps google-maps-api-3


【解决方案1】:

允许的最大航路点为 8 个,加上起点和目的地。 Maps API for Business 客户可以使用 23 个航点,以及起点和目的地。公交路线不支持航点。

Google Maps API Reference: DirectionService

因此,您不能将 DirectionsService.route 用于包含 200 个航点的请求。

【讨论】:

  • 是的,不幸的是,在我开始从方向服务请求中收到 MAX_WAYPOINTS_EXCEEDED 状态后,我才发现了这一点。当然,我不得不将我的航点减少到 20 个,只是为了恢复状态而不是 414 错误。
猜你喜欢
  • 2015-07-24
  • 2011-05-24
  • 1970-01-01
  • 2017-05-14
  • 2016-04-20
  • 2015-08-07
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
相关资源
最近更新 更多