我需要在使用"Google 自动完成"输入完整地址后获取城市名称的唯一标识符。
我通过谷歌API自动完成的地方进行搜索,如下所示:
武利察·捷列申基夫卡, 4А 基辅, 乌克兰
从从谷歌收到的数据中,我得到了城市,我需要将其写入数据库中的单独表中,以便按城市进一步过滤,但名称不是检查重复项的确切标识符。
是否可以为城市获取一些唯一值以写入数据库?
我试过了:
- place_id:但他指着一个地方,而不是一个城市
- plus_code:价值并不总是城市独有的,出于某种原因,谷歌并不总是放弃它
要从"Vulytsya Tereshchenkivsʹka, 4А Kyiv, Ukraine"等完整地址的 Places API 自动完成搜索结果中获取城市组件的唯一标识符(地点 ID(,目前您必须发出额外的请求才能获取该特定组件的地点 ID。
如果您有坐标,则可以尝试对给定坐标 (50.444265,30.514581( 使用反向地理编码,并按locality
类型进行过滤。您应该获得以下地址:
Address: Kyiv, Ukraine, 02000
Location: 50.4501,30.5234
Place ID: ChIJBUVa4U7P1EAR_kYBF9IxSXY
下面是一个示例请求:https://maps.googleapis.com/maps/api/geocode/json?latlng=50.444265,30.514581&result_type=locality&key=YOUR_API_KEY
最后,由于地点 API 搜索结果中的地址组件目前没有每个单独组件的地点 ID,因此 Google 公共问题跟踪器中有一个功能请求 - 在每个address_components中添加place_id: https://issuetracker.google.com/issues/35827596
我建议您为其加星标以接收更新。
希望这有帮助!