在注册期间规范化/验证用户的“城市”输入

时间:2010-07-09 23:20:24

标签: php jquery validation location city

我的问题涉及在注册期间验证/规范用户对Country和'City'组合的输入。理想情况下,我想要的功能类似于OkCupid(http://www.okcupid.com/signup)注册页面,其中提出了这个问题。失去对City输入字段的关注会以某种方式验证输入,并且它非常好。我在澳大利亚农村(pop。< 6000)和芬兰的一个随机城镇尝试了一个乡村小镇,两者都得到了正确和快速的验证。

规范化/验证很重要,因为我想规范化用户生成的事件实体的“城市”字段,以允许匹配同一位置的用户。

从应用程序逻辑的角度来看这个验证是有意义的(我不想处理'NYC'='纽约市'='纽约,纽约'='纽约'泥潭),以及用户视角(其他用户了解用户的位置)。

我正在使用PHP和jQuery,如果这有所不同,但此时的任何解决方案都比没有任何解决方案更有希望!

提前致谢!

编辑:解决了! Yahoo提供了PlaceMaker API - 自由格式的位置字符串解析!每天50,000个请求限制:

http://developer.yahoo.com/geo/placemaker/

3 个答案:

答案 0 :(得分:2)

解决! Yahoo提供了PlaceMaker API - 自由格式的位置字符串解析!每天50,000个请求限制:

http://developer.yahoo.com/geo/placemaker/

答案 1 :(得分:1)

出于验证目的,以下网站引用了一个非常全面(和免费!)的国际城市数据库。

http://earth-info.nga.mil/gns/html/

正常化是一个更难的问题。为此,您很可能需要使用专有产品。谷歌地图可能是一种选择。

答案 2 :(得分:1)

验证城市名称的一种好方法是将文本视为地址,并将其转换为坐标,即名为geocoding的过程。地理编码还为每个已识别的位置提供附加数据,您可以使用它来确保它符合您的要求。

Google API支持地理编码,免费提供2500 requests per day

您可以使用现有库与API进行交互,例如node-geocodergeocoder-php。这些库还支持一长串其他geocoding providers