市区町村名に基づいてカナダの代表的な郵便番号を取得する必要があります。私の最初のアプローチは、GoogleのジオコーディングAPIを使用して都市、州を[lat,lng]
逆ジオコードに変換して、一致するアドレスを取得し、そこから郵便番号を抽出することでした。都道府県はGoogleマップのオートコンプリートを使用するフォームから来ているため、(少なくともほぼ)常に有効となることはわかっています。いくつかのテストでは、これは正常に動作していますが、私は実際には失敗した実際のデータのケースに直面しました:Snow Lake、マニトバ。ジオメトリセクションでGoogleの逆ジオコーディングから確実に郵便番号を見つける方法
https://maps.googleapis.com/maps/api/geocode/json?address=Snow+Lake%2C+Manitoba&key=MYKEY
、私が取得:
location
lat 54.87856679999999
lng -100.0220321
location_type "APPROXIMATE"
しかし、私は(精度のさまざまなレベルを含む)、その場所の検索を行うたびに、私は含まれていない結果を取り戻します郵便番号。
https://maps.googleapis.com/maps/api/geocode/json?latlng=54.8785668,-100.0220321&key=MYKEY
私もいろいろなものから返されるplace_id
、ない運でこれを試してみました。奇妙なことに、Google MapsのSnow Lake、Manitobaを検索すると、それが特定され、郵便番号がR0B 1M0であることがわかります。だからなぜ彼らのサイトは良い情報を与えるが、APIはないのですか? 2番目のURLの場所を、検索後のURL(54.8808471、-100.0274579)にあるGoogleマップの場所に置き換えても、私はまだ郵便番号を返しません。それはその場所(531湖畔のドライブ)のために与える。
Google Mapsで一部の通りの名前を調べると、117 Balsam St.を検索すると、郵便番号と郵便番号を取得するためにジオコードを逆転できる場所の両方が表示されることがわかりました。しかし、私の入ってくるデータには、市町村だけの通り名や番号がないので、これは解決策ではありません。この住所は、私がいくつかの他のもののために得るAPPROXIMATEまたはRANGE_INTERPOLATEDではなく、location_typeのROOFTOPを与えてくれます。
誰もがここでの取引が分かりますか?私はこのAPIから必要なものを得るために使うことができる信頼できる方法があるのでしょうか?それとも単にヒット・アンド・ミスの命題になるのでしょうか?
優秀、ありがとう!これは完全に機能します。私は、ロンドン、イングランドの代わりにオンタリオ州のロンドンで結果を出さないという別の質問を書き始めましたが、それは不思議なことに働き始めました。おそらくすべてのデバッグクエリで、私はカナダの住所にしか興味がないと訓練されています... –