使用Google API生成基于城市和州的邮政编码

时间:2010-11-11 20:35:35

标签: php wordpress forms google-maps geocode

是否有办法根据表单中的城市/州输入进行邮政编码查找?我认为Google地理编码API可能是正确的方向。有什么想法吗?我有一个基于Wordpress的网站,因此代码必须使用PHP。提前谢谢。

3 个答案:

答案 0 :(得分:1)

地理编码是您找到地址坐标的地方。是的,你可以对一个城市进行地理编码,州,但这会让你成为城市的中心(由地理编码器的内部数据库定义 - 通常是质心或'市政厅'。

大多数城市都有多个邮政编码:您想要所有这些吗? 类似地,邮政编码可以包含多个城市 - 特别是在农村地区,邮政编码可能很大,城市是其他国家所谓的“村庄”和“村庄”

所以你最好的选择可能是获得一个数据库。可能会有一些免费的(Geonames浮现在脑海中,但我认为它没有邮政编码),但你最终可能不得不买一个。

答案 1 :(得分:1)

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"
    }
   ]
  }
 }
}

YQL Console

有关于如何在其网站上的PHPJavascript中实现此类查询的示例。

答案 2 :(得分:0)

首先关于Google API的说明:注意Google's TOS,这样就不会像其他人那样(有时不知不觉)采取浪费的路径。具体来说:“注意:Geocoding API只能与Google地图一起使用;禁止在地图上显示地理编码结果。”。

如果您的项目不是关键任务,最好的办法是获得free zip code database;否则,你可能需要一个好的商业级数据库。只需谷歌“商业级邮政编码数据库”。

另外,请参阅有关此主题的stack-overflow thread