2016-12-22 7 views
7

मेरे पास followıng क्वेरी है, जो एक ज़िप कोड है: 11368Google की स्वत: पूर्ण सेवा और स्वत: पूर्ण एक ही क्वेरी के साथ अलग-अलग परिणाम लौटाने

जब मैं एक स्वत: पूर्ण वस्तु (नहीं सेवा) मैं शीर्ष पर जिप कोड के वास्तविक क्षेत्र हो रही है बनाने के लिए:

autocomplete = new google.maps.places.Autocomplete(
     document.getElementById('PlaceSearch'), 
     { types: ['(regions)'] }); 
     [...] 

यह वह जगह है:

enter image description here

इस कोड है बिल्कुल मैं क्या चाहता हूँ। हालांकि, मुझे डिजाइन कारणों के लिए एक कस्टम स्वत: पूर्ण प्रणाली साइट-वार का उपयोग करने की आवश्यकता है, इसलिए मैं AutocompleteService पर स्थानांतरित हो गया हूं जो गैर-यूआई, एक ही चीज़ का कोड-केवल संस्करण है (कम से कम यह होना चाहिए)। मैं अपने स्वत: पूर्ण सेवा बनाने:

x = new google.maps.places.AutocompleteService();

और मैं का उपयोग करें:

enter image description here

मैं description उपयोग कर रहा हूँ:

x.getQueryPredictions({ input: key }, function (results, status) { 
if (status == google.maps.places.PlacesServiceStatus.OK) { 
      [...] 
    }); 
}); 

बहरहाल, यह मैं क्या परिणामों से मिलता है प्रविष्टि को प्रदर्शित करने के लिए संपत्ति, हालांकि यह लौटाया गया स्थान में पहली प्रविष्टि की जगह आईडी के रूप में समस्या नहीं है टियां पूरी तरह से अलग हैं भले ही मैं एक ही प्रश्न में टाइप कर रहा हूं।

मैं भी कोशिश की है:

x.getQueryPredictions({ input: key, types: ['(regions)'] },

x.getQueryPredictions({ input: key, types: ['(geocode)'] },

x.getQueryPredictions({ input: key, types: ['geocode'] }

हालांकि यह किसी भी सब पर प्रभाव नहीं पड़ता है। यह बिल्कुल वही है। मैंने Different result between google maps Autocomplete and AutocompleteService भी देखा है, लेकिन इसका जवाब typeahead स्तर पर एक प्रश्न का उत्तर देता है जबकि मेरी क्वेरी के परिणाम एपीआई स्तर पर गलत टाइप किए बिना भी हैं; मैंने इसे स्वत: पूर्ण सेवा से सीधे कॉलबैक फ़ंक्शन पर डीबगर के साथ चेक किया है।

मैं तो दोनों ही मामलों में नेटवर्क अनुरोधों का निरीक्षण किया गया है और यहां पर काम पर अनुरोध है:

https://maps.googleapis.com/maps/api/place/js/AutocompletionService.GetPredictions?1s11368&4sen-US&9s(regions)&15e3&key=XXXXXX&callback=_xdc_._qxy1y2&token=45006

यह सही JSON देता है।

वह अनुरोध है कि गलत JSON देता है:

https://maps.googleapis.com/maps/api/place/js/AutocompletionService.GetQueryPredictionsJson?1s11368&4sen-US&9s(regions)&15e3&key=XXXXXX&callback=_xdc_._38p24d&token=20471

और यह गलत JSON देता है। जो मैं देखता हूं उससे यह स्पष्ट है कि मुझे (regions) में types पैरामीटर के रूप में पास करने की आवश्यकता है, और यह अभी भी गलत है। अधिक बेतुका, दो प्रश्नों के बीच एकमात्र अंतर token नामक एक चर है (मैंने गलत क्वेरी के टोकन को सही के साथ बदलने की कोशिश की है लेकिन मुझे The Google Maps JavaScript API must be downloaded directly from Google's servers. त्रुटि मिली है) और कॉलबैक फ़ंक्शन, जो मुझे यकीन है कि उसके पास कुछ भी नहीं है लौटा JSON के साथ करो।एकमात्र चीज जिसे मैं सोच सकता हूं वह है कि टोकन लौटने के दौरान Google अपने सर्वर पर प्रारंभिक स्तर पर कुछ करता है, जो उस सर्वर/इंस्टेंस (इसलिए टोकन) से जुड़ा होता है।

मैं क्या गलत कर रहा हूं और मैं Google के अपने टाइपहेड कार्यान्वयन के साथ प्रोग्रामिक रूप से एक ही परिणाम कैसे प्राप्त कर सकता हूं?

उत्तर

2

मुझे समाधान मिला है। मैं getPredictions के बजाय getQueryPredictions पर फोन कर रहा था और यह विभिन्न परिणामों को वापस कर रहा था। मैंने getPredictions पर कॉल करने के लिए अपना कोड बदल दिया है और यह सही तरीके से काम करना शुरू कर दिया है।

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