2012-07-03 10 views
5

Używam interfejsu API GeoNames, aby uzyskać informacje o kraju i stanie/prowincji, których używam do wypełniania list wyboru w formularzu. Formularz przekazuje informacje do usługi sieciowej SOAP, a serwer SOAP obsługuje tylko dane dotyczące kraju i stanu/prowincji w postaci dwóch liter. to znaczy. CA w Kanadzie, USA w Stanach Zjednoczonych. Interfejs API GeoNames udostępnia te informacje dla różnych krajów, ale nie dla ich dzieci (stanów/prowincji).Uzyskaj 2-literowy skrót stanu/województwa

Czy ktoś wie, jak uzyskać dwuliterowy skrót dla stanu/prowincji/terytorium z GeoNames lub czy istnieje inne API, które mogę wypróbować?

Odpowiedz

1

nie jestem zaznajomiony z GeoNames API, ale wydaje się, że dostajesz kody alfa-2 kraju ISO-3166: http://www.iso.org/iso/country_codes.htm

Jeśli tak, ISO 3166-2: 2007 definiuje stany i prowincje. Powyższa strona opisuje sposób zakupu informacji w bazie danych i innych formatach.

Jeśli nie jest to wymagane, aby uzyskać te informacje z usługi sieciowej, uważam, że łatwiej jest odczytać listę rozwijaną z jakiegoś typu pliku statycznego i utworzyć mechanizm dla sporadycznych aktualizacji. Tego typu dane nie powinny się tak często zmieniać (przynajmniej w krajach stabilnych).

+0

Prawdopodobnie masz rację, nie potrzebuję korzystać z usługi sieciowej. –

2

W porozumieniu z @ user640118, skróty stanu nie zmieniają się często, jeśli w ogóle, w Ameryce Północnej. Najlepiej po prostu mieć statyczną listę kodów lub skrótów.

Jednak, aby odpowiedzieć na twoje pytanie, pracowałem nad jedną z takich usług internetowych o nazwie LiveAddress, która zapewnia dane geograficzne/pocztowe za pomocą prostego punktu końcowego usługi REST. Jest nieco bardziej zaawansowany w tym sensie, że akceptuje adres, częściowy lub kompletny, i wypełnia go całkowicie, weryfikuje i standaryzuje. Może się okazać, że jest to przydatne przy usuwaniu duplikatów i geokodowaniu danych użytkowników.

Jeśli masz adres, można użyć this wrapper function jak tak, to w JavaScript:

LiveAddress.verify("123 main st 12345", function(results) { 
    console.log(results); 
}); 

Przykładowe wyjście można znaleźć w docs API.

1

Geonames zapewnia dwuliterowe skróty dla krajów, ale ma je tylko dla stanów w kilku krajach.

Dlaczego nie oferują czegoś standardowego (i przydatnego), ponieważ jest to poza mną.