javascript - Google Places API 正在删除某个地址中的 sublocality_level_1。为什么?
问题描述
我正在使用Place Autocomplete Address Form来检索有关地址的信息。
它工作正常,但在某些地址中,sublocality_level_1
没有被退回。
地址 1: Rua Barão de Ipanema - Copacabana, Rio de Janeiro - 巴西里约热内卢州
- 街道:Rua Barãode Ipanema(地址类型:路线)
- 社区:科帕卡巴纳(地址类型:sublocality_level_1)
- 城市:里约热内卢(地址类型:administrative_area_level_2)
- 州:里约热内卢州(地址类型:administrative_area_level_1)
- 国家:巴西(地址类型:国家)
地址 2: Rua Clarimundo de Melo - Piedade, Rio de Janeiro - 巴西里约热内卢州
- 街道:Rua Clarimundo de Melo(地址类型:路线)
- 邻里:Piedade(缺少 sublocality_level_1 addressType)
- 城市:里约热内卢(地址类型:administrative_area_level_2)
- 州:里约热内卢州(地址类型:administrative_area_level_1)
- 国家:巴西(地址类型:国家)
在里约热内卢,“Copacabana”和“Piedade”是社区。是同类型的信息。
我们还有其他例子:
- AV。Vieira Souto - 伊帕内玛,里约热内卢 - 巴西里约热内卢州(正确返回 sublocality_level_1 - 伊帕内玛)
- Estrada Adhemar Bebiano - Del Castilho, Rio de Janeiro - 巴西里约热内卢州(请勿退回 sublocality_level_1 - Del Castilho)
“Copacabana”、“Piedade”、“Ipanema”和“Del Castilho”是社区。
但是,如果我插入 STREET NUMBER,sublocality_level_1
则会返回。参见示例:Rua Clarimundo de Melo, 460 - Piedade, Rio de Janeiro - 巴西里约热内卢州
所有这些测试都是在 Google Places API 示例页面上完成的:https ://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
我插入地址并使用 Google Chrome Inspector,我看到了返回的值。
2其他奇怪的事情:
- 格式化的地址是:
formatted_address: "Rua Clarimundo de Melo, Rio de Janeiro - RJ, Brazil"
- 地址输入字段中的值不同 - url 中的查询字符串与地址输入字段不同:
url: "https://maps.google.com/?q=Rua+Clarimundo+de+Melo,+Rio+de+Janeiro+-+RJ,+Brazil&ftid=0x997d3beb826455:0xbe0de6bc2d7d1c22"
我不知道为什么结构相同的 4 个地址有不同的返回值。
有人知道为什么吗?我很感激任何帮助。
编辑 1 - 强烈的嫌疑人
多个社区
现在我脑子里有些东西。“Rua Clarimundo de Melo”和“Estrada Adhemar Bebiano”穿过一些街区。
“Rua Barão de Ipanema”和“Av. Vieira Souto”只穿过一个街区。
我测试了另外两条街道:
“Avenida Ataulfo de Paiva - Leblon, Rio de Janeiro - 巴西里约热内卢州” - 仅穿过 Leblon(社区)并返回
sublocality_level_1
“Avenida Atlântica - Leme,里约热内卢 - 巴西里约热内卢州” - 穿过 2 个街区(Leme 和 Copacabana)并且不要返回
sublocality_level_1
.
这是一个怀疑,因为在任何地方都没有记录。这就是为什么它只是一个怀疑。一个强烈的怀疑,但一个怀疑。
如果我的怀疑是正确的,如果用户在输入中手动插入邻域,为什么不返回邻域?
这还不清楚。用户键入邻居...
反向地理编码
我正在测试Geocoder Tools中的地址。sublocality_level_1
尚未归还。但是,如果我将坐标放在Reverse Geocode中,vòila会sublocality_level_1
返回。
也许,这是一个解决方案,但我不知道是否是一个正确的解决方案。因为我需要向 Google Places API 发出 2 个请求以获取位置信息,并且请求有一个月的限制。2个请求会导致效率低下。
- 请求1:获取地址信息。
- 请求2:如果没有
sublocality_level_1
,使用反向地理编码获取完整的地址信息。
解决方案
推荐阅读
- html - 在电子邮件 HTML 表单中进行身份验证
- iis - 无法读取配置文件 - 已更新
- c# - 无法从 Rest API 获取数据 - HTTP ERROR 500 - C#
- php - 为什么变量值更改为数组进入函数范围?PHP
- python - peewee 选择在使用模型实例而不是直接使用模型时不起作用的地方
- sockets - 多个客户端 - 服务器聊天应用程序,不允许同一端口上的多个侦听器
- javascript - Vue.js 中基于复选框输入的条件渲染
- mongodb - mongo atlas 是否支持内存存储?
- azure-service-fabric - 从服务结构环境 xml 文件访问环境变量值
- visual-studio - 为什么我从 Visual Studio 2017 收到错误提示?