【问题标题】:Google Maps API Distance Matrix RequestsGoogle Maps API 距离矩阵请求
【发布时间】:2016-08-12 09:32:55
【问题描述】:

我一直在使用 Google 距离矩阵 API 来计算我网站上消费者和企业之间的距离;我目前碰壁了,看到我的报价点击了2,500,之后不再处理请求。

然后我决定快速阅读文档,看看是否有什么我可以用一块石头杀死两只鸟的方法,可以这么说,并在 API Usage Limits Page 上看到你有 25 个起源和 25 个起源每个请求的目的地。

这是否意味着在一个请求中我可以连接 25 个出发地和目的地并返回它们的里程。

这是我用来获取消费者和客户之间距离的 PHP 代码:

final public function Distance($A, $B){

    $URL = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".urlencode($A)."&destinations=".urlencode($B)."&key=API_KEY_HERE";
    $Data = json_decode(file_get_contents($URL));

    return str_replace(" mi", "", $Data->rows->elements->distance->text);        
}

【问题讨论】:

    标签: php google-maps google-maps-api-3 google-distancematrix-api


    【解决方案1】:

    配额以元素为单位:

    标准 API 的用户:

    每天 2,500 个免费元素,按客户端和服务器端查询的总和计算。

    还有:

    发送到 Google Maps Distance Matrix API 的每个查询都受到允许元素数量的限制,其中起点数量乘以目的地数量定义了元素数量。

    向请求添加更多起点/终点不会增加在达到配额之前可以检索的距离量。

    【讨论】:

    • 25 个出发地/目的地中的每一个都算作单独的查询吗?
    • 一个元素是一个起点/终点对。配额不是“查询”。
    • 是的,我明白了...以前从未真正看过distance matrix。如果您发送的请求包含 25 个起点和 1 个目的地(或 1 个起点和 25 个目的地或其他组合),计为 25 个元素,您可以每天重复该过程 100 次以达到 2,500 个限制
    【解决方案2】:

    我希望它会起作用.....

    final public function Distance($A, $B){
    
        $URL = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".urlencode($A)."&destinations=".urlencode($B)."&key=API_KEY_HERE";
        $Data = json_decode(file_get_contents($URL));
    
        return str_replace(' mi', '',$Data->rows[0]->elements[0]->distance->text);        
    }
    

    【讨论】: