2011-01-11 55 views
0

我正在尝试使用经纬网对地址进行地理编码,但我遇到了一个烦人的问题。在美国对地址进行地理编码时,位置的地区属性是两个字母的缩写,而不是全名(OH而不是俄亥俄州)。有没有办法检索全名?经纬网地理编码问题

回答

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 

这将让你一些稳定性,从而改变服务,或服务改变他们的结果,会不会以后会让你大吃一惊。

如果你感觉强悍,可以叉格子线,因为当前的“区域”具有可变含义/结果添加REGION_NAME和region_abbr方法(或类似),并发送pull请求......

相关问题