Rails geocoder gem 反向地理编码地址格式自定义

Rails geocoder gem reverse geocoding address format customization

我正在使用地理编码器 gem 对给定对象的纬度和经度的位置进行反向地理编码。这很好用,但是,我想更改结果,以便仅显示完整地址的所需部分。

在某些特定情况下,我只想删除输出的最后一位,所以我只是使用类似的东西:

<%= @object.address.to_s.chomp(', USA') %>

对于任何给定的实例。

但是,我想知道是否有更动态的选项 return 仅邮政编码,仅国家/地区等

您正在使用的 @object 可能是 Geocoder::Result::Google.

的实例

如果您查看 Geocoder::Result::Google 的文档,您会发现有多种方法可以访问地址的组成部分,例如邮政编码、国家/地区等。

这里有一些例子

address = @object.address
puts address.postal_code  #=> 10010
puts address.city         #=> Manhattan
puts address.state_code   #=> NY
puts address.country_code #=> USA

如果您正在寻找的组件在方法中不可用,您可以直接使用 address_components_of_type

puts @object.address_components_of_type(:street_number) #=> 1600

您可以在此处找到完整的组件列表: https://developers.google.com/maps/documentation/geocoding/intro#Types