2016-12-20 4 views
1

現時点では、私はGoogle Geocode APIを通じてshsihsigsuygdjhgadjhgを送信し、APPROXIMATEの位置情報を返すことができます。Googleのジオコーディングを実際の国の結果のみに限定する

ドキュメントごとにリクエストをGB(英国)に制限しましたが、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" 
} 

どのように私はそれがおおよそのためZERO_RESULTSを返し確保することができます場所?

+0

ちょっとした提案:レスポンスで部分一致を使用することはできません。真の場合は、探しているものと完全に一致しているとはみなせませんか?部分一致はスペルミスを処理しますが、スペルミスに対処したい場合は、私の提案は意味がありません – Coder

+0

私は 'partial_matches'を受け入れることができないと信じています。私はこれを実装し、それ以上の潜在的な答えを待つでしょう。あなたの助けに感謝@コーダー。 – Ben

+0

私は毎日google APIを使用していますが、そのドキュメントでは簡単にはできません。私はさらに調査し、役に立つものがあれば投稿します。@Ben – Coder

答えて

1

コンポーネントフィールドを追加する代わりに、アドレスフィールド自体に国の値を追加します。コンポーネントフィールドは、指定した値内でコンポーネントを取得しようとします。それはあなたが渡しているアドレスを識別することができませんでしたが、それは国を認識し、したがってあなたはそれに部分一致を得ています。代わりに

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

てみの

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

は、私は第2の実施のためのゼロの結果を取得しています。

+0

完璧に動作します。そんな小さな見落とし!多くのありがとう@コーダー。 – Ben

+0

うれしい私は助けることができました! @Ben – Coder

関連する問題