在Google地图的路线服务中指定已保存的航点

时间:2013-11-20 15:50:39

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

我遇到了一个问题,我从谷歌地图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个代码。

1 个答案:

答案 0 :(得分:1)

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

Google Maps API Reference: DirectionService

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