将 Google 地理编码限制为仅真实的国家/地区结果

Restrict Google Geocoding to only true country results

目前,我可以通过我的 Google 地理编码 API 发送 shsihsigsuygdjhgadjhg,它 return 是一个 APPROXIMATE 位置类型 - 尽管我刚编的!

根据文档,我已将请求限制为仅 GB(英国),但如何将其限制为仅 return 个 true 位置?

参数:

$param = ['address' => 'shsihsigsuygdjhgadjhg','components' => 'country:GB'];

响应:

$response = \Geocoder::geocode('json', $param);
            $decoded_response = json_decode($response);

响应是:

+"results": array:1 [▼
    0 => {#314 ▼
      +"address_components": array:1 [▼
        0 => {#313 ▼
          +"long_name": "United Kingdom"
          +"short_name": "GB"
          +"types": array:2 [▼
            0 => "country"
            1 => "political"
          ]
        }
      ]
      +"formatted_address": "United Kingdom"
      +"geometry": {#320 ▼
        +"bounds": {#131 ▶}
        +"location": {#321 ▶}
        +"location_type": "APPROXIMATE"
        +"viewport": {#323 ▶}
      }
      +"partial_match": true
      +"place_id": "ChIJqZHHQhE7WgIReiWIMkOg-MQ"
      +"types": array:2 [▼
        0 => "country"
        1 => "political"
      ]
    }
  ]
  +"status": "OK"
}

如何确保 returns ZERO_RESULTS 的大概位置?

不要添加组件字段,而是将国家/地区值添加到地址字段本身。 component 字段尝试获取您指定值内的组件。它无法识别您传入的地址,但它可以识别国家/地区,因此您得到的是部分匹配项。

而不是

$param = ['address' => 'shsihsigsuygdjhgadjhg','components' => 'country:GB'];

试试,

$param = ['address' => 'shsihsigsuygdjhgadjhg, GB'];

第二次实施的结果为零。