2017-08-08 54 views
0

我为我的项目使用Google Places API,发现不同的地方在他们的地址组件中会有不同的本地化名称。有没有办法解决Google Places API调用中的国际化不一致问题?

例如:

  • 在里斯本(葡萄牙)一些地方将有Lisbon一个locality名,而其他人将有Lisboa
  • 巴塞罗那的一些地方将有administrative_area_level_1名称Catalonia,而其他人将有Catalunya

我的问题是:

  1. 有没有办法使用相同的语言来获得一致的结果?
  2. 有没有办法帮助Google修复这种不一致的行为?

ps:我的目的是为了能够从Google Places API数据中执行基于文本的搜索,而这些本地化的差异并没有帮助。

回答

1

这可能按预期工作,或者某些地方的地址在Google地图上注册的方式不一致。

本地语言(里斯本,加泰罗尼亚语)用于街道级地址,而用户的首选语言用于其他地方(邮政编码和政治实体)是预期的行为。反向地理编码,而更喜欢非本地语言表明这一点:

https://maps.googleapis.com/maps/api/geocode/json?&latlng=38.716322,-9.149895&language=en

  1. street_address:R.塞西德索萨84,1200-009 里斯本,葡萄牙
  2. locality里斯本,葡萄牙

https://maps.googleapis.com/maps/api/geocode/json?&latlng=41.738528,1.851196&language=en

  1. street_address:C-16C,2,08243曼雷沙,巴塞罗那(加泰罗尼亚),西班牙
  2. postal_code:08243 Manresa的,巴塞罗那(加泰罗尼亚),西班牙

(加泰罗尼亚/加泰罗尼亚/加泰罗尼亚通常不在formatted_address

但是,可能有地址注册时没有正确链接到适当的政治实体,例如使用“加泰罗尼亚”作为硬编码的地址组件,而不是作为对administrative_area_level_1本身的引用。这些名称会出现不一致的名称,即使是街道级别的地址也是如此。这种情况应该很少见,但请在发现时考虑filing a bug

+0

因此,如果我理解正确,例如在你的Manresa/Barcelona例子中,'address_components'的'administrative_area_level_1'部分引用'Catalonia **'为'administrative_area_level_4'类型的结果,'administrative_area_level_2 '和'administrative_area_level_1',但是指的是** Catalunya **对于'administrative_area_level_3'类型的结果是一个错误? (因为**加泰罗尼亚**是正确的英文单词,它也应该用于'administrative_area_level_3') –

+0

也许。对于每个结果,所有地址组件都以相同语言(国家除外)返回,这是从第一个组件中选择的。如果第一个组件不能以请求的确切语言提供,则使用类似的语言。在administrative_area_level_3“El Bages”的情况下,看起来这个名字只在Calatan中可用,因此使用Catalunya(而不是Catalonia)名称。 – miguev