我有一份北美城市的列表,这些城市与省份和国家不一致。示例:
- 加拿大卡尔加里
- 卡尔加里-阿尔伯塔省
- 加拿大卡尔加里
我想对每个城市进行格式化,使其遵循一致的模式。因此,它包括市州/省和国家。类似:
- 加拿大卡尔加里阿尔伯塔省
我试着使用Google的Places API来获取可能的格式化建议,但我所能实现的只是一种验证,表明是否存在这样的城市。我想知道是否有人与Google API广泛合作,可以指导我如何从城市输入中获取城市/省份-州/国家建议(可能是JSON格式)。
var input = "City Name";
var service = new google.maps.places.AutocompleteService();
service.getQueryPredictions({ input: input }, callback});
我试着研究地理编码,但这似乎带回了lat/log信息。
地理编码API就是您想要的。
尝试
http://maps.googleapis.com/maps/api/geocode/json?address=Calgary,%20Alberta&sensor=false
它将以多种方式返回完全格式化的地址信息(按管理级别划分,格式化为地址等)
{
"results" : [
{
"address_components" : [
{
"long_name" : "Calgary",
"short_name" : "Calgary",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Division No. 6",
"short_name" : "Division No. 6",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Alberta",
"short_name" : "AB",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Kanada",
"short_name" : "CA",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Calgary, Alberta, Kanada",
formatted_address
组件是德语("Kanada"),因为我的浏览器语言是德语。您可以使用hl
参数定义输出应使用的语言。
注意,从技术上讲,根据他们的T&C、 只允许使用地理编码API来准备要在谷歌地图上显示的数据。