我正在接受应该是地理位置的用户输入。我想验证用户输入的内容是否描述了一个位置——例如,邮政编码、机场代码、街道地址、城市名称等。
显而易见的答案是使用Google Geocode API来请求用户输入并查看我是否得到任何结果。)但是地理编码 ToS 禁止这样做:
...地理编码 API 只能与 Google 地图一起使用;禁止在未在地图上显示的情况下对结果进行地理编码。
有人知道替代品吗?
我正在接受应该是地理位置的用户输入。我想验证用户输入的内容是否描述了一个位置——例如,邮政编码、机场代码、街道地址、城市名称等。
显而易见的答案是使用Google Geocode API来请求用户输入并查看我是否得到任何结果。)但是地理编码 ToS 禁止这样做:
...地理编码 API 只能与 Google 地图一起使用;禁止在未在地图上显示的情况下对结果进行地理编码。
有人知道替代品吗?
雅虎还有一个地理定位 API,它的 TOS 限制较少。通过查询一个位置,如果您收到一个非null
结果集,那么您就知道它是一个有效的位置。
# A query for New York...
http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20geo.places%20where%20text='New+York'&format=json
# Results in a response
{"query":{"count":10,"created":"2013-01-11T18:40:32Z","lang":"en-US","results":{"place":[... places ... ] }}}
然而
# A query for junk
http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20geo.places%20where%20text='kqpo234xk'&format=json
# Results in null
{"query":{"count":0,"created":"2013-01-11T18:39:21Z","lang":"en-US","results":null}}