केवल शहर और देश के लिए Google स्वत: पूर्ण परिणाम कैसे सीमित करें


198

मैं अपने खोज बॉक्स के लिए सुझाए गए परिणामों को वापस करने के लिए Google स्वत: पूर्ण स्थानों की जावास्क्रिप्ट का उपयोग कर रहा हूं, जो मुझे चाहिए वह केवल शहर और देश को दिखाए गए वर्णों से संबंधित है, लेकिन Google एपीआई बहुत सारे सामान्य स्थानों के परिणाम देगा, जिनकी मुझे आवश्यकता नहीं है, इसलिए कैसे नहीं केवल शहर और देश को दिखाने के लिए परिणाम को सीमित करने के लिए।

मैं निम्नलिखित उदाहरण का उपयोग कर रहा हूं:

<html>
<head>
<style type="text/css">
   body {
         font-family: sans-serif;
         font-size: 14px;
   }
</style>

<title>Google Maps JavaScript API v3 Example: Places Autocomplete</title>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places" type="text/javascript"></script>
<script type="text/javascript">
   function initialize() {
      var input = document.getElementById('searchTextField');
      var autocomplete = new google.maps.places.Autocomplete(input);
   }
   google.maps.event.addDomListener(window, 'load', initialize);
</script>

</head>
<body>
   <div>
      <input id="searchTextField" type="text" size="50" placeholder="Enter a location" autocomplete="on">
   </div>
</body>
</html>

जवाबों:


372

आप देश के प्रतिबंध की कोशिश कर सकते हैं

function initialize() {

 var options = {
  types: ['(cities)'],
  componentRestrictions: {country: "us"}
 };

 var input = document.getElementById('searchTextField');
 var autocomplete = new google.maps.places.Autocomplete(input, options);
}

और जानकारी:

आईएसओ 3166-1 अल्फा -2 का उपयोग विशिष्ट समूहों के परिणामों को प्रतिबंधित करने के लिए किया जा सकता है। वर्तमान में, आप देश द्वारा फ़िल्टर करने के लिए ComponentsRestrictions का उपयोग कर सकते हैं।

देश को दो चरित्र, आईएसओ 3166-1 अल्फा -2 संगत देश कोड के रूप में पारित किया जाना चाहिए।


आधिकारिक तौर पर निर्दिष्ट देश कोड


क्या आपको पता है कि अगर मैं कोई मानचित्र लोड नहीं कर रहा हूं तो ऑटो पूर्ण प्रश्नों पर कोई उपयोग सीमा है? मुझे पता है कि अगर मैं लोड नक्शे एक 25,000 उपयोग की सीमा है
Mithil

4
यह अगस्त 2014 है। क्या केवल देशों और शहरों को दिखाना संभव है? उदाहरण के लिए जब मैं मिलान टाइप करता हूं, तो परिणाम मिलान, बर्गामो, इटली है। मुझे केवल मिलान, इटली की आवश्यकता है। सभी देशों को एक-एक करके जोड़ना एक विकल्प नहीं है।
इरेडमस्टर

2
क्या एक से अधिक देशों को निर्दिष्ट करना संभव है?
बार्ट

2
@ बर्ट जाहिरा तौर पर यह संभव नहीं है। यदि आप यह सुविधा चाहते हैं तो कृपया इस समस्या को हल करें ।
dlsso

1
यदि हम प्रकारों का उपयोग करते हैं: ['(शहर)'] तो यह हमें यहाँ ज़िप कोड द्वारा खोजने की अनुमति नहीं देगा।
मोहनीश अग्रवाल

23

<html>
<head>
<style type="text/css">
   body {
         font-family: sans-serif;
         font-size: 14px;
   }
</style>

<title>Google Maps JavaScript API v3 Example: Places Autocomplete</title>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places" type="text/javascript"></script>
<script type="text/javascript">
   function initialize() {
      var input = document.getElementById('searchTextField');
      var options = {
        types: ['geocode'] //this should work !
      };
      var autocomplete = new google.maps.places.Autocomplete(input, options);
   }
   google.maps.event.addDomListener(window, 'load', initialize);
</script>

</head>
<body>
   <div>
      <input id="searchTextField" type="text" size="50" placeholder="Enter a location" autocomplete="on">
   </div>
</body>
</html>

var options = {
  types: ['geocode'] //this should work !
};
var autocomplete = new google.maps.places.Autocomplete(input, options);

अन्य प्रकारों का संदर्भ: http://code.google.com/apis/maps/documentation/places/supported_types.html##2


1
इस कोड को Google से सही जांचें। वे एक छानने उदाहरण बना code.google.com/apis/maps/documentation/javascript/...
UnLoCo

स्वतः पूर्ण वस्तु दो चर को स्वीकार नहीं करेगी, केवल एक चर को स्वीकार किया जा सकता है जो 'जियोकोड' है। मैं नहीं जानता कि इस समस्या को कैसे हल किया जाए। Google दस्तावेज़ीकरण बहुत प्रकार की सूची देता है लेकिन किसी को भी स्वीकार नहीं किया जा सकता है।
जॉनटा

क्या एक ही पैरामीटर काम करेगा AutocompleteService?
स्टीवन एगुइलर

12

इसे इस्तेमाल करे

<html>
<head>
<style type="text/css">
   body {
         font-family: sans-serif;
         font-size: 14px;
   }
</style>

<title>Google Maps JavaScript API v3 Example: Places Autocomplete</title>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places&region=in" type="text/javascript"></script>
<script type="text/javascript">
   function initialize() {
      var input = document.getElementById('searchTextField');
      var autocomplete = new google.maps.places.Autocomplete(input);
   }
   google.maps.event.addDomListener(window, 'load', initialize);
</script>

</head>
<body>
   <div>
      <input id="searchTextField" type="text" size="50" placeholder="Enter a location" autocomplete="on">
   </div>
</body>
</html>

http://maps.googleapis.com/maps/api/js?sensor=false&lbooks=places "type =" text / javascript "

इसे इसमें बदलें: "रीजन = इन" (in = india)

" http://maps.googleapis.com/maps/api/js?sensor=false&lbooks=places®ion=in " टाइप = "टेक्स्ट / जावास्क्रिप्ट"


हमें शहरों की सूची, राज्यों की सूची, क्षेत्रों की सूची और इसी तरह की आवश्यकता है
शादाब के

यह स्वीकृत उत्तर होना चाहिए। ओपी के पूछने पर परिणाम प्राप्त करने का सबसे सरल और तेज़ तरीका। और यह मेरे लिए काम किया।
user2056633

9

इस सवाल का जवाब एक देश से सभी शहरों सूची में फ्रेंकोइस परिणाम द्वारा दिए गए। लेकिन यदि आवश्यकता किसी देश या देश के प्रतिष्ठानों के सभी क्षेत्रों (शहरों + राज्यों + अन्य क्षेत्रों आदि) को सूचीबद्ध करने की है, तो आप परिणाम बदलकर तदनुसार परिणाम फ़िल्टर कर सकते हैं।

देश के केवल शहरों की सूची बनाएं

 var options = {
  types: ['(cities)'],
  componentRestrictions: {country: "us"}
 };

देश के सभी शहरों, राज्यों और क्षेत्रों की सूची बनाएं

 var options = {
  types: ['(regions)'],
  componentRestrictions: {country: "us"}
 };

सभी प्रतिष्ठानों की सूची बनाएं - जैसे कि देश में रेस्तरां, स्टोर और कार्यालय

  var options = {
      types: ['establishment'],
      componentRestrictions: {country: "us"}
     };

अधिक जानकारी और विकल्प उपलब्ध हैं

https://developers.google.com/maps/documentation/javascript/places-autocomplete

आशा है कि यह किसी के लिए उपयोगी हो सकता है


9

मूल रूप से स्वीकृत उत्तर के समान है, लेकिन नए प्रकार और कई देश प्रतिबंधों के साथ अपडेट किया गया है:

function initialize() {

 var options = {
  types: ['(regions)'],
  componentRestrictions: {country: ["us", "de"]}
 };

 var input = document.getElementById('searchTextField');
 var autocomplete = new google.maps.places.Autocomplete(input, options);
}

का उपयोग '(regions)'करने के बजाय '(cities)'के रूप में शहर का नाम के साथ-साथ डाक कोड द्वारा खोज करने के लिए अनुमति देता है।

आधिकारिक दस्तावेज़ देखें, तालिका 3: https://developers.google.com/places/supported_types


8

मैं थोड़ी देर के लिए Google स्वत: पूर्ण एपीआई के साथ खेल रहा हूं और यहां सबसे अच्छा समाधान मैं केवल आपके परिणामों को सीमित करने के लिए पा सकता हूं:

var autocomplete = new google.maps.places.Autocomplete(input, options);
var result = autocomplete.getPlace();
console.log(result); // take a look at this result object
console.log(result.address_components); // a result has multiple address components

for(var i = 0; i < result.address_components.length; i += 1) {
  var addressObj = result.address_components[i];
  for(var j = 0; j < addressObj.types.length; j += 1) {
    if (addressObj.types[j] === 'country') {
      console.log(addressObj.types[j]); // confirm that this is 'country'
      console.log(addressObj.long_name); // confirm that this is the country name
    }
  }
}

यदि आप उस परिणाम ऑब्जेक्ट को देखते हैं जो वापस आ गया है, तो आप देखेंगे कि एक address_compenders सरणी है जिसमें एक पते के विभिन्न भागों का प्रतिनिधित्व करने वाली कई ऑब्जेक्ट होंगे। इन वस्तुओं में से प्रत्येक के भीतर, इसमें एक 'प्रकार' सरणी होगी और इस 'प्रकार' सरणी के भीतर, आप देश के लिए एक सहित एक पते से जुड़े विभिन्न लेबल देखेंगे।


क्या अमेरिका में केवल कुछ राज्यों को प्रतिबंधित करने का एक तरीका है, या यहां तक ​​कि विशेष राज्यों को भी बाहर करना है?
मार्टिन एरिक

@santafebound मैं वही काम करने की कोशिश कर रहा हूं (ऑस्ट्रेलिया में एक विशिष्ट राज्य के लिए)। दस्तावेज़ीकरण से ऐसा लगता है कि उत्तर 'नहीं [अभी तक]' नहीं है, लेकिन मैं responseऑब्जेक्ट को इंटरसेप्ट करने और डेटा में अन्य कुंजी द्वारा इसे प्रतिबंधित करने का एक तरीका खोजने की उम्मीद कर रहा हूं ।
जी.टी.

4

इसके अलावा, आपको अपने देश के प्रतिबंधों के कारण मानचित्र को ज़ूम और सेंटर करना होगा!

बस ज़ूम और केंद्र मापदंडों का उपयोग करें! ;)

function initialize() {
  var myOptions = {
    zoom: countries['us'].zoom,
    center: countries['us'].center,
    mapTypeControl: false,
    panControl: false,
    zoomControl: false,
    streetViewControl: false
  };

  ... all other code ...

}

4

मैंने अपने लिए एक उपाय खोजा

var acService = new google.maps.places.AutocompleteService();
var autocompleteItems = [];

acService.getPlacePredictions({
    types: ['(regions)']
}, function(predictions) {
    predictions.forEach(function(prediction) {
        if (prediction.types.some(function(x) {
                return x === "country" || x === "administrative_area1" || x === "locality";
            })) {
            if (prediction.terms.length < 3) {
                autocompleteItems.push(prediction);
            }
        }
    });
});

यह समाधान केवल शहर और देश दिखाता है।


क्या आप स्वत: पूर्ण
वलोडिमिर खमिल के

2
<html>
  <head>
    <title>Example Using Google Complete API</title>   
  </head>
  <body>

<form>
   <input id="geocomplete" type="text" placeholder="Type an address/location"/>
    </form>
   <script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

  <script src="http://ubilabs.github.io/geocomplete/jquery.geocomplete.js"></script>
  <script>
   $(function(){        
    $("#geocomplete").geocomplete();                           
   });
  </script>
 </body>
</html>

अधिक जानकारी के लिए इस लिंक पर जाएँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.