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
我正在使用地理编码器 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