我正在使用Google Places API根据邮政编码或邮政编码找出某个人所在的城市。
例如,获取邮政编码“SW1A 1AA”的城市:
https://maps.googleapis.com/maps/api/place/autocomplete/json?key=[KEY]&input=sw1a%201aa
返回一个预测:
{
"predictions": [
{
...
"structured_formatting": {
"main_text": "SW1A 1AA",
"main_text_matched_substrings": [...],
"secondary_text": "London, UK"
},
"terms": [
{
"offset": 0,
"value": "London"
},
{
"offset": 7,
"value": "SW1A 1AA"
},
{
"offset": 17,
"value": "UK"
}
],
...
}
],
"status": "OK"
}
它标识它位于伦敦。
但是,我想具体了解这个城市或国家。所以我按照Google Places API docs:
的指示添加types=(country)
https://maps.googleapis.com/maps/api/place/autocomplete/json?types=(country)&key=[KEY]&input=sw1a%201aa
返回:
{
"predictions": [],
"status": "INVALID_REQUEST"
}
如果我们尝试城市,也一样:
https://maps.googleapis.com/maps/api/place/autocomplete/json?types=(cities)&key=[KEY]&input=sw1a%201aa
{
"predictions": [],
"status": "ZERO_RESULTS"
}
我知道有很多类似的问题,但主要是限制一个区域。我不需要或不想限制某个区域,我只想根据Google的文档返回城市(或等价物)。
有人知道我是否错误地阅读了文档?有没有办法做到这一点?
答案 0 :(得分:2)
如果您想使用Google API将邮政编码与地点匹配,那么我会使用地理编码API(请注意,我认为您需要一个新的API密钥)
https://maps.googleapis.com/maps/api/geocode/json?address=sw1a%201aa&key=APIKEY
types=(country)
没有返回任何内容,因为这不是自动填充中的标志。您强制API将您的查询视为国家/地区,而不是,因此它不返回任何内容。使用地点类型标志的正确查询将是:
https://maps.googleapis.com/maps/api/place/autocomplete/json?key=APIKEY&input=sw1a%201aa&type=(regions)
如果您感兴趣,http://postcodes.io/是将邮政编码转换为地点的另一个有用资源。