地图方向配额限制

时间:2014-01-28 22:30:44

标签: google-maps google-maps-api-3 google-apps-script google-api

您好我写了一个google脚本,它取出了特定起点和终点的距离。我在线阅读了很多文章,但它们没有包含谷歌地图脚本的限制。

我想知道使用普通的Gmail和商家Gmail身份证可以获取多少个起点和终点(多少次通话)。


编辑:

我正在使用Maps.newDirectionFinder().getDirections();

3 个答案:

答案 0 :(得分:2)

https://developers.google.com/maps/documentation/directions/#Limits

使用限制

Directions API具有以下限制:

  • 每24小时有2,500个方向请求。 当交通方式为驾车,步行或骑自行车时,每个方向搜索都算作一次请求。
  • 搜索公交路线计为4个请求。
  • 驾驶,步行或骑车路线的个别请求最多可包含8个中间航路点。无法为转接请求指定航点。

Google Maps API for Business客户有更高的限制:

  • 每24小时有100,000个路线请求。
  • 每个请求中允许23个航点。航点无法用于公交路线。
  • 路线API网址在URL Encoding之后限制为2048个字符。由于某些Directions API网址可能涉及路径中的多个位置,因此在构建网址时请注意此限制。

Directions API只能与在Google地图上显示结果一起使用;禁止使用路线数据而不显示请求数据的地图。另外,方向的计算产生版权和警告,必须以某种方式向用户显示。有关允许使用的完整详细信息,请参阅Maps API Terms of Service License Restrictions

答案 1 :(得分:0)

来自https://developers.google.com/maps/documentation/distancematrix/#Limits

  

发送到距离矩阵API的每个查询都受允许元素数量的限制,其中原点数乘以目标数量来定义元素数量。

     

Distance Matrix API具有以下限制:

     
      
  • 每个查询100个元素。
  •   
  • 每10秒100个元素。
  •   
  • 每24小时2500个元素。
  •   

您可以打包尽可能多的原始/目的地对,以适应大约2000个字符或更少的URI:

  

在URL编码后,距离矩阵API网址限制为大约2000个字符。由于某些Distance Matrix API服务网址可能涉及多个位置,因此在构建网址时请注意此限制。请注意,不同的浏览器,代理和服务器也可能具有不同的URL字符限制。

另外,请注意,这些条款要求您以某种方式使用Google地图的应用API:

  

使用距离矩阵API必须与Google地图上的信息显示相关;例如,在请求并在地图上显示那些目的地之前,确定彼此在特定驾驶时间内的起始 - 目的地对。禁止在不显示Google地图的应用程序中使用该服务。

答案 2 :(得分:-2)

我知道它很漂亮,但请阅读,因为它可以解决配额限制 ......

如果您愿意,可以仅使用代码而不是使用Google Maps API来计算距离。

我用PHP编写它,但它可以移植到任何语言。

制作一个AJAX请求,其中包含API找到的两个城市坐标。

在PHP中,您可以计算两点之间的距离,而无需使用Javascript map api。

如果您可以在不使用API​​的情况下获得坐标,则可以直接在PHP中计算...

使用Javascript:

$.get( php_script , function( data ) {
   alert( "The distance is "+data+" km" );
});

PHP:

unset($params);
$params["point1"]["lat"]; 
$params["point1"]["lng"]; 
$params["point2"]["lat"]; 
$params["point2"]["lng"]; 
echo orthodromy($params);

function orthodromy($params) {
   unset($lat1, $lng1, $lat2, $lng2);
   $lat1 = $params["point1"]["lat"]; 
   $lng1 = $params["point1"]["lng"]; 
   $lat2 = $params["point2"]["lat"]; 
   $lng2 = $params["point2"]["lng"]; 

   if (!is_numeric($lat1) || !is_numeric($lng1) || !is_numeric($lat2) 
       || !is_numeric($lng2)) return false;

   unset($dist);
   $dist = acos(
      sin( deg2rad($lat1) ) *
      sin( deg2rad($lat2) ) +
      cos( deg2rad($lat1) ) *
      cos( deg2rad($lat2) ) *
      cos( deg2rad($lng1-$lng2) )
   ) * 6371;
   if (!is_numeric($dist)) return false; else return $dist;
}