Google GeoCoding APIに住所文字列を提供して、地図上で最も正確な結果を取得するための標準形式はありますか。
例えば次のクエリでは正しい結果が得られません。
http://maps.googleapis.com/maps/api/geocode/xml?address=bloom,Bloomfield,CT,06002,USA&sensor=false
ありがとう
マンディープ
推奨される形式は次のとおりです。
House Number, Street Direction, Street Name, Street Suffix, City, State, Zip, Country
明らかに、提供できる情報が少ないほど、結果の具体性は低くなります。
サンプルでは、ジオコーダーが「bloom」という名前の道路を検索していますが、CTではなくOHでも同様の一致があります。クエリから「ブルーム」を削除して検索すると、ブルームフィールド、CTが返されます。
Googleアドレス検索の定義:
address-ジオコーディングする住所を、当該国の全国郵便局で使用される形式で指定します。会社名やユニット、スイート、フロア番号などの追加の住所要素は避けてください。
https://developers.google.com/maps/documentation/geocoding/#geocoding
ジオコーダークエリをフォーマットして、成功したリクエストの数を最大化するにはどうすればよいですか?
ジオコーダーは、住所を地理座標にマッピングするように設計されています。したがって、クエリが成功する可能性を最大化するために、次のガイドラインに従ってジオコーダーリクエストをフォーマットすることをお勧めします。
答えが不完全であることがわかり、ソースがありませんでした。
こちらをご覧ください: https://developers.google.com/places/documentation/autocomplete#place_autocomplete_responses
GoogleのマップオートコンプリートAPIは、はるかに単純な形式を返します: "Street address、City、Country"これで、そのような文字列を使用して住所を検索でき、1つの正確な結果が得られます。さらに、オートコンプリートAPIを使用すると、詳細なリクエストに使用できる一意の識別子も取得されます。
住所の形式は、実際にいる場所に大きく依存します。米国では、「家番号、通りの方向、通りの名前、通りの接尾辞」が理にかなっている場合がありますが、ヨーロッパのほとんどではクエリが成功しません。
EUのほとんどの住所は「Kumpelstraat 25A」、「Psolevcu 331/26b」のように異なります(多くの場合「Streetname number suffix」)。
したがって、コードを単一の領域(米国、EUのほとんど)にバインドすると、フォーマットを適切にハードコーディングできます。
より柔軟なシステムが必要な場合は、ターゲットオーディエンスの適切なフォーマットを確認するか、googles APIのいずれかをクエリして、適切な文字列を自動的に取得する必要があります。リンクしたものは非常に優れていますが、1日あたり無料のリクエスト制限があるAPIキーが必要です。
私はこの質問につまずいて、私のために働いた解決策を見つけました:
答えはコンポーネントフィルタリングを使用して見つけることができると思います。 https://developers.google.com/maps/documentation/geocoding/#ComponentFiltering
JavaScriptの例:
var request = require('request');
var url = "https://maps.googleapis.com/maps/api/geocode/json?" +
"address=Herengracht 180" +
"&components=postal_code:1016 BR|country:NL" +
"&sensor=false";
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
else {
console.log('error', error);
}
});
アパートを避ける必要はありません。これは動作します:
https://maps.googleapis.com/maps/api/geocode/xml?address=14202+N+42nd+St+Unit+301+3361
「Apt」、「Room」、および「Suite」も同様に機能します
これらはすべて、301を下位前提として返し、「formatted_address」に「#301」として表示されます。
ポールが送ります...
「US」、「DE」、「FR」などの公式の国コードはうまく機能しないことがわかりました。それらを完全な国名に置き換えると、はるかに良い結果が得られます。
記載されているソースは見つかりませんでした。