在Google Maps v3中绘制超过8个航点

BBS*_*BBS 9 google-maps google-maps-api-3

将代码从Javascript API 2迁移到3.我有一个位置列表,我需要以行车路线的形式绘制.这是在v2中使用以下代码完成的

directions = new GDirections(map);
directions.loadFromWaypoints(waypoints, {preserveViewport: true});  
Run Code Online (Sandbox Code Playgroud)

这是我尝试将其转换为V3

var request = {
    origin: startLoc,
    destination: endLoc,
    waypoints: waypoints,
    optimizeWaypoints: true,
    travelMode: google.maps.TravelMode.DRIVING
};          

directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
    } 
});
Run Code Online (Sandbox Code Playgroud)

不是整个代码,而是一般的想法.似乎工作正常,有一个小问题.当有超过8个航点时,呼叫失败.自谷歌Maps API v3文档声明以来,这是预期的

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

由于我没有在v2中遇到这个问题,这是v3的新限制吗?我想知道我是否使用的东西不是我需要的东西.这是一个非常轻微的应用程序与2个用户,所以我不知道昂贵的营业执照是否值得回报.谷歌地图团队的电子邮件尚未退回.任何变通办法/指针都会有很大的帮助.谢谢.

geo*_*zip 12

一种可能的解决方法(特别是对于轻度使用的站点)是使用多个DirectionsService请求.

  • 如果您需要超过8个航路点,并且需要优化它们,则需要1.购买"商业地图"许可证(允许最多23个航路点)或2.在使用这种绘制方向的方法之前自己优化航路点.您可以使用[DirectionsMatrix服务](https://developers.google.com/maps/documentation/javascript/distancematrix)优化航点. (2认同)
  • 我发现奇怪的是谷歌降低了他们允许你使用从V2到V3的航路点数量.营业执照费用高达每年1万美元.我刚从应用程序中删除了该功能.这不值得额外的费用. (2认同)