フォームへの市/州の入力に基づいて郵便番号を検索する方法はありますか?GoogleジオコードAPIが正しい方向かもしれないと思っています。何かご意見は?私はWordpressで構築されたサイトを持っているので、コードはPHPを利用する必要があります。前もって感謝します。
3 に答える
ジオコーディングは、住所の座標を見つける場所です。はい、都市、州をジオコーディングすることはできますが、これにより、都市の中心が得られます(ジオコーダーの内部データベースで定義されているように、通常は重心または「市庁舎」です。
ほとんどの都市には複数の郵便番号があります。これらすべてが必要ですか?同様に、郵便番号には複数の都市が含まれる可能性があります。特に、郵便番号が大きくなる可能性があり、都市は他の国が「村」や「集落」と呼ぶ農村地域ではそうです。
したがって、おそらくデータベースを取得するのが最善の策です。周りに無料のものがあるかもしれませんが(Geonamesが思い浮かびますが、郵便番号はないと思います)、結局は購入しなければならないかもしれません。
YQLは次のようなことを行うことができます。
select name from geo.places.children where parent_woeid in (select woeid from geo.places where text="sunnyvale, usa" limit 1) AND placetype = 11
戻り値:
{
"query": {
"count": 6,
"created": "2011-03-16T06:49:09Z",
"lang": "en-US",
"results": {
"place": [
{
"name": "94086"
},
{
"name": "94087"
},
{
"name": "94088"
},
{
"name": "94089"
},
{
"name": "94090"
},
{
"name": "94085"
}
]
}
}
}
そこには、 PHPとJavascriptの両方でこのようなクエリを実装する方法の例があります。
Google APIに関する最初の注意:他の人が行ったように(時には無意識のうちに)無駄な道をたどらないように、 GoogleのTOSに注意してください。具体的には、「注:ジオコーディングAPIはGoogleマップと組み合わせてのみ使用できます。地図に表示せずに結果をジオコーディングすることは禁止されています。」
プロジェクトがミッションクリティカルでない場合は、無料の郵便番号データベースを入手するのが最善の策です。それ以外の場合は、おそらく優れた商用グレードのデータベースが必要になります。ただグーグル「商用グレードの郵便番号データベース」。
また、このトピックに関する優れたスタックオーバーフロースレッドを参照してください。