我正在尝试使用Graticule对地址进行地理编码,但我遇到了一个令人烦恼的问题。在美国对地址进行地理编码时,该位置的region属性是两个字母的缩写而不是全名(OH而不是OH)。有没有办法检索全名?
答案 0 :(得分:0)
Looks like Graticule只传递各种服务的原始结果,只标准化属性名称。所以简短的回答是:只有使用当前在字段中返回全名的服务,Graticule才会映射到该服务的区域。
答案很长(或建议真的)。
我将使用哈希替换该值,例如,
US_STATES = {
'OH' => 'Ohio'
[...]
}
my_loc.region = US_STATES[my_loc.region] || my_loc.region
可能希望将其包含在国家/地区的支票中,但是您必须确保从服务中涵盖所有可能的国家/地区值,例如,
if my_loc.country =~ /\A\s*(US|U\.?S\.?A)\s*\z/i
这会让你有一些稳定性,所以改变服务或改变结果的服务,以后不会让你感到惊讶。
如果你感到无畏,可以叉Graticule并添加region_name和region_abbr方法(或类似方法),因为当前'region'具有可变含义/结果并发送拉请求...