我正在使用谷歌地理编码API按需存储数据库中的城市。我提供了一个输入字段供用户输入他们的城市。我使用谷歌搜索自动完成功能。
我想将输入字段中输入的城市及其国家/地区存储起来。使用输入字段中的with data调用Google地理编码API,以JSON格式返回数据。
我调查了address_components
国家。然后我在address_components
types = locality
中获取了对象。问题是,对于输入字段中输入的某些位置,Google地理编码API中的JSON没有types = locality
。因此,在这些情况下,我应该将address_components
中的哪一个对象作为城市存储在我的数据库中
这个网站是谷歌地理编码api https://findcity.in/
需要建议。这个问题可能不清楚。所以我编辑了它。感谢
答案 0 :(得分:2)
您说得对,locality
类型并不总是出现在地址组件数组中。根据国家/地区甚至同一国家/地区的不同,可以在不同的地址组件中找到城市名称。这取决于使用Google的特定区域和地址模板的数据建模。不幸的是,每个国家都没有这方面的文件。
在官方文档中,您可以找到以下说明
此示例中特定地址组件的选择基于典型的地址格式。您可能需要选择不同的组件以与不同国家/地区的邮政地址格式保持一致。例如,代码选择 locality 组件,该组件通常代表地址的城市部分。但是,请注意以下组件可能有所不同的示例:
在英国和瑞典,展示城市的正确组件是postal_town。
在日本,不同地区的成分不同。
布鲁克林和纽约市的其他地方不包括该城市作为地址的一部分。他们使用sublocality_level_1代替。
来源:https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
我希望这有点帮助。
答案 1 :(得分:-1)
administrative_area_3
表示国家级以下的三级民事实体。
这方面的一个示例是Montgomery
在Montgomery County
之前返回Montgomery, AL
处于特定状态的搜索查询。部分原因是区域偏差会根据您当前的位置返回指定的结果。
Here is some documentation from Google这会超过GeocoderResult
。
我们建议您在直接提问之前先确保查看Google Maps API参考指南。它非常强大,你可以在那里找到很多有用的信息。