2012-03-14 10 views
6

Chciałem zadzwonić z moim przydziałem i wyszukać pogodę według nazwy miasta, a nie kodu pocztowego (jak to mam teraz skonfigurować). Jaki byłby najłatwiejszy sposób użycia łańcucha wejściowego nazwy miasta i uzyskania z niego kodu pocztowego? Pomoc jest bardzo cenna! Dzięki!Najprostszy sposób na otrzymanie kodu pocztowego od City Name

+0

Istnieje plugin do jQuery że https://github.com/Loceo/loceo-jquery-plugin – Gustav

Odpowiedz

12

Google może Ci pomóc!

https://developers.google.com/maps/documentation/geocoding/

Suwak jest w rzeczywistości nazywa się "postal_code" przez Google.

"long_name": "94043", 
    "short_name": "94043", 
    "types": postal_code 

Na przykład, powiedzmy, że chcesz uzyskać pocztowy Clarkston, MI ...

http://maps.googleapis.com/maps/api/geocode/json?address=Clarkston+MI&sensor=true

ta zwraca:

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "Clarkston", 
       "short_name" : "Clarkston", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Oakland", 
       "short_name" : "Oakland", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "Michigan", 
       "short_name" : "MI", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "United States", 
       "short_name" : "US", 
       "types" : [ "country", "political" ] 
      }, 
      { 
       "long_name" : "48346", 
       "short_name" : "48346", 
       "types" : [ "postal_code" ] 
      } 
     ], 
     "formatted_address" : "Clarkston, MI 48346, USA", 
     "geometry" : { 
      "bounds" : { 
       "northeast" : { 
        "lat" : 42.7418310, 
        "lng" : -83.41402409999999 
       }, 
       "southwest" : { 
        "lat" : 42.7252370, 
        "lng" : -83.42880730000002 
       } 
      }, 
      "location" : { 
       "lat" : 42.73511960, 
       "lng" : -83.41929410 
      }, 
      "location_type" : "APPROXIMATE", 
      "viewport" : { 
       "northeast" : { 
        "lat" : 42.74331460, 
        "lng" : -83.40328670 
       }, 
       "southwest" : { 
        "lat" : 42.72692350, 
        "lng" : -83.43530149999999 
       } 
      } 
     }, 
     "types" : [ "locality", "political" ] 
     } 
    ], 
    "status" : "OK" 
} 

EDIT

Jeśli nie otrzymujesz kodu pocztowego z tym pierwszym połączeniem, będziesz musiał zrobić sekundę c wszystkie do tej samej usługi internetowej, używając współrzędnych od pierwszego połączenia. Nadal bardzo prosta - wezwanie do Stevens Point, WI byłby następujący:

http://maps.googleapis.com/maps/api/geocode/json?latlng=44.52357920000001,-89.5745630&sensor=true

można pobrać wartości szer/LNG z "location". Mam nadzieję że to pomoże!

+1

Dobra, myślałem, że to był świetny, miał on realizowany i nie istnieją żadne kody pocztowe dla dowolnego z mojej okolicy powrócił: Green Bay wi, Stevens Point wi, wausau wi .... –

+1

Interesujące. Więc, w takim razie musisz zrobić jeszcze jeden krok. Jeśli w pierwszym uruchomieniu nie przedstawiono kodu pocztowego, pobierz wartości lat i lng z "lokalizacji" i uruchom go za pośrednictwem tej samej usługi internetowej. Zobacz moją aktualizację. –

-1
var res; // store response in res variable 
var add_array = res[0].address_components; //add_array = { 
       "long_name" : "Clarkston", 
       "short_name" : "Clarkston", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Oakland", 
       "short_name" : "Oakland", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "Michigan", 
       "short_name" : "MI", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "United States", 
       "short_name" : "US", 
       "types" : [ "country", "political" ] 
      }, 
      { 
       "long_name" : "48346", 
       "short_name" : "48346", 
       "types" : [ "postal_code" ] 
      } 
    var add_array = add_array[add_array.length-1]; //add_array = { 
        "long_name" : "48346", 
        "short_name" : "48346", 
        "types" : [ "postal_code" ] 
       } 
    var zip = add_array.long_name; //zip = 48346 
Powiązane problemy