2012-03-14 8 views
6

मैं अपने कार्य के साथ गड़बड़ करना चाहता था और ज़िप कोड के बजाय शहर के नाम से मौसम की खोज करना चाहता था (मैंने इसे अभी कैसे स्थापित किया है)। शहर नाम इनपुट स्ट्रिंग का उपयोग करने का सबसे आसान तरीका क्या होगा और इसमें से एक ज़िप कोड प्राप्त होगा? मदद बहुत सराहना की है! धन्यवाद!शहर के नाम से ज़िप कोड प्राप्त करने का सबसे आसान तरीका

+0

वहाँ के लिए एक jQuery-प्लगइन है कि https://github.com/Loceo/loceo-jquery-plugin – Gustav

उत्तर

12

Google आपकी मदद कर सकता है!

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

ज़िप वास्तव में गूगल द्वारा "postal_code" कहा जाता है।

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

उदाहरण के लिए, मान लीजिए कि आप Clarkston, एमआई के लिए ज़िप प्राप्त करना चाहते हैं ...

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

यह रिटर्न:

{ 
    "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" 
} 

संपादित

हैं आपको उस पहले कॉल के साथ डाक कोड नहीं मिल रहा है, आपको दूसरा सी बनाना होगा पहले कॉल से निर्देशांक का उपयोग कर एक ही वेब सेवा के लिए सभी। फिर भी बहुत सरल - Stevens Point के लिए कॉल, WI के रूप में निम्नानुसार होगा:

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

आप "स्थान" से अक्षांश/एलएनजी मूल्यों हड़पने कर सकते हैं। उम्मीद है की यह मदद करेगा!

+1

ठीक है, अच्छी तरह से मैंने सोचा यह बहुत अच्छा था, इसे लागू किया था और वहाँ किसी भी के लिए कोई पिन कोड की हैं मेरे आस-पास के क्षेत्र में लौट आया: ग्रीन बे वाई, स्टीवंस प्वाइंट वाई, वौसौ वाई .... –

+1

दिलचस्प। खैर मुझे लगता है कि आपको एक अतिरिक्त कदम उठाना होगा। यदि पहले रन पर कोई पोस्टल कोड प्रस्तुत नहीं किया गया है, तो "स्थान" से लैट और एलएनजी मानों को पकड़ें और इसे उसी वेब सेवा के माध्यम से चलाएं। मेरा अपडेट देखें। –

-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 
संबंधित मुद्दे