2011-01-11 54 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請求......

相關問題