जगहें लाइब्रेरी

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript वेब सेवा

खास जानकारी

Maps JavaScript API, जगहों की लाइब्रेरी में मौजूद फ़ंक्शन, आपके ऐप्लिकेशन को किसी तय इलाके में मौजूद जगहों (जैसे कि जगहें, भौगोलिक जगहें या लोकप्रिय जगहें) को खोजने की सुविधा देता है. जैसे, मैप की सीमा या किसी तय जगह के आस-पास की जगहें.

Places API में ऑटोकंप्लीट की सुविधा दी जाती है, जिसका इस्तेमाल करके अपने ऐप्लिकेशन को Google Maps के खोज फ़ील्ड में पहले से खोजने के लिए इस्तेमाल किया जाने वाला व्यवहार दिखाया जा सकता है. जब कोई उपयोगकर्ता पता टाइप करना शुरू करता है, तो ऑटोकंप्लीट की सुविधा से बाकी पता अपने-आप भर जाता है. ज़्यादा जानकारी के लिए, ऑटोकंप्लीट दस्तावेज़ देखें.

रिपोर्ट का इस्तेमाल करना

अगर आपको Maps JavaScript API या JavaScript के बारे में कोई जानकारी नहीं है, तो हमारा सुझाव है कि आप शुरू करने से पहले, JavaScript की समीक्षा करें और एपीआई पासकोड पाएं.

एपीआई चालू करें

Maps JavaScript API में जगहें लाइब्रेरी का इस्तेमाल करने से पहले, सबसे पहले यह पक्का करें कि Google Cloud Console में जगहें एपीआई चालू है. यह उसी प्रोजेक्ट में चालू होगी जिसे आपने Maps JavaScript API के लिए सेट अप किया है.

चालू एपीआई की सूची देखने के लिए:

  1. Google Cloud Console पर जाएं.
  2. प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे आपने Maps JavaScript API के लिए सेट अप किया है और खोलें पर क्लिक करें.
  3. डैशबोर्ड पर एपीआई की सूची में, जगहें एपीआई खोजें.
  4. अगर आपको सूची में Places API दिखता है, तो इसका मतलब है कि वह पहले से चालू है. अगर एपीआई, सूची में मौजूद नहीं है, तो उसे चालू करें:
    1. लाइब्रेरी टैब दिखाने के लिए, पेज पर सबसे ऊपर मौजूद एपीआई और सेवाएं चालू करें को चुनें. इसके अलावा, बाईं ओर दिए गए मेन्यू से, लाइब्रेरी चुनें.
    2. जगहें एपीआई खोजें. इसके बाद, नतीजों की सूची में से इसे चुनें.
    3. चालू करें को चुनें. प्रोसेस पूरी होने के बाद, लोकेशन एपीआई डैशबोर्ड पर एपीआई की सूची में दिखता है.

लाइब्रेरी लोड हो रही है

जगहें सेवा में पूरी जानकारी शामिल होती है. यह लाइब्रेरी, Maps के मुख्य JavaScript API कोड से अलग होती है. इस लाइब्रेरी में मौजूद फ़ंक्शन का इस्तेमाल करने के लिए, सबसे पहले आपको Maps API के बूटस्ट्रैप यूआरएल में libraries पैरामीटर का इस्तेमाल करके, इसे लोड करना होगा:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

ज़्यादा जानकारी के लिए, लाइब्रेरी की खास जानकारी देखें.

एपीआई पासकोड के एपीआई से जुड़ी पाबंदियों की सूची में Places API जोड़ें

अपनी कुंजियों पर एपीआई पाबंदियां लागू करने से, एपीआई पासकोड का इस्तेमाल एक या एक से ज़्यादा एपीआई या SDK टूल तक सीमित हो जाता है. एपीआई पासकोड से जुड़े एपीआई या SDK टूल के अनुरोध प्रोसेस किए जाएंगे. अगर एपीआई या SDK टूल, एपीआई पासकोड से नहीं जुड़ा है, तो अनुरोध स्वीकार नहीं किए जाएंगे. अगर आपको जगहों की लाइब्रेरी के साथ किसी एपीआई पासकोड का इस्तेमाल करना है, तो Maps JavaScript API पर पाबंदी लगाएं:
  1. Google Cloud Console पर जाएं.
  2. प्रोजेक्ट ड्रॉप-डाउन पर क्लिक करें और वह प्रोजेक्ट चुनें जिसमें वह एपीआई पासकोड है जिसे आपको सुरक्षित करना है.
  3. मेन्यू बटन पर क्लिक करें और Google Maps Platform > क्रेडेंशियल चुनें.
  4. क्रेडेंशियल पेज पर, उस एपीआई कुंजी के नाम पर क्लिक करें जिसे आपको सुरक्षित करना है.
  5. एपीआई पासकोड पर पाबंदी लगाएं और उसका नाम बदलें पेज पर, ये पाबंदियां सेट करें:
    • एपीआई से जुड़ी पाबंदियां
      • बटन पर पाबंदी लगाएं को चुनें.
      • एपीआई चुनें पर क्लिक करें. इसके बाद, Maps JavaScript API और जगहें एपीआई, दोनों चुनें.
        (अगर एपीआई में से कोई भी सूची सूची में नहीं है, तो आपको उसे enable करना होगा.)
  6. सेव करें पर क्लिक करें.

इस्तेमाल करने की सीमाएं और नीतियां

कोटा

जगहें लाइब्रेरी, Places API के साथ इस्तेमाल का कोटा शेयर करती है, जैसा कि Places API के इस्तेमाल की सीमाओं से जुड़े दस्तावेज़ में बताया गया है.

नीतियां

जगहें लाइब्रेरी का इस्तेमाल करते समय, Maps JavaScript API को जगहों के एपीआई के लिए बताई गई नीतियों के मुताबिक होना चाहिए.

जगह की खोजें

स्थल सेवा के साथ आप निम्न प्रकार की खोजें कर सकते हैं:

वापस की गई जानकारी में रेस्टोरेंट, स्टोर, और ऑफ़िस जैसे संस्थान शामिल हो सकते हैं. साथ ही, 'जियोकोड' के नतीजे भी शामिल हो सकते हैं. इनमें पते, कस्बे और शहर जैसे राजनैतिक इलाके, और अन्य लोकप्रिय जगहें शामिल हो सकती हैं.

जगह के अनुरोध ढूंढना

जगह ढूंढें अनुरोध से आप कोई जगह टेक्स्ट क्वेरी या फ़ोन नंबर से खोज सकते हैं. जगह ढूंढने के अनुरोध दो तरह के होते हैं:

क्वेरी से जगह ढूंढें

क्वेरी से जगह ढूंढने के लिए टेक्स्ट इनपुट का इस्तेमाल किया जाता है और जगह की जानकारी दिखाई जाती है. इनपुट किसी भी तरह का जगह से जुड़ा डेटा हो सकता है, जैसे कि कारोबार का नाम या पता. क्वेरी अनुरोध से जगह ढूंढने के लिए, PlacesService के findPlaceFromQuery() तरीके को कॉल करें, जिसमें ये पैरामीटर शामिल होते हैं:

  • query (ज़रूरी है) वह टेक्स्ट स्ट्रिंग जिस पर खोज करनी है. जैसे, "रेस्टोरेंट" या "123 मेन रोड". यह जगह का नाम, पता या होटलों की कैटगरी होनी चाहिए. किसी भी दूसरी तरह के इनपुट से गड़बड़ियां जनरेट हो सकती हैं. साथ ही, इनके सही नतीजे मिलने की गारंटी नहीं है. जगहें एपीआई इस स्ट्रिंग के आधार पर कैंडिडेट के मिलान दिखाएगा और अनुमानित नतीजों के हिसाब से नतीजों को क्रम में लगाएगा.
  • fields (ज़रूरी है) एक या उससे ज़्यादा फ़ील्ड जिनसे यह बताया जाता है कि जगह का कौनसा डेटा देना है.
  • locationBias (ज़रूरी नहीं) खोजे जाने वाले इलाके की जानकारी देने वाले निर्देशांक. यह इनमें से कोई एक हो सकता है:
    • LatLngLiteral या LatLng ऑब्जेक्ट के रूप में तय किए गए, अक्षांश/एलएनजी कोऑर्डिनेट का एक सेट
    • आयताकार बाउंड (दो अक्षांश/एलएनजी जोड़े या LatLngBounds ऑब्जेक्ट)
    • अक्षांश/देशांतर पर केंद्रित त्रिज्या (मीटर में)

नतीजे ऑब्जेक्ट और google.maps.places.PlacesServiceStatus रिस्पॉन्स को मैनेज करने के लिए, आपको findPlaceFromQuery() पर कॉलबैक करने का तरीका भी पास करना होगा.

नीचे दिए गए उदाहरण में, findPlaceFromQuery() को किए गए कॉल को दिखाया गया है. इसमें "म्यूज़ियम ऑफ़ कंटेंपररी आर्ट ऑस्ट्रेलिया" और name और geometry फ़ील्ड शामिल किए जा रहे हैं.

var map;
var service;
var infowindow;

function initMap() {
  var sydney = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();

  map = new google.maps.Map(
      document.getElementById('map'), {center: sydney, zoom: 15});

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['name', 'geometry'],
  };

  var service = new google.maps.places.PlacesService(map);

  service.findPlaceFromQuery(request, function(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
      map.setCenter(results[0].geometry.location);
    }
  });
}
उदाहरण देखें

फ़ोन नंबर से जगह ढूंढें

फ़ोन नंबर से जगह ढूंढें और फिर उस जगह का पता लगाएं. फ़ोन नंबर से जगह ढूंढने के लिए, PlacesService के findPlaceFromPhoneNumber() तरीके को कॉल करें. इसमें ये पैरामीटर इस्तेमाल किए जाते हैं:

  • phoneNumber (ज़रूरी है) E.164 फ़ॉर्मैट में फ़ोन नंबर.
  • fields (ज़रूरी है) एक या उससे ज़्यादा फ़ील्ड जिनसे यह बताया जाता है कि जगह का कौनसा डेटा देना है.
  • locationBias (ज़रूरी नहीं) खोजे जाने वाले इलाके की जानकारी देने वाले निर्देशांक. यह इनमें से कोई एक हो सकता है:
    • LatLngLiteral या LatLng ऑब्जेक्ट के रूप में तय किए गए, अक्षांश/एलएनजी कोऑर्डिनेट का एक सेट
    • आयताकार बाउंड (चार अक्षांश/एलजी पॉइंट या एक LatLngBounds ऑब्जेक्ट)
    • अक्षांश/देशांतर पर केंद्रित त्रिज्या (मीटर में)

नतीजे ऑब्जेक्ट और google.maps.places.PlacesServiceStatus रिस्पॉन्स को मैनेज करने के लिए, आपको findPlaceFromPhoneNumber() पर कॉलबैक करने का तरीका भी पास करना होगा.

फ़ील्ड (जगह के तरीके ढूंढें)

fields पैरामीटर का इस्तेमाल करें, ताकि नतीजे के तौर पर दिखाए जाने वाले डेटा टाइप की कैटगरी तय की जा सके. उदाहरण के लिए: fields: ['formatted_address', 'opening_hours', 'geometry']. मिश्रित मान तय करते समय बिंदु का इस्तेमाल करें. उदाहरण के लिए: opening_hours.weekday_text.

फ़ील्ड, जगह के लिए खोज के नतीजे के हिसाब से होते हैं. इन्हें तीन बिलिंग कैटगरी में बांटा जाता है: सामान्य, संपर्क, और माहौल. बेसिक फ़ील्ड की बिलिंग, बेसिक दर पर होती है और इसके लिए अलग से कोई शुल्क नहीं देना होता है. संपर्क और वायुमंडल फ़ील्ड को ज़्यादा दर से बिल भेजा जाता है. ज़्यादा जानकारी के लिए, कीमत तय करने वाली शीट देखें. एट्रिब्यूशन (html_attributions) हमेशा हर कॉल के साथ दिखाए जाते हैं, चाहे फ़ील्ड से अनुरोध किया गया हो या नहीं.

बेसिक

सामान्य कैटगरी में ये फ़ील्ड शामिल हैं:
business_status, formatted_address, geometry, icon,icon_mask_base_uri, icon_background_color, name, permanently_closed (अब काम नहीं करता है), photos, place_id, plus_code, types

संपर्क करना

संपर्क की कैटगरी में यह फ़ील्ड शामिल होता है: opening_hours
(जगहों की लाइब्रेरी के Maps JavaScript API में अब काम नहीं करता. opening_hours नतीजे पाने के लिए, जगह की जानकारी के अनुरोध का इस्तेमाल करें.

माहौल

माहौल की कैटगरी में ये फ़ील्ड शामिल होते हैं: price_level, rating, user_ratings_total

findPlaceFromQuery() और findPlaceFromPhoneNumber() में से हर एक तरीका, फ़ील्ड का एक जैसा सेट लेता है. साथ ही, ये उन फ़ील्ड को उनके रिस्पॉन्स में दिखा सकते हैं.

स्थान पूर्वाग्रह सेट करें (स्थान के तरीके ढूंढें)

किसी इलाके में जगह को ढूंढने के नतीजे पाने के लिए, locationBias पैरामीटर का इस्तेमाल करें. locationBias को इस तरह से सेट किया जा सकता है:

किसी खास इलाके से जुड़े पूर्वाग्रह:

locationBias: {lat: 37.402105, lng: -122.081974}

खोजने के लिए, आयताकार हिस्सा तय करें:

locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}

LatLngBounds का इस्तेमाल भी किया जा सकता है.

किसी क्षेत्र पर केंद्रित, खोजने के लिए दायरा (मीटर में) तय करें:

locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}

आस-पास के खोज अनुरोध

आस-पास की खोज सुविधा की मदद से, कीवर्ड या टाइप के हिसाब से किसी इलाके की जगहें खोजी जा सकती हैं. आस-पास खोजने की सुविधा में हमेशा जगह की जानकारी शामिल होनी चाहिए, जिसे इन दो में से किसी एक तरीके से बताया जा सकता है:

  • LatLngBounds.
  • location प्रॉपर्टी को मिलाकर तय किया गया एक गोल क्षेत्र — इसमें सर्कल के सेंटर को LatLng ऑब्जेक्ट के तौर पर दिखाया जाता है. साथ ही, इसमें त्रिज्या की माप होती है, जिसे मीटर में मापा जाता है.

आस-पास की जगहों की खोज शुरू करने के लिए, PlacesService के nearbySearch() तरीके को कॉल किया जाता है. यह PlaceResult ऑब्जेक्ट का कलेक्शन दिखाएगा. ध्यान दें कि nearbySearch() वाला तरीका, वर्शन 3.9 के बाद वाले search() तरीके की जगह ले लेता है.

service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);

इस तरीके में नीचे दिए गए फ़ील्ड के साथ अनुरोध किया जाता है:

  • इनमें से कोई एक:
    • bounds, जो आयताकार खोज क्षेत्र को परिभाषित करने वाला google.maps.LatLngBounds ऑब्जेक्ट होना चाहिए; या
    • location और radius; पहले वाली इमेज google.maps.LatLng ऑब्जेक्ट लेती है और बाद वाली वैल्यू एक सामान्य पूर्णांक होती है. इससे, सर्कल की त्रिज्या मीटर में दिखती है. ज़्यादा से ज़्यादा 50 000 मीटर का दायरा हो सकता है. ध्यान दें कि जब rankBy को DISTANCE पर सेट किया गया हो, तो आपको location बताना होगा, लेकिन radius या bounds तय नहीं किया जा सकता.
  • keyword (ज़रूरी नहीं) — ऐसा शब्द जिसका मिलान सभी उपलब्ध फ़ील्ड से किया जाना है. इसमें नाम, टाइप, और पता के साथ-साथ ग्राहकों की समीक्षाएं और तीसरे पक्ष का अन्य कॉन्टेंट शामिल है. हालांकि, इसमें इनके अलावा, और भी चीज़ें शामिल हो सकती हैं.
  • minPriceLevel और maxPriceLevel (ज़रूरी नहीं) — नतीजों को सिर्फ़ तय की गई सीमा में उन जगहों तक सीमित करता है. वैल्यू की मान्य रेंज 0 (सबसे किफ़ायती) से लेकर 4 (सबसे महंगा) के बीच होती है. इस रेंज में दो वैल्यू भी शामिल होती हैं.
  • name अब काम नहीं करता. keyword के बराबर. इस फ़ील्ड की वैल्यू को keyword फ़ील्ड की वैल्यू के साथ जोड़ा जाता है और उन्हें एक ही खोज स्ट्रिंग के हिस्से के तौर पर पास किया जाता है.
  • openNow (ज़रूरी नहीं) — एक बूलियन वैल्यू, जिससे पता चलता है कि जगहें सेवा को सिर्फ़ उन जगहों की जानकारी दिखानी चाहिए जो क्वेरी भेजे जाने के समय कारोबार के लिए खुली हों. अगर आप अपनी क्वेरी में इस पैरामीटर को शामिल करते हैं, तो Google जगहें के डेटाबेस में जिन जगहों के लिए कारोबार के खुले होने का समय नहीं बताया जाएगा उन्हें नहीं दिखाया जाएगा. openNow को false पर सेट करने से कोई असर नहीं पड़ता.
  • rankBy (ज़रूरी नहीं है) — यह बताता है कि नतीजों को किस क्रम में दिखाया गया है. आपको ये वैल्यू दिख सकती हैं:
    • google.maps.places.RankBy.PROMINENCE (डिफ़ॉल्ट). यह विकल्प, नतीजों को उनकी अहमियत के मुताबिक क्रम से लगाता है. रैंकिंग के लिए आस-पास की ऐसी जगहों के मुकाबले मुख्य जगहों को प्राथमिकता दी जाएगी जो तय दायरे में हैं, लेकिन वे कम प्रमुखता से दिखती हैं. Google के इंडेक्स में किसी जगह की रैंकिंग, पूरी दुनिया में लोकप्रियता, और दूसरे फ़ैक्टर से, प्रमुखता पर असर पड़ सकता है. google.maps.places.RankBy.PROMINENCE तय होने पर, radius पैरामीटर की ज़रूरत होती है.
    • google.maps.places.RankBy.DISTANCE. इस विकल्प से, तय किए गए location (ज़रूरी) से दूरी के हिसाब से नतीजों को बढ़ते क्रम में लगाया जाता है. ध्यान दें कि अगर आपने RankBy.DISTANCE की जानकारी दी है, तो आपके पास कस्टम bounds और/या radius के बारे में बताने का विकल्प नहीं है. जब RankBy.DISTANCE तय किया जाता है, तो keyword, name या type में से एक या एक से ज़्यादा की ज़रूरत होती है.
  • type — खोज के नतीजों में, बताई गई जगहों से मेल खाने वाले नतीजे दिखाता है. सिर्फ़ एक टाइप के बारे में बताया जा सकता है (अगर एक से ज़्यादा टाइप दिए गए हैं, तो पहली एंट्री के बाद वाले सभी टाइप को अनदेखा कर दिया जाएगा). इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.

नतीजे ऑब्जेक्ट और google.maps.places.PlacesServiceStatus रिस्पॉन्स को मैनेज करने के लिए, आपको nearbySearch() पर कॉलबैक करने का तरीका भी पास करना होगा.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    type: ['restaurant']
  };

  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

उदाहरण देखें

टेक्स्ट खोज के अनुरोध

Google Places की टेक्स्ट खोज सेवा एक वेब सेवा है, जो स्ट्रिंग के आधार पर जगहों के एक सेट के बारे में जानकारी दिखाती है — उदाहरण के लिए, "न्यूयॉर्क में पिज़्ज़ा" या "ओटावा के आस-पास के जूतों के स्टोर". यह सेवा, टेक्स्ट स्ट्रिंग से मेल खाने वाली जगहों और सेट की गई जगह से जुड़े किसी भी पूर्वाग्रह के बारे में जवाब देती है. खोज के जवाब में जगहों की एक सूची शामिल होगी. जवाब में किसी भी जगह के बारे में ज़्यादा जानकारी पाने के लिए, जगह की जानकारी का अनुरोध भेजा जा सकता है.

टेक्स्ट की खोज PlacesService के textSearch() तरीके को कॉल करके शुरू की जाती है.

service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

इस तरीके में नीचे दिए गए फ़ील्ड के साथ अनुरोध किया जाता है:

  • query (ज़रूरी है) वह टेक्स्ट स्ट्रिंग जिस पर खोजना है. जैसे, "रेस्टोरेंट" या "123 मेन रोड". यह जगह का नाम, पता या होटलों की कैटगरी होनी चाहिए. किसी भी दूसरी तरह के इनपुट से गड़बड़ियां जनरेट हो सकती हैं और उनसे मान्य नतीजे मिलने की गारंटी नहीं है. जगहें सेवा इस स्ट्रिंग के आधार पर कैंडिडेट के मिलान दिखाती है और उन्हें इस आधार पर क्रम में लगाएगी कि वे कितने काम के हैं. अगर खोज अनुरोध में type पैरामीटर का भी इस्तेमाल किया जाता है, तो यह पैरामीटर ज़रूरी नहीं है.
  • ज़रूरी नहीं:
    • openNow — एक बूलियन वैल्यू, जिससे पता चलता है कि जगहें सेवा को सिर्फ़ उन जगहों की जानकारी दिखानी चाहिए जो क्वेरी भेजे जाने के समय कारोबार के लिए खुली हों. अगर आप अपनी क्वेरी में इस पैरामीटर को शामिल करते हैं, तो Google जगहें के डेटाबेस में जिन जगहों के लिए कारोबार के खुले होने का समय नहीं बताया जाएगा उन्हें नहीं दिखाया जाएगा. openNow को false पर सेट करने से कोई असर नहीं पड़ता.
    • minPriceLevel और maxPriceLevel — नतीजों को कीमत के तय किए गए लेवल के अंदर सिर्फ़ उन जगहों तक सीमित करता है. मान्य वैल्यू, 0 (सबसे किफ़ायती) से लेकर 4 (सबसे महंगा) के बीच की होनी चाहिए. इस रेंज में, दोनों भी शामिल हैं.
    • इनमें से कोई एक:
      • boundsgoogle.maps.LatLngBounds ऑब्जेक्ट, जो उस रेक्टैंगल के बारे में बताता है जिसमें खोज करनी है; या
      • location और radius — आप location और radius पैरामीटर पास करके, किसी खास सर्कल के नतीजों में मापदंड तय कर सकते हैं. इससे, जगहें सेवा देने वाली कंपनी को उस सर्कल में शामिल नतीजे दिखाने को प्राथमिकता देने का निर्देश मिलेगा. तय किए गए इलाके से बाहर के नतीजे अब भी दिखाए जा सकते हैं. इस जगह की जानकारी में google.maps.LatLng ऑब्जेक्ट दिया जाता है और दायरा एक सामान्य पूर्णांक होता है. इससे, सर्कल का दायरा मीटर में दिखता है. ज़्यादा से ज़्यादा 50 000 मीटर का दायरा इस्तेमाल किया जा सकता है.
    • type — नतीजों को किसी खास टाइप से मेल खाने वाली जगहों तक सीमित करता है. सिर्फ़ एक टाइप के बारे में बताया जा सकता है (अगर एक से ज़्यादा टाइप दिए गए हैं, तो पहली एंट्री के बाद वाले सभी टाइप को अनदेखा किया जाएगा). इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.

नतीजे ऑब्जेक्ट और google.maps.places.PlacesServiceStatus रिस्पॉन्स को मैनेज करने के लिए, आपको textSearch() पर कॉलबैक करने का तरीका भी पास करना होगा.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    query: 'restaurant'
  };

  service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

खोज के जवाब

स्थिति कोड

PlacesServiceStatus रिस्पॉन्स ऑब्जेक्ट में, अनुरोध की स्थिति शामिल होती है. इसमें डीबग करने से जुड़ी जानकारी भी हो सकती है, ताकि आप यह पता लगा सकें कि अनुरोध क्यों पूरा नहीं हुआ. आपको ये स्टेटस दिख सकते हैं:

  • INVALID_REQUEST: यह अनुरोध अमान्य था.
  • OK: जवाब में एक मान्य नतीजा दिया गया है.
  • OVER_QUERY_LIMIT: वेबपेज, अनुरोध के लिए तय की गई सीमा से ज़्यादा हो गया है.
  • REQUEST_DENIED: वेबपेज को PlacesService का इस्तेमाल करने की अनुमति नहीं है.
  • UNKNOWN_ERROR: सर्वर की गड़बड़ी की वजह से, PlacesService अनुरोध को प्रोसेस नहीं किया जा सका. फिर से कोशिश करने पर शायद आपका अनुरोध पूरा हो जाए.
  • ZERO_RESULTS: इस अनुरोध के लिए कोई नतीजा नहीं मिला.

जगह से जुड़े खोज के नतीजे

findPlace(), nearbySearch(), और textSearch() फ़ंक्शन, PlaceResult ऑब्जेक्ट का कलेक्शन दिखाते हैं.

हर PlaceResult ऑब्जेक्ट में ये प्रॉपर्टी हो सकती हैं:

  • अगर किसी जगह का कारोबार है, तो business_status उसके कामकाज की स्थिति के बारे में बताता है. इसमें इनमें से कोई एक वैल्यू हो सकती है:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    अगर कोई डेटा मौजूद नहीं है, तो business_status नहीं दिखाया जाता.
  • formatted_address एक स्ट्रिंग है जिसमें इस जगह का पता होता है, ताकि लोग इसे आसानी से पढ़ सकें. formatted_address प्रॉपर्टी सिर्फ़ टेक्स्ट खोज के लिए दिखाई जाती है.

    अक्सर यह पता डाक पते के बराबर होता है. ध्यान दें कि यूनाइटेड किंगडम जैसे कुछ देश, लाइसेंस देने से जुड़ी पाबंदियों की वजह से, सही डाक पतों के डिस्ट्रिब्यूशन की अनुमति नहीं देते.

    फ़ॉर्मैट किया गया पता, तर्क के मुताबिक एक या उससे ज़्यादा पते के कॉम्पोनेंट से मिलकर बना होता है. उदाहरण के लिए, पते "111 8th Avenue, New York, NY" में ये कॉम्पोनेंट शामिल हैं: "111" (सड़क का नंबर), "8th एवेन्यू" (रास्ता), "न्यूयॉर्क" (शहर) और "NY" (अमेरिका का राज्य).

    फ़ॉर्मैट किए गए पते को प्रोग्राम के हिसाब से, पार्स न करें. इसके बजाय, आपको पते के अलग-अलग कॉम्पोनेंट का इस्तेमाल करना चाहिए. ये कॉम्पोनेंट, एपीआई के रिस्पॉन्स में फ़ॉर्मैट किए गए पते के फ़ील्ड के साथ शामिल होते हैं.

  • geometry: जगह की ज्यामिति से जुड़ी जानकारी. इसमें ये चीज़ें शामिल हैं:
    • location से जगह के अक्षांश और देशांतर की जानकारी मिलती है.
    • इस जगह को देखते समय, viewport मैप पर पसंदीदा व्यूपोर्ट के बारे में बताता है.
  • permanently_closed (अब इस्तेमाल में नहीं है) एक बूलियन फ़्लैग है, जिससे पता चलता है कि जगह हमेशा के लिए बंद हुई है या कुछ समय के लिए बंद हुई है (वैल्यू true है). permanently_closed का इस्तेमाल न करें. इसके बजाय, कारोबारों के चालू होने की स्थिति जानने के लिए, business_status का इस्तेमाल करें.
  • plus_code (लोकेशन कोड खोलें और प्लस कोड देखें). यह, जगह की जानकारी को कोड में बदलने का एक रेफ़रंस है. इसे अक्षांश और देशांतर निर्देशांक से लिया जाता है. इससे इलाके का पता चलता है: डिग्री का 1/8, 000वां हिस्सा (भूमध्य रेखा पर करीब 14 मीटर x 14 मीटर) या इससे कम. प्लस कोड का इस्तेमाल उन जगहों के लिए किया जा सकता है जहां मोहल्ले का पता नहीं दिया जाता. इन जगहों पर पते नहीं जोड़े जाते या सड़कों के नाम नहीं दिए जाते.

    प्लस कोड को ग्लोबल कोड और कंपाउंड कोड के तौर पर फ़ॉर्मैट किया जाता है:

    • global_code, चार वर्ण का एरिया कोड और छह या इससे ज़्यादा वर्णों का लोकल कोड होता है (849VCWC8+R9).
    • compound_code, छह वर्ण या इससे ज़्यादा का स्थानीय कोड है. इसकी जगह की जानकारी साफ़ तौर पर दी गई है (CWC8+R9, Mountain View, CA, USA). इस कॉन्टेंट को प्रोग्राम के हिसाब से पार्स न करें.
    आम तौर पर, ग्लोबल कोड और कंपाउंड कोड, दोनों दिखते हैं. हालांकि, अगर नतीजा किसी दूसरी जगह (जैसे कि समुद्र या रेगिस्तान) पर है, तो सिर्फ़ ग्लोबल कोड मिल सकता है.
  • html_attributions: एट्रिब्यूशन का वह कलेक्शन जिसे खोज के नतीजे दिखाते समय आपको दिखाना चाहिए. कलेक्शन की हर एंट्री में, एक एट्रिब्यूशन के लिए एचटीएमएल टेक्स्ट शामिल होता है. ध्यान दें: यह खोज के पूरे जवाब के लिए सभी एट्रिब्यूशन को एक साथ दिखाता है. इसलिए, रिस्पॉन्स में मौजूद सभी PlaceResult ऑब्जेक्ट में एट्रिब्यूशन की एक जैसी सूचियां होती हैं.
  • icon, 71px x 71px के रंगीन PNG आइकॉन का यूआरएल दिखाता है.
  • icon_mask_base_uri बिना किसी रंग वाले आइकॉन के लिए बेस यूआरएल दिखाता है, जिसमें .svg या .png एक्सटेंशन को शामिल नहीं किया जाता है.
  • icon_background_color जगह की कैटगरी के लिए डिफ़ॉल्ट HEX कलर कोड दिखाता है.
  • name: जगह का नाम.
  • opening_hours में यह जानकारी हो सकती है:
    • open_now एक बूलियन वैल्यू है, जिससे यह पता चलता है कि जगह मौजूदा समय पर खुली है या नहीं (जगहों की लाइब्रेरी में अब काम नहीं करता, Maps JavaScript API में, इसके बजाय utc_offset_minutes का इस्तेमाल करें).
  • place_id एक टेक्स्ट आइडेंटिफ़ायर होता है, जो किसी जगह की खास तौर पर पहचान करता है. जगह की जानकारी पाने के लिए, इस आइडेंटिफ़ायर को जगह की जानकारी के अनुरोध में पास करें. जगह के आईडी वाली जगह के बारे में बताने के तरीके के बारे में ज़्यादा जानें.
  • rating में, इकट्ठा की गई उपयोगकर्ता समीक्षाओं के आधार पर जगह की रेटिंग 0.0 से 5.0 के बीच होती है.
  • types इस जगह के टाइप की कैटगरी (उदाहरण के लिए, ["political", "locality"] या ["restaurant", "lodging"]). इस कलेक्शन में एक से ज़्यादा वैल्यू हो सकती हैं या खाली हो सकती है. बिना कोई सूचना दिए नई वैल्यू जोड़ी जा सकती हैं. काम करने वाले टाइप की सूची देखें.
  • vicinity: सड़क का नाम, सड़क का नंबर, और शहर के साथ जगह का आसान पता. इसमें प्रांत/राज्य, पिन कोड या देश शामिल नहीं किया जा सकता. उदाहरण के लिए, Google के सिडनी, ऑस्ट्रेलिया ऑफ़िस में 5/48 Pirrama Road, Pyrmont की vicinity वैल्यू है.

अतिरिक्त नतीजे ऐक्सेस करना

डिफ़ॉल्ट रूप से, हर जगह खोज के लिए हर क्वेरी के लिए ज़्यादा से ज़्यादा 20 नतीजे दिखाए जाते हैं. हालांकि, हर खोज के लिए ज़्यादा से ज़्यादा 60 नतीजे दिख सकते हैं. इन्हें तीन पेजों में बांटा जा सकता है. दूसरे पेज, PlaceSearchPagination ऑब्जेक्ट के ज़रिए उपलब्ध होते हैं. दूसरे पेजों को ऐक्सेस करने के लिए, आपको कॉलबैक फ़ंक्शन के ज़रिए PlaceSearchPagination ऑब्जेक्ट को कैप्चर करना होगा. PlaceSearchPagination ऑब्जेक्ट को इस तरह से परिभाषित किया गया है:

  • hasNextPage एक बूलियन प्रॉपर्टी है जो बताती है कि आगे नतीजे उपलब्ध हैं या नहीं. true, जब नतीजों वाला पेज हो.
  • nextPage() ऐसा फ़ंक्शन जो नतीजों का अगला सेट दिखाएगा. खोज करने के बाद, आपको दो सेकंड बाद ही नतीजों का अगला पेज दिखेगा.

नतीजों का अगला सेट देखने के लिए, nextPage पर कॉल करें. खोज के नतीजों का अगला पेज दिखाने से पहले, हर पेज को खोज के नतीजों में दिखाना ज़रूरी है. ध्यान दें कि इस्तेमाल करने की सीमाओं में, हर खोज को एक अनुरोध के तौर पर गिना जाता है.

नीचे दिए गए उदाहरण में, PlaceSearchPagination ऑब्जेक्ट को कैप्चर करने के लिए, अपने कॉलबैक फ़ंक्शन में बदलाव करने का तरीका बताया गया है, ताकि एक से ज़्यादा खोज अनुरोध किए जा सकें.

TypeScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

function initMap(): void {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      center: pyrmont,
      zoom: 17,
      mapId: "8d193001f940fde3",
    } as google.maps.MapOptions
  );

  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage: () => void | false;
  const moreButton = document.getElementById("more") as HTMLButtonElement;

  moreButton.onclick = function () {
    moreButton.disabled = true;

    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (
      results: google.maps.places.PlaceResult[] | null,
      status: google.maps.places.PlacesServiceStatus,
      pagination: google.maps.places.PlaceSearchPagination | null
    ) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;

      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(
  places: google.maps.places.PlaceResult[],
  map: google.maps.Map
) {
  const placesList = document.getElementById("places") as HTMLElement;

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon!,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name!,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name!;
      placesList.appendChild(li);

      li.addEventListener("click", () => {
        map.setCenter(place.geometry!.location!);
      });
    }
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">
function initMap() {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(document.getElementById("map"), {
    center: pyrmont,
    zoom: 17,
    mapId: "8d193001f940fde3",
  });
  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage;
  const moreButton = document.getElementById("more");

  moreButton.onclick = function () {
    moreButton.disabled = true;
    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (results, status, pagination) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;
      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    },
  );
}

function addPlaces(places, map) {
  const placesList = document.getElementById("places");

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name;
      placesList.appendChild(li);
      li.addEventListener("click", () => {
        map.setCenter(place.geometry.location);
      });
    }
  }
}

window.initMap = initMap;
उदाहरण देखें

सैंपल आज़माएं

जगह की जानकारी

किसी इलाके में जगहों की सूची देने के अलावा, जगहें सेवा किसी खास जगह के बारे में पूरी जानकारी भी दे सकती है. जगह के खोज के जवाब में किसी जगह का पता लगाने के बाद, उस जगह के आईडी का इस्तेमाल करके, उस जगह के बारे में ज़्यादा जानकारी मांगी जा सकती है. जैसे, उस जगह का पूरा पता, फ़ोन नंबर, उपयोगकर्ता रेटिंग और समीक्षाएं वगैरह.

जगह की जानकारी के अनुरोध

जगह की जानकारी के लिए अनुरोध, सेवा के getDetails() तरीके को कॉल करके किया जाता है.

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

इस तरीके में दिखाने के लिए अनुरोध किया जाता है. इसमें आपकी पसंद की जगह का placeId शामिल होता है. साथ ही, इसमें वे फ़ील्ड भी शामिल होते हैं जिनसे यह पता चलता है कि जगह का किस तरह का डेटा दिखाना है. जगह के आईडी से किसी जगह का रेफ़रंस देने के तरीके के बारे में ज़्यादा जानें.

इसमें कॉलबैक का तरीका भी इस्तेमाल किया जाता है, जिसे google.maps.places.PlacesServiceStatus रिस्पॉन्स में पास किए गए स्टेटस कोड और google.maps.places.PlaceResult ऑब्जेक्ट को मैनेज करना होता है.

var request = {
  placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',
  fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
};

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    createMarker(place);
  }
}

उदाहरण देखें

फ़ील्ड (जगह की जानकारी)

fields पैरामीटर, स्ट्रिंग का एक कलेक्शन (फ़ील्ड नाम) लेता है.

fields पैरामीटर का इस्तेमाल करें, ताकि नतीजे के तौर पर दिखाए जाने वाले डेटा टाइप की कैटगरी तय की जा सके. उदाहरण के लिए: fields: ['address_components', 'opening_hours', 'geometry']. मिश्रित मान तय करते समय बिंदु का इस्तेमाल करें. उदाहरण के लिए: opening_hours.weekday_text.

फ़ील्ड, जगह की जानकारी के नतीजों के मुताबिक होते हैं. इन्हें बिलिंग की तीन कैटगरी में बांटा जाता है: बुनियादी, संपर्क, और माहौल. बेसिक फ़ील्ड की बिलिंग बेसिक दर पर की जाती है और कोई अतिरिक्त शुल्क नहीं लिया जाता. संपर्क और माहौल फ़ील्ड का बिल ज़्यादा लिया जाता है. ज़्यादा जानकारी के लिए, कीमत तय करने वाली शीट देखें. एट्रिब्यूशन का अनुरोध हमेशा हर कॉल के साथ किया जाता है, चाहे उनका अनुरोध किया गया हो या नहीं.html_attributions

बेसिक

बेसिक कैटगरी में ये फ़ील्ड शामिल होते हैं:
address_components, adr_address, business_status, formatted_address, geometry, icon, icon_mask_base_uri, icon_background_color,name, permanently_closed (अब इस्तेमाल में नहीं है), photo, place_id, plus_code, type, url, utc_offset ({19/Cacat2} precat2}, API में}utc_offset_minutesvicinity

संपर्क करना

संपर्क की कैटगरी में ये फ़ील्ड शामिल होते हैं:
formatted_phone_number, international_phone_number, opening_hours, website

माहौल

माहौल की कैटगरी में ये फ़ील्ड शामिल होते हैं: price_level, rating, reviews, user_ratings_total

जगह के फ़ील्ड के बारे में ज़्यादा जानें. डेटा अनुरोधों के बिल कैसे भेजे जाते हैं, इस बारे में ज़्यादा जानकारी के लिए, इस्तेमाल और बिलिंग देखें.

जगह की जानकारी से जुड़े जवाब

स्थिति कोड

PlacesServiceStatus रिस्पॉन्स ऑब्जेक्ट में, अनुरोध की स्थिति होती है. साथ ही, इसमें डीबग करने से जुड़ी जानकारी भी हो सकती है, ताकि आप यह पता लगा सकें कि जगह की जानकारी का अनुरोध क्यों पूरा नहीं हुआ. आपको ये स्टेटस दिख सकते हैं:

  • INVALID_REQUEST: यह अनुरोध अमान्य था.
  • OK: जवाब में एक मान्य नतीजा दिया गया है.
  • OVER_QUERY_LIMIT: वेबपेज, अनुरोध के लिए तय की गई सीमा से ज़्यादा हो गया है.
  • NOT_FOUND जगहों के डेटाबेस में बताई गई जगह नहीं मिली.
  • REQUEST_DENIED: वेबपेज को PlacesService का इस्तेमाल करने की अनुमति नहीं है.
  • UNKNOWN_ERROR: सर्वर की गड़बड़ी की वजह से, PlacesService अनुरोध को प्रोसेस नहीं किया जा सका. फिर से कोशिश करने पर शायद आपका अनुरोध पूरा हो जाए.
  • ZERO_RESULTS: इस अनुरोध के लिए कोई नतीजा नहीं मिला.

जगह की जानकारी से जुड़े नतीजे

getDetails() कॉल पूरा होने पर, नीचे दी गई प्रॉपर्टी के साथ PlaceResult ऑब्जेक्ट दिखता है:

  • address_components: एक कलेक्शन, जिसमें इस पते पर लागू होने वाले अलग-अलग कॉम्पोनेंट शामिल होते हैं.

    पते के हर कॉम्पोनेंट में आम तौर पर नीचे दिए गए फ़ील्ड होते हैं:

    • types[] एक कलेक्शन है, जो पता कॉम्पोनेंट के टाइप के बारे में बताता है. काम करने वाले टाइप की सूची देखें.
    • long_name, पता या कॉम्पोनेंट का पूरा टेक्स्ट ब्यौरा या नाम होता है. इसे जियोकोडर से मिलता है.
    • अगर उपलब्ध हो, तो short_name, पता कॉम्पोनेंट के लिए एक छोटा टेक्स्ट होता है. उदाहरण के लिए, अलास्का राज्य के लिए पते के कॉम्पोनेंट में, दो अक्षर के छोटे नाम का इस्तेमाल करके "अलास्का" का long_name और "AK" short_name हो सकता है.

    address_components[] कलेक्शन के बारे में इन तथ्यों पर ध्यान दें:

    • पते के कॉम्पोनेंट की कैटगरी में, formatted_address से ज़्यादा कॉम्पोनेंट हो सकते हैं.
    • यह ज़रूरी नहीं है कि इस कैटगरी में, formatted_address में दी गई पते वाली सभी राजनैतिक इकाइयों के अलावा, बाकी सभी राजनैतिक इकाइयां शामिल हों. किसी खास पते वाली सभी राजनैतिक इकाइयों को वापस लाने के लिए, आपको रिवर्स जियोकोडिंग का इस्तेमाल करना चाहिए. साथ ही, अनुरोध के लिए पते के अक्षांश/देशांतर को पैरामीटर के तौर पर पास करना चाहिए.
    • इस बात की कोई गारंटी नहीं है कि हर अनुरोध के लिए रिस्पॉन्स का फ़ॉर्मैट एक ही रहेगा. खास तौर पर, address_components की संख्या, अनुरोध किए गए पते के आधार पर अलग-अलग होती है. साथ ही, किसी एक पते के लिए, समय-समय पर इसमें बदलाव हो सकता है. कोई कॉम्पोनेंट, अरे में पोज़िशन बदल सकता है. कॉम्पोनेंट का टाइप बदल सकता है. ऐसा हो सकता है कि बाद के रिस्पॉन्स में कोई खास कॉम्पोनेंट मौजूद न हो.
  • अगर किसी जगह का कारोबार है, तो business_status उसके कामकाज की स्थिति के बारे में बताता है. इसमें इनमें से कोई एक वैल्यू हो सकती है:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    अगर कोई डेटा मौजूद नहीं है, तो business_status नहीं दिखाया जाता.
  • formatted_address: इस जगह का पता, जिसे कोई भी व्यक्ति आसानी से पढ़ सके.

    अक्सर यह पता डाक पते के बराबर होता है. ध्यान दें कि यूनाइटेड किंगडम जैसे कुछ देश, लाइसेंस देने से जुड़ी पाबंदियों की वजह से, सही डाक पतों के डिस्ट्रिब्यूशन की अनुमति नहीं देते.

    फ़ॉर्मैट किया गया पता, तर्क के मुताबिक एक या उससे ज़्यादा पते के कॉम्पोनेंट से मिलकर बना होता है. उदाहरण के लिए, पते "111 8th Avenue, New York, NY" में ये कॉम्पोनेंट शामिल हैं: "111" (सड़क का नंबर), "8th एवेन्यू" (रास्ता), "न्यूयॉर्क" (शहर) और "NY" (अमेरिका का राज्य).

    फ़ॉर्मैट किए गए पते को प्रोग्राम के हिसाब से, पार्स न करें. इसके बजाय, आपको पते के अलग-अलग कॉम्पोनेंट का इस्तेमाल करना चाहिए. ये कॉम्पोनेंट, एपीआई के रिस्पॉन्स में फ़ॉर्मैट किए गए पते के फ़ील्ड के साथ शामिल होते हैं.

  • formatted_phone_number: जगह का फ़ोन नंबर, नंबर के रीजनल कन्वेंशन के हिसाब से फ़ॉर्मैट किया गया हो.
  • geometry: जगह की ज्यामिति से जुड़ी जानकारी. इसमें ये चीज़ें शामिल हैं:
    • location से जगह के अक्षांश और देशांतर की जानकारी मिलती है.
    • इस जगह को देखते समय, viewport मैप पर पसंदीदा व्यूपोर्ट के बारे में बताता है.
  • permanently_closed (अब इस्तेमाल में नहीं है) एक बूलियन फ़्लैग है, जिससे पता चलता है कि जगह हमेशा के लिए बंद हुई है या कुछ समय के लिए बंद हुई है (वैल्यू true है). permanently_closed का इस्तेमाल न करें. इसके बजाय, कारोबारों के चालू होने की स्थिति जानने के लिए, business_status का इस्तेमाल करें.
  • plus_code (लोकेशन कोड खोलें और प्लस कोड देखें). यह, जगह की जानकारी को कोड में बदलने का एक रेफ़रंस है. इसे अक्षांश और देशांतर निर्देशांक से लिया जाता है. इससे इलाके का पता चलता है: डिग्री का 1/8, 000वां हिस्सा (भूमध्य रेखा पर करीब 14 मीटर x 14 मीटर) या इससे कम. प्लस कोड का इस्तेमाल उन जगहों के लिए किया जा सकता है जहां मोहल्ले का पता नहीं दिया जाता. इन जगहों पर पते नहीं जोड़े जाते या सड़कों के नाम नहीं दिए जाते.

    प्लस कोड को ग्लोबल कोड और कंपाउंड कोड के तौर पर फ़ॉर्मैट किया जाता है:

    • global_code, चार वर्ण का एरिया कोड और छह या इससे ज़्यादा वर्णों का लोकल कोड होता है (849VCWC8+R9).
    • compound_code, छह वर्ण या इससे ज़्यादा का स्थानीय कोड है. इसकी जगह की जानकारी साफ़ तौर पर दी गई है (CWC8+R9, Mountain View, CA, USA). इस कॉन्टेंट को प्रोग्राम के हिसाब से पार्स न करें.
    आम तौर पर, ग्लोबल कोड और कंपाउंड कोड, दोनों दिखते हैं. हालांकि, अगर नतीजा किसी दूसरी जगह (जैसे कि समुद्र या रेगिस्तान) पर है, तो सिर्फ़ ग्लोबल कोड मिल सकता है.
  • html_attributions: इस जगह के नतीजे के लिए दिखाया जाने वाला एट्रिब्यूशन टेक्स्ट.
  • icon: इमेज संसाधन का यूआरएल जिसका इस्तेमाल यह दिखाने के लिए किया जा सकता है कि इस जगह का टाइप किस तरह का है.
  • international_phone_number में जगह का फ़ोन नंबर अंतरराष्ट्रीय फ़ॉर्मैट में है. अंतरराष्ट्रीय फ़ॉर्मैट में देश का कोड शामिल होता है. इसके शुरू में प्लस (+) का निशान होता है. उदाहरण के लिए, Google के सिडनी ऑफ़िस के लिए international_phone_number, +61 2 9374 4000 है.
  • name: जगह का नाम.
  • utc_offset को Places लाइब्रेरी और Maps JavaScript API में अब काम नहीं करता, इसके बजाय utc_offset_minutes का इस्तेमाल करें.
  • utc_offset_minutes में मिनट की वह संख्या शामिल है जो इस जगह के मौजूदा टाइमज़ोन के हिसाब से यूटीसी से ऑफ़सेट की गई है. उदाहरण के लिए, सिडनी, ऑस्ट्रेलिया में डेलाइट सेविंग टाइम के दौरान जगहों के लिए यह 660 (यूटीसी से +11 घंटे ) होगा. साथ ही, कैलिफ़ोर्निया में डेलाइट सेविंग टाइम के अलावा अन्य जगहों के लिए यह -480 (यूटीसी से -8 घंटे) होगा.
  • opening_hours में यह जानकारी शामिल है:
    • open_now (जगहें लाइब्रेरी और Maps JavaScript API में अब काम नहीं करता; इसके बजाय opening_hours.isOpen() का इस्तेमाल करें. जगह की जानकारी के साथ isOpen इस्तेमाल करने का तरीका जानने के लिए, यह वीडियो देखें.) बूलियन वैल्यू से पता चलता है कि जगह मौजूदा समय पर खुली है या नहीं.
    • periods[], खुलने का समय तय करने का एक क्रम है. इसमें सात दिन शामिल होते हैं. यह रविवार से शुरू होता है. शुरू होने की तारीख और समय के हिसाब से यह क्रम चलता रहता है. हर पीरियड में शामिल हैं:
      • open में दिन और समय के दो ऑब्जेक्ट होते हैं, जिनसे यह पता चलता है कि जगह कब खुलती है:
        • रविवार से शुरू होने वाले हफ़्ते के दिनों के हिसाब से, 0 से 6 तक की संख्या day. उदाहरण के लिए, 2 का मतलब है मंगलवार.
        • time में दिन का कोई समय 24 घंटे के hhmm फ़ॉर्मैट में हो सकता है (वैल्यू 0000–2359 की रेंज में होती है). time को जगह के टाइमज़ोन में रिपोर्ट किया जाएगा.
      • close में दिन और समय के ऐसे जोड़े हो सकते हैं जिनसे जगह के बंद होने का समय पता चल सके. ध्यान दें: अगर कोई जगह हमेशा खुली रहती है, तो जवाब में close सेक्शन नहीं दिखेगा. ऐप्लिकेशन इस बात पर निर्भर कर सकते हैं कि हमेशा-खुले को open पीरियड के रूप में दिखाया जाए, जिसमें day की वैल्यू 0 हो और time की वैल्यू 0000 हो और कोई close न हो.
    • weekday_text, सात स्ट्रिंग का कलेक्शन है. इसमें हफ़्ते के हर दिन के लिए, फ़ॉर्मैट किए गए कारोबार के खुले होने का समय दिखता है. अगर जगह की जानकारी के अनुरोध में language पैरामीटर दिया गया था, तो जगहें सेवा उस भाषा के लिए, कारोबार के खुले होने के समय की सही फ़ॉर्मैट और स्थानीय भाषा तय करेगी. इस ऐरे में मौजूद एलिमेंट का क्रम, language पैरामीटर पर निर्भर करता है. कुछ भाषाओं के लिए, हफ़्ते की शुरुआत सोमवार से होती है, जबकि कुछ भाषाओं की शुरुआत रविवार से होती है.
  • permanently_closed (अब इस्तेमाल में नहीं है) एक बूलियन फ़्लैग है, जिससे पता चलता है कि जगह हमेशा के लिए बंद हुई है या कुछ समय के लिए बंद हुई है (वैल्यू true है). permanently_closed का इस्तेमाल न करें. इसके बजाय, कारोबारों के चालू होने की स्थिति जानने के लिए, business_status का इस्तेमाल करें.
  • photos[]: PlacePhoto ऑब्जेक्ट की कैटगरी. PlacePhoto का इस्तेमाल, getUrl() तरीके की मदद से फ़ोटो लेने के लिए किया जा सकता है. इसके अलावा, आप इन वैल्यू के लिए ऑब्जेक्ट की जांच भी कर सकते हैं:
    • height: इमेज की ज़्यादा से ज़्यादा ऊंचाई, पिक्सल में.
    • width: इमेज की ज़्यादा से ज़्यादा चौड़ाई, पिक्सल में.
    • html_attributions: इस जगह की फ़ोटो के साथ दिखाने के लिए एट्रिब्यूशन टेक्स्ट.
  • place_id: यह टेक्स्ट के तौर पर एक आइडेंटिफ़ायर होता है, जो किसी जगह की खास तरह से पहचान करता है. इसका इस्तेमाल, जगह की जानकारी के अनुरोध की मदद से, जगह की जानकारी हासिल करने के लिए किया जा सकता है. जगह के आईडी वाली जगह के बारे में बताने के तरीके के बारे में ज़्यादा जानें.
  • rating: उपयोगकर्ताओं की कुल समीक्षाओं के आधार पर, 0.0 से 5.0 के बीच जगह की रेटिंग.
  • reviews तक, पांच समीक्षाओं तक की कैटगरी. हर समीक्षा में कई कॉम्पोनेंट शामिल होते हैं:
    • aspects[] में PlaceAspectRating ऑब्जेक्ट की कैटगरी होती है. हर ऑब्जेक्ट, किसी कारोबार की जगह के एक एट्रिब्यूट की रेटिंग देता है. कलेक्शन में मौजूद पहले ऑब्जेक्ट को मुख्य आसपेक्ट माना जाता है. हर PlaceAspectRating को इस तरह परिभाषित किया गया है:
      • type रेट किए जाने वाले पहलू का नाम. इन टाइप का इस्तेमाल किया जा सकता है: appeal, atmosphere, decor, facilities, food, overall, quality, और service.
      • इस पहलू के लिए, उपयोगकर्ता की रेटिंग को rating करें. रेटिंग 0 से 3 के बीच होगी.
    • समीक्षा सबमिट करने वाले उपयोगकर्ता का नाम author_name. बिना पहचान वाली समीक्षाएं, "Google उपयोगकर्ता" को एट्रिब्यूट की जाती हैं. अगर कोई भाषा पैरामीटर सेट किया गया था, तो "एक Google उपयोगकर्ता" वाक्यांश, जगह के हिसाब से स्ट्रिंग दिखाएगा.
    • अगर उपलब्ध हो, तो उपयोगकर्ता की Google+ प्रोफ़ाइल का यूआरएल author_url करें.
    • language एक आईईटीएफ़ भाषा कोड. इससे पता चलता है कि उपयोगकर्ता ने किस भाषा का इस्तेमाल किया है. इस फ़ील्ड में सिर्फ़ मुख्य भाषा का टैग होता है, न कि दूसरे टैग से जो देश या इलाके के बारे में जानकारी देता है. उदाहरण के लिए, अंग्रेज़ी में की गई सभी समीक्षाओं को 'en' के तौर पर टैग किया जाता है, न कि 'en-AU' या 'en-UK' के तौर पर.
    • इस जगह के लिए उपयोगकर्ता की कुल रेटिंग rating. यह एक से लेकर पांच तक की कोई पूरी संख्या है.
    • उपयोगकर्ता की समीक्षा को text. Google Places की मदद से किसी जगह की समीक्षा करते समय, टेक्स्ट की समीक्षाओं को वैकल्पिक माना जाता है. इसलिए, यह फ़ील्ड खाली हो सकता है.
  • types इस जगह के टाइप की कैटगरी (उदाहरण के लिए, ["political", "locality"] या ["restaurant", "lodging"]). इस कलेक्शन में एक से ज़्यादा वैल्यू हो सकती हैं या खाली हो सकती है. बिना कोई सूचना दिए नई वैल्यू जोड़ी जा सकती हैं. काम करने वाले टाइप की सूची देखें.
  • url: इस जगह के आधिकारिक Google पेज का यूआरएल. यह Google के मालिकाना हक वाला पेज है, जिसमें जगह के बारे में सबसे सही जानकारी मौजूद होती है. ऐप्लिकेशन को किसी भी स्क्रीन पर इस पेज को लिंक करना होगा या इसे एम्बेड करना होगा जो उपयोगकर्ता को जगह के बारे में ज़्यादा जानकारी वाले नतीजे दिखाती है.
  • vicinity: सड़क का नाम, सड़क का नंबर, और शहर के साथ जगह का आसान पता. इसमें प्रांत/राज्य, पिन कोड या देश शामिल नहीं किया जा सकता. उदाहरण के लिए, Google के सिडनी, ऑस्ट्रेलिया ऑफ़िस में 5/48 Pirrama Road, Pyrmont की vicinity वैल्यू है. vicinity प्रॉपर्टी सिर्फ़ आस-पास की खोज के लिए दिखाई जाती है.
  • website में इस जगह की आधिकारिक वेबसाइट की सूची होती है, जैसे कि कारोबार का होम पेज.

ध्यान दें: हो सकता है कि कई डाइमेंशन वाली रेटिंग, सभी जगहों के लिए उपलब्ध न हों. अगर बहुत कम समीक्षाएं हैं, तो ज़्यादा जानकारी वाले जवाब में 0.0 से 5.0 के स्केल पर (अगर उपलब्ध हो) लेगसी रेटिंग शामिल की जाएगी या कोई रेटिंग नहीं दी जाएगी.

किसी जगह के आईडी के साथ जगह का रेफ़रंस देना

जगह का आईडी, Google Maps पर किसी जगह का यूनीक रेफ़रंस होता है. कारोबार, लैंडमार्क, पार्क, और चौराहों सहित ज़्यादातर जगहों के आईडी.

अपने ऐप्लिकेशन में किसी जगह के आईडी का इस्तेमाल करने के लिए, आपको सबसे पहले उस आईडी को खोजना होगा जो जगह की जानकारी खोजने या ज़्यादा जानकारी के लिए किए गए अनुरोध के PlaceResult में उपलब्ध है. इसके बाद, इस जगह के आईडी का इस्तेमाल करके, जगह की जानकारी देखें.

जगह के आईडी को Google Maps Platform की सेवा की शर्तों के सेक्शन 3.2.3(b) में बताए गए, कैश मेमोरी में सेव होने से जुड़ी पाबंदियों से छूट मिली है. इसलिए, बाद में इस्तेमाल करने के लिए जगह के आईडी की वैल्यू को सेव किया जा सकता है. जगह के आईडी को सेव करने के सबसे सही तरीके जानने के लिए, जगह के आईडी की खास जानकारी देखें.

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

जगह की फ़ोटो

जगह की फ़ोटो सुविधा से आप अपनी साइट पर अच्छी क्वालिटी का फ़ोटोग्राफ़िक कॉन्टेंट जोड़ सकते हैं. फ़ोटो सेवा आपको स्थल और Google+ लोकल डेटाबेस में संग्रहित लाखों फ़ोटो की ऐक्सेस देती है. जब आपको जगह की जानकारी के अनुरोध का इस्तेमाल करके जगह की जानकारी मिलती है, तो आपको उससे जुड़े फ़ोटोग्राफ़िक कॉन्टेंट के लिए फ़ोटो के रेफ़रंस दिए जाएंगे. आस-पास की खोज और टेक्स्ट खोज के अनुरोध भी, हर जगह के लिए एक फ़ोटो का रेफ़रंस देते हैं. हालांकि, ऐसा तब ही होता है, जब ज़रूरी हो. फ़ोटो सेवा का इस्तेमाल करके आप रेफ़र की गई फ़ोटो ऐक्सेस कर सकते हैं और अपने ऐप्लिकेशन के मुताबिक इमेज का साइज़ बदलकर उसे बेहतर साइज़ में रख सकते हैं.

PlacesService के लिए किए गए किसी भी getDetails(), textSearch() या nearbySearch() अनुरोध के लिए, PlacePhoto ऑब्जेक्ट का कलेक्शन, PlaceResult ऑब्जेक्ट के हिस्से के तौर पर दिखाया जाएगा.

ध्यान दें: अनुरोध के हिसाब से, फ़ोटो की संख्या अलग-अलग हो सकती है.

  • आस-पास की खोज या टेक्स्ट खोज की मदद से, ज़्यादा से ज़्यादा एक PlacePhoto ऑब्जेक्ट दिखाया जाएगा.
  • ज़्यादा जानकारी का अनुरोध करने पर, ज़्यादा से ज़्यादा दस PlacePhoto ऑब्जेक्ट दिखाए जाएंगे.

जुड़ी हुई इमेज के लिए यूआरएल पाने का अनुरोध किया जा सकता है. ऐसा करने के लिए, PlacePhoto.getUrl() तरीके को कॉल करें और एक मान्य PhotoOptions ऑब्जेक्ट पास करें. PhotoOptions ऑब्जेक्ट से, इमेज की ऊंचाई और चौड़ाई को अपने हिसाब से तय किया जा सकता है. अगर maxHeight और maxWidth, दोनों के लिए वैल्यू तय की जाती है, तो फ़ोटो सेवा मूल आसपेक्ट रेशियो को बनाए रखते हुए, इमेज का साइज़ बदलकर दो साइज़ में से छोटी कर देगी.

यह कोड स्निपेट, जगह की जानकारी देने वाली चीज़ को स्वीकार करता है. साथ ही, अगर फ़ोटो मौजूद होती है, तो वह मैप पर एक मार्कर जोड़ देता है. डिफ़ॉल्ट मार्कर इमेज को फ़ोटो के छोटे वर्शन से बदल दिया जाता है.

function createPhotoMarker(place) {
  var photos = place.photos;
  if (!photos) {
    return;
  }

  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location,
    title: place.name,
    icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35})
  });
}

फ़ोटो सेवा की ओर से दी गई फ़ोटो कई जगहों से ली जाती हैं. इनमें कारोबार के मालिक और उपयोगकर्ताओं के योगदान वाली फ़ोटो शामिल हैं. ज़्यादातर मामलों में, इन फ़ोटो को एट्रिब्यूशन के बिना इस्तेमाल किया जा सकता है या उन्हें इमेज के हिस्से के रूप में ज़रूरी एट्रिब्यूशन शामिल किया जाएगा. हालांकि, अगर दिखाए गए photo एलिमेंट के लिए html_attributions फ़ील्ड में कोई वैल्यू है, तो आपको जहां भी इमेज दिखाई जाएगी, आपको अपने ऐप्लिकेशन में अतिरिक्त एट्रिब्यूशन शामिल करना होगा.