【问题标题】:Google Distance Matrix - Limit country谷歌距离矩阵 - 限制国家
【发布时间】:2016-05-17 13:09:13
【问题描述】:

我正在使用 Google 距离矩阵 API 来查找两个位置的距离。我需要将搜索限制在英国,因为我遇到的问题是,如果您搜索不完整的邮政编码,即“L20”,Google 会立即建议美国的“L20”区域,这显然会导致搜索没有结果。

如何将 Google 的搜索条件限制在特定国家/地区?

这是我当前的代码:

function dist($addr, $addr2) {
    $url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=' . urlencode ( $addr ) . '&destinations=' . urlencode ( $addr2 ) . '&key=';
    return getCachableContent ( $url );
}

【问题讨论】:

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


【解决方案1】:

您可以尝试使用 Google Geocoding API 和 Google Distance Matrix API 作为解决方案的一部分。 Geocoding API 将能够为给定地址提供国家/地区信息(参见https://developers.google.com/maps/documentation/geocoding/start,例如 Google Geocoding API 输出)。

首先,您会将地址传递给 Geocoding API,以确定地址是否具有国家/地区值,在您的情况下为英国。如果是,则继续将值传递给距离 API。

更新 1:基于您的原始代码的示例代码

获取您的原始代码:

function dist($addr, $addr2) {
    $url = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=' . urlencode ( $addr ) . '&destinations=' . urlencode ( $addr2 ) . '&key=';
    return getCachableContent ( $url );
}

它可能看起来像这样:

function dist($addr, $addr2) {
    $geocodeurl1 = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode ( $addr ) . '&key=';        

    $geocodeurl2 = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode ( $addr2 ) . '&key=';

    //Then do some checking here to see if the country values for both returns above are UK based (e.g. if statements). If both are UK then proceed to perform your original call to the distancematrix  
    $distanceurl = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=' . urlencode ( $addr ) . '&destinations=' . urlencode ( $addr2 ) . '&key=';
    return getCachableContent ( $distanceurl );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多