2017-02-16 18 views
0

私はGoogle Maps Geocoding API web serviceを使用していますが、componentsパラメータを使用して結果を「ロンドン」に制限しています。私のURLのクエリはここにある:Google MapsジオコーディングAPIコンポーネントの制限

https://maps.googleapis.com/maps/api/geocode/json?address=<address>&components=administrative_area:london, united kingdom

これは超うまく機能し、私は唯一のロンドン内にある結果を得ることができます。しかし、ロンドンにはないマンチェスター(例えば、マンチェスター)を求めていると、「グレーター・ロンドン」に関するデフォルトのリターンを取得するだけです。私はむしろ単にZERO_RESULTSのステータスを返します。これを指定する方法はありますか?

P.S私はregionパラメータを使用しようとしましたが、これは私が望むほど厳しくありません。

答えて

0

次の2つの別々のフィルタ部品として都市(地域)や国によってフィルタリングすることができ、これらはパイプによって分離することができるhttps://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

で見つけた情報を使用して(|)記号。国は、ロンドンの都市をカバーするためにISO 3166-1の国コード[https://en.wikipedia.org/wiki/ISO_3166-1]したがってGBです。

したがって、このフォーマットを使用することができる:スペル修正の方法と同じ方法を https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

フィルター値に応じて、サポートすることを念頭に置いて

https://maps.googleapis.com/maps/api/geocode/json?address=<address>&components=locality:London|country:UK 

をし、あなたの正確な質問に対処し、 他のジオコーディング要求と部分的に一致しています。ジオコーディング結果が の場合、コンポーネントフィルタの部分一致には、partial_match フィールドがレスポンスに含まれます。

正確に一致するものが見つからない場合、部分的に一致するものが見つかると思われますが、残念ながらこれを無効にすることはできません。

ただし、結果セットで"partial_match" : trueのチェックを行うと、レスポンスを処理するコードでそのような結果が除外されます。

概要で

アドレスが

https://maps.googleapis.com/maps/api/geocode/json?address=<address>&components=locality:London|country:UK 

「良い」であり、それはあなたが排除するために、あなたのコード内で"partial_match" : trueのための応答をフィルタリングすることができます場合は、このフォーマットは"partial_match" : trueせずに結果を与えているようです偽の結果。たとえば、住所「マンチェスター」を使用する場合:

https://maps.googleapis.com/maps/api/geocode/json?address=Manchester&components=locality:London|country:UK 
関連する問題