2012-01-03 6 views
6

में पता इनपुट मान्य करना मेरे ऐप में, मुझे एक उपयोगकर्ता पता (यूएस) लेना है। उपयोगकर्ता को एक वैध पता टाइप करने की आवश्यकता है। इसे कैसे प्राप्त किया जा सकता है? क्या कोई पुस्तकालय है जो मुझे राज्यों, शहरों और सड़क के नामों के नाम से मदद कर सकता है? यदि संभव हो तो मैं ऑटोोटाइप का उपयोग करना चाहूंगा। मैंने जियोकोडिंग पढ़ा लेकिन मुझे नहीं लगता कि यह मेरी मदद करेगा क्योंकि उपयोगकर्ता वर्तमान स्थान से पता दर्ज नहीं कर रहा है।एंड्रॉइड

+0

पते को कितना सटीक होना चाहिए? क्या यह सिर्फ ज़िप कोड और राज्य है, या आपको शहर के नाम और सड़क के पते की भी आवश्यकता है। ध्यान रखें कि एक ही स्थान पर कई वैध पते हो सकते हैं, उदाहरण के लिए, एक सड़क एक ऐसे राजमार्ग के साथ राजमार्ग हो सकती है जिसे पूर्व नाम भी दिया जाता है: राजमार्ग 10 को मुख्य सेंट भी कहा जाता है जहां यह स्प्रिंगफील्ड के माध्यम से चलता है। – ethan

+0

यह सटीक होना चाहिए .. यह कैसे जीपीएस डिवाइस करता है? इसमें राज्य, शहर और सड़क संख्या है जहां उपयोगकर्ता टाइप करते हैं और फिर जीपीएस पते पाते हैं और इसे उपयोगकर्ता को दिखाते हैं। यदि उपयोगकर्ता मार्ग से खोजने के लिए सहमत होता है। मुझे वही चीज़ चाहिए। –

उत्तर

0

क्षेत्र कोड को मान्य क्यों नहीं करें? आपको ऐसा करके बचाया जाना चाहिए।

2

Google API का उपयोग करके मैं यह स्थान ढूंढने के लिए यही करता हूं। शायद यह आपकी मदद करेगा:

 Geocoder geoCoder = new Geocoder(context, Locale.getDefault());  
     try { 
      List<Address> addresses = 
        geoCoder.getFromLocationName(travel.getAddress() + "," + 
      travel.getCity() + "," + travel.getState() + "," + travel.getCountry(), 3); 

      if (addresses.size() > 0) { 
       point = new GeoPoint(
         (int) (addresses.get(0).getLatitude() * 1E6), 
         (int) (addresses.get(0).getLongitude() * 1E6)); 
       travel.setLatitude(String.valueOf(point.getLatitudeE6())); 
       travel.setLatitude(String.valueOf(point.getLongitudeE6())); 
       long res = travel.update(context, null); 
       if (res < 1){ 
        result = false; 
       } 

      }  
     } catch (IOException e) { 
      e.printStackTrace(); 
      result = false; 
     } 
+1

यहां यात्रा क्या है? –

0

पता इनपुट को साफ करने और अपेक्षित प्रारूप में इसे मानकीकृत करने के कई तरीके हैं। लेकिन एक पता सत्यापित करने का एकमात्र असली तरीका यह सुनिश्चित करने के लिए कि यह वास्तविक और सही दोनों है, पता सत्यापन सेवा का उपयोग करना है।

किसी पते को मानकीकृत करना यह सुनिश्चित करने के बारे में है कि चीजों को अच्छी तरह से दिखाना - जैसे टेलीफ़ोन नंबर या ईमेल पता को स्वरूपित करना और मानकीकृत करना। लेकिन डेटा जो केवल अच्छा दिखता है वह पर्याप्त नहीं है। आपको डेटा की आवश्यकता है कि अच्छा है। उदाहरण के तौर पर, क्या आप एक ऑर्डर स्वीकार करेंगे यदि कोई उपयोगकर्ता क्रेडिट कार्ड प्रदान करता है जो अच्छा हो सकता है? या आप एक क्रेडिट कार्ड चाहते हैं कि अच्छा है? यह पते के साथ ही है। यदि आप कोई पता एकत्र कर रहे हैं, तो यह जानना अच्छा होगा कि यह वास्तविक, वितरित करने योग्य है, और आपके इच्छित उद्देश्य के लिए उपयोग किया जा सकता है। अन्यथा, यह सिर्फ जंक डेटा है - कचरा, कचरा बाहर।

सौभाग्य से आपके मामले में, क्योंकि उपयोगकर्ता एंड्रॉइड आधारित डिवाइस पर है, तो उनके पास इंटरनेट कनेक्टिविटी की संभावना होगी जो आपको तृतीय पक्ष पता सत्यापन सेवा के लिए एक प्रश्न करने की अनुमति देता है। वहां कई सेवाएं हैं जो सड़क पता सत्यापन प्रदान करती हैं। मैं SmartyStreets नामक एक के संस्थापक हूं। हमारे LiveAddress API बस वही हो सकता है जो आप खोज रहे हैं। और, आपकी मात्रा और व्यापार के आधार पर, यह भी पूरी तरह से मुक्त हो सकता है। यदि नहीं, तो कोई बड़ा सौदा नहीं है, वहां अन्य सेवाएं हैं जिनका आप उपयोग कर सकते हैं।