2013-07-30 6 views
16

मैं गूगल जावास्क्रिप्टयूनिट नहीं/Subpremise साथ Google स्थल स्वत: पूर्ण सुझाव प्रतिक्रिया सरणी में नहीं आ रहा है

का उपयोग करते समय मैं इनपुट में पता की इकाई संख्या और सड़क संख्या लिखें स्वत: पूर्ण पतों पर एपीआई स्थानों का उपयोग कर रहा बॉक्स में यह परिणाम ड्रॉप-डाउन में परिणाम दिखाता है लेकिन जब मैं पता चुनता हूं तो कार्रवाई 'place_changed' ईवेंट के श्रोता के पास एड्रेस_कंपोनेंट के साथ 'subpremise' टाइप के साथ कोई पता नहीं है, तो formatted_address प्रॉपर्टी में यूनिट नंबर नहीं है हालांकि इसमें 'सड़क संख्या', 'शहर', 'देश' आदि से अन्य विवरण शामिल हैं

उदाहरण के लिए: यदि मैं ऑस्ट्रेलियाई देश के प्रतिबंध के साथ "1403/648 बोर्के स्ट्रीट" टाइप करता हूं ए। यह मुझे "1403/648 बोर्के स्ट्रीट, मेलबर्न, ऑस्ट्रेलिया" के रूप में पहली बार ड्रॉपडाउन में 5 परिणाम दिखाता है, लेकिन जब मैं इस विकल्प का चयन करता हूं तो मुझे जगह_change इवेंट श्रोता में मिलता है "648 बोर्के स्ट्रीट, मेलबर्न, ऑस्ट्रेलिया"

हालांकि यह मुद्दा अस्थायी है, हालांकि यह कुछ यूनिट पते के लिए काम करता है लेकिन दूसरे के लिए असफल रहता है। किसी भी सुझाव की अत्यधिक सराहना की जाएगी !!

+0

मुझे इस व्यवहार के कारण का पता नहीं है, तो आप प्राप्त लेट लोन पास करके Google स्थानों का उपयोग कर सकते हैं, हो सकता है कि आप वहां से प्राप्त ऑब्जेक्ट में अधिक डेटा शामिल होगा। –

+2

क्या आपको कभी इसके लिए कोई जवाब मिला? मुझे भी वही समस्या हो रही है। ऑस्ट्रेलिया इकाइयां भी सुनिश्चित नहीं हैं कि क्या यह देश के लिए विशिष्ट है। धन्यवाद – sluggerdog

उत्तर

2

ऐसा लगता है कि Google यह मान्य कर रहा है कि पता वास्तविक है (अच्छी तरह से वास्तविक वास्तविक जब उन्होंने अपने स्थान डेटाबेस को अद्यतन किया - मुझे सरकारी रिकॉर्ड के साथ लगता है)। समस्या यह है कि उपविभाग हमेशा ऐसे होते जा रहे हैं जहां नए "उपप्रमुख" पते बनाए जाते हैं, और इन पर एक नज़र अधिक बार लगता है। यह अजीब बात है कि वे एक "गैर-वैध" पते को स्वत: पूर्ण सुझाव के रूप में अनुमति देते हैं लेकिन फिर परिणाम को सीमित करते हैं।

एक सिडनी पते पर ऊपर देखो नीचे "subpremise" और "street_number" वापस आ जाएगी

"9/321 पिट स्ट्रीट, सिडनी, न्यू साउथ वेल्स, ऑस्ट्रेलिया"

कहाँ केवल नीचे मेलबोर्न पता "मार्ग" के रूप में के रूप में सही हो जाता है

"2/321 पिट स्ट्रीट, ब्रंसविक, विक्टोरिया, ऑस्ट्रेलिया"

सबसे बड़ी समस्या यह है कि परिणाम कहीं भी इकाई या सड़क संख्या वापस नहीं करता है उत्तर में है।

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

if (addressType == 'route') { 
    var regex = RegExp('^(.*)'+GPLACESSTREET.split(' ',1)[0]), // get all the user entered values before a match with the first word from the Google result 
     result = regex.exec(INPUTFEILD.value); 

    if (Array.isArray(result)) { 
     FULLSTREETADDRESS = result[1]+''+GPLACESSTREET; // add the street name to the user-entered unit & street number 
    } 
} 
+0

स्थान स्वत: पूर्ण API को उपयोगकर्ताओं को जो भी चाहें टाइप करने की अनुमति देने के लिए डिज़ाइन किया गया है और आधार मानचित्र डेटा के आधार पर यह पता चलता है कि यह सबसे अच्छा मेल खाता है। कारणों की एक विस्तृत श्रृंखला के लिए, उप-स्तर-स्तर का विवरण हमेशा उपलब्ध नहीं होता है, और इसलिए वे शायद ही कभी वापस आते हैं। उपयोगकर्ता इनपुट से "संख्याओं" को पुनर्प्राप्त करने का आपका काम शायद सबसे अच्छा व्यावहारिक विकल्प है। – miguev

0

@ MountainAsh के कोड से एक मामूली संशोधन:

if (addressType == 'route') { 
    var regex = RegExp('^(.*?)'+GPLACESSTREET.split(' ',1)[0]), // get all the user entered values before a match with the first word from the Google result 
    result = regex.exec(INPUTFEILD.value); 

    if (Array.isArray(result)) { 
    FULLSTREETADDRESS = result[1]+''+GPLACESSTREET; // add the street name to the user-entered unit & street number 
    } 
} 

सूचना अतिरिक्त ?RegExp, जो खोज को गैर-लालची को उन मामलों को कवर करने के लिए बनाता है जहां स्ट्रीट नाम उसी उपनगर नाम (जैसे 123 क्लेटन आरडी, क्लेटन) से शुरू होता है।

संबंधित मुद्दे