Ruby 如何通过geocoder gem获得完整的街道地址?
我正在使用谷歌的Ruby 如何通过geocoder gem获得完整的街道地址?,ruby,google-maps,google-maps-api-3,google-geocoder,street-address,Ruby,Google Maps,Google Maps Api 3,Google Geocoder,Street Address,我正在使用谷歌的geocoder来验证地址,并在地址被略微屏蔽时返回正确的值,以及获取纬度和经度。我想我在这里的实现可能有点不对劲,因为它感觉太笨重了,而且我发现一些地址缺少街道号码 我从以下代码开始: result = Geocoder.search(full_address_to_verify) if result != [] street_address = result[0].address_components[1]["long_name"] city = result[0].
geocoder
来验证地址,并在地址被略微屏蔽时返回正确的值,以及获取纬度和经度。我想我在这里的实现可能有点不对劲,因为它感觉太笨重了,而且我发现一些地址缺少街道号码
我从以下代码开始:
result = Geocoder.search(full_address_to_verify)
if result != []
street_address = result[0].address_components[1]["long_name"]
city = result[0].address_components[2]["long_name"]
state = result[0].address_components[5]["long_name"]
zip = result[0].address_components[7]["long_name"]
end
我发现有时候我会得到多个结果,所以我会选择第一个(上面的[0]
)。此外,我还发现了一些奇怪之处,大多数时候result[0]。address\u components[1]
包含完整地址,包括街道号,但偶尔不包含,我必须添加result[0]。address\u components[0]
。我还没有找到一个押韵或理由
最终,我的目标是将USA street number+street、city、state和zip code字段检索到单独的变量中
所以我的问题是,有没有更好的方法来检索地址,以便街道号码始终与路线正确关联
从文档中,我并没有看到任何干净的方法,它们只是简单地给我所需的地址字段,而不从请求-答复的各个字段中提取数据…对,
address\u组件
应该使您能够完成您想要完成的任务。有关押韵
,您可以参考
Google Maps API通过在此位置放置字符串来标记此字段属于哪种组件:
result[0].address_components[i].types[0]
您应该根据类型获得相应的值,而不是地址\u组件的位置
这是谷歌在其网站上的做法:
var组件形式={
街道编号:“短名称”,
路线:'long_name',
地点:'long_name',
行政区域级别1:“短名称”,
国家:'long_name',
邮政编码:“短名称”
};
...
...
//从place details中获取地址的每个组件
//并在表单上填写相应的字段。
对于(变量i=0;i
没错,地址\u组件应能让您完成想要完成的任务。有关押韵
,您可以参考
Google Maps API通过在此位置放置字符串来标记此字段属于哪种组件:
result[0].address_components[i].types[0]
您应该根据类型获得相应的值,而不是地址\u组件的位置
这是谷歌在其网站上的做法:
var组件形式={
街道编号:“短名称”,
路线:'long_name',
地点:'long_name',
行政区域级别1:“短名称”,
国家:'long_name',
邮政编码:“短名称”
};
...
...
//从place details中获取地址的每个组件
//并在表单上填写相应的字段。
对于(变量i=0;i
晚会晚了几年。从google地理编码API中提取地址非常简单,而且使用嵌套的地址组件相当麻烦
幸运的是,geocoder gem具有访问地址信息的内置方法。请阅读更多关于。晚会晚了几年。从google地理编码API中提取地址非常简单,而且使用嵌套的地址组件相当麻烦
幸运的是,geocoder gem具有访问地址信息的内置方法。请阅读更多关于