2011-01-11 5 views
0

Ich versuche Graticule zu verwenden, um eine Adresse zu geocodieren, aber ich stoße auf ein lästiges Problem. Bei der Geokodierung einer Adresse in den USA ist das Gebietsattribut vom Standort die Abkürzung mit zwei Buchstaben anstelle des vollständigen Namens (OH statt Ohio). Gibt es eine Möglichkeit, den vollständigen Namen abzurufen?Graticule Geocoding Problem

Antwort

0

Looks like Graticule passiert nur die Rohergebnisse der verschiedenen Dienste und normalisiert nur die Attributnamen. Die kurze Antwort lautet also: Nur wenn Sie einen Dienst verwenden, der derzeit den vollständigen Namen in dem Feld zurückgibt, in dem Graticule die Region für diesen Dienst abbildet.

Lange Antwort (oder Vorschlag wirklich).

Ich würde den Wert mit einem Hash ersetzen, zB

US_STATES = { 
    'OH' => 'Ohio' 
    [...] 
} 

my_loc.region = US_STATES[my_loc.region] || my_loc.region 

Wahrscheinlich, dass für Land in einem Scheck wickeln würde wollen, aber dann würden Sie müssen sicher sein, alle mögliche Land abzudecken Werte aus den Diensten, zum Beispiel

if my_loc.country =~ /\A\s*(US|U\.?S\.?A)\s*\z/i 

, dass Sie einige Stabilität so zu ändern Service oder Dienste ändern ihre Ergebnisse, werden Sie nicht später bekommen würde überraschen.

Wenn Sie unerschrockenen spürten, könnte Gradnetz Gabel und region_name und region_abbr Methoden (oder dergleichen), da der Strom ‚Region‘ hat variable Bedeutungen/Ergebnisse und senden Pull-Request ...

hinzufügen