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

प्लैटफ़ॉर्म चुनें: 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. डैशबोर्ड पर एपीआई की सूची में से, Place API खोजें.
  4. अगर आपको सूची में Places API दिखता है, तो इसका मतलब है कि वह पहले से चालू है. अगर एपीआई सूची में नहीं है, तो इसे चालू करें:
    1. लाइब्रेरी टैब दिखाने के लिए, पेज पर सबसे ऊपर मौजूद, एपीआई और सेवाएं चालू करें चुनें. इसके अलावा, बाईं ओर दिए गए मेन्यू से लाइब्रेरी को भी चुना जा सकता है.
    2. Location API खोजें, फिर नतीजों की सूची से उसे चुनें.
    3. चालू करें को चुनें. प्रोसेस पूरी होने के बाद, डैशबोर्ड पर एपीआई की सूची में Places API दिखेगा.

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

Places सेवा एक सेल्फ़-कंटेन्ड लाइब्रेरी होती है. यह मुख्य 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>

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

API कुंजी की API प्रतिबंध सूची में Places API जोड़ें

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

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

कोटा

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

नीतियां

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

जगह की खोज

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

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

जगह से जुड़े अनुरोध देखना

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

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

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

  • query (ज़रूरी है) वह टेक्स्ट स्ट्रिंग जिस पर खोज करनी है, उदाहरण के लिए: "रेस्टोरेंट" या "123 मेन स्ट्रीट". यह किसी जगह का नाम, पता या संस्थानों की कैटगरी होनी चाहिए. किसी भी अन्य तरह के इनपुट से गड़बड़ियां हो सकती हैं. इस बात की कोई गारंटी नहीं है कि इससे मान्य नतीजे मिलेंगे. Places API, इस स्ट्रिंग के आधार पर उम्मीदवार के मैच दिखाएगा. साथ ही, इस हिसाब से नतीजों को क्रम में दिखाएगा.
  • fields (ज़रूरी है) एक या एक से ज़्यादा ऐसे फ़ील्ड जो दिए जाने वाले जगह के डेटा के प्रकार बताते हैं.
  • locationBias (ज़रूरी नहीं) किसी जगह के बारे में बताने वाले कोऑर्डिनेट जो खोजना चाहते हैं. इनमें से कोई एक स्थिति हो सकती है:
    • lat/lng निर्देशांक का एक सेट, जिसे LatLngLiteral या LatLng ऑब्जेक्ट के रूप में बताया गया है
    • आयताकार बाउंड (दो अक्षांश/lng जोड़े या 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 (ज़रूरी नहीं) खोजने के लिए इलाका तय करने वाले निर्देशांक. इनमें से कोई एक काम हो सकता है:
    • lat/lng निर्देशांक का एक सेट, जिसे LatLngLiteral या LatLng ऑब्जेक्ट के रूप में बताया गया है
    • आयताकार सीमाएं (चार lat/lng पॉइंट या 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 (वैकल्पिक) एक बूलियन वैल्यू, जो यह बताती है कि Places सेवा को सिर्फ़ वे जगहें दिखानी हैं जो क्वेरी भेजे जाने के समय कारोबार के लिए खुली थीं. अगर आप अपनी क्वेरी में इस पैरामीटर को शामिल करते हैं, तो ऐसी जगहें दिखाई नहीं जाएंगी जो '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 स्थल टेक्स्ट खोज सेवा ऐसी वेब सेवा है जो किसी स्ट्रिंग के आधार पर स्थानों के एक सेट के बारे में जानकारी वापस भेजती है — उदाहरण के लिए "न्यूयॉर्क में पिज़्ज़ा" या "ओटावा के पास जूतों की दुकान". इस सेवा का इस्तेमाल करने पर, ऐसी जगहों की सूची बनाई जाती है जो टेक्स्ट स्ट्रिंग से मेल खाती हैं. साथ ही, चुनी गई जगहों की जानकारी भी दी जाती है. खोज के जवाब में जगहों की सूची शामिल होगी. जवाब में किसी भी जगह के बारे में ज़्यादा जानकारी पाने के लिए, जगह की जानकारी का अनुरोध भेजा जा सकता है.

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

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

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

  • query (ज़रूरी है) वह टेक्स्ट स्ट्रिंग जिस पर खोज करनी है, जैसे कि "रेस्टोरेंट" या "123 मेन स्ट्रीट". यह किसी जगह का नाम, पता या शिक्षण संस्थानों की कैटगरी होनी चाहिए. किसी भी अन्य तरह के इनपुट से गड़बड़ियां हो सकती हैं और इस बात की कोई गारंटी नहीं है कि इससे सही नतीजे मिलेंगे. स्थल सेवा इस स्ट्रिंग के आधार पर उम्मीदवार के मिलान दिखाएगी और उनकी प्रासंगिकता के आधार पर नतीजों को क्रम में लगाएगी. अगर खोज अनुरोध में type पैरामीटर का भी इस्तेमाल किया जाता है, तो इस पैरामीटर का इस्तेमाल करना ज़रूरी नहीं है.
  • आप चाहें, तो:
    • openNow — एक बूलियन वैल्यू, जिससे यह पता चलता है कि Places सेवा को सिर्फ़ उन जगहों पर जाना चाहिए जो क्वेरी भेजे जाने के समय कारोबार के लिए खुली थीं. अगर आप अपनी क्वेरी में इस पैरामीटर को शामिल करते हैं, तो ऐसी जगहें दिखाई नहीं जाएंगी जो 'Google जगहें' डेटाबेस में खुलने के समय की जानकारी नहीं देती हैं. openNow को false पर सेट करने से कोई असर नहीं पड़ता.
    • minPriceLevel और maxPriceLevel — नतीजों को सिर्फ़ उन जगहों के लिए सीमित करता है जो तय कीमत के दायरे में आते हैं. मान्य वैल्यू, 0 (सबसे किफ़ायती) से 4 (सबसे महंगी) के रेंज में हैं.
    • इनमें से कोई एक:
      • boundsgoogle.maps.LatLngBounds ऑब्जेक्ट जो रेक्टैंगल तय करता है कि उसमें किस तरह की खोज करनी है या
      • एक location और radius — आप location और radius पैरामीटर पास करके, किसी तय सर्कल में नतीजों को शामिल कर सकते हैं. इससे Places सेवा को उस सर्कल में नतीजे दिखाने को प्राथमिकता देने के लिए निर्देश मिल जाएगा. तय किए गए इलाके से बाहर के नतीजे अब भी दिखाए जा सकते हैं. जगह की जानकारी के लिए 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 Avenue" (रूट), "न्यूयॉर्क" (शहर) और "NY" (अमेरिका का राज्य).

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

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

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

    • global_code, चार वर्णों का एरिया कोड और छह या इससे ज़्यादा वर्णों का लोकल कोड है (849VCWM8+R9).
    • compound_code, छह या इससे ज़्यादा वर्णों का लोकल कोड है. इसमें जगह की साफ़ तौर पर जानकारी दी जाती है (CWT8+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 के सिडनी, ऑस्ट्रेलिया ऑफ़िस की वैल्यू vicinity है, जिसकी वैल्यू 5/48 Pirrama Road, Pyrmont है.

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

डिफ़ॉल्ट रूप से, हर जगह की खोज हर क्वेरी के लिए ज़्यादा से ज़्यादा 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 (एपीआई की लाइब्रेरी में अब काम नहीं करने वाले)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 Avenue" (रूट), "न्यूयॉर्क" (शहर) और "NY" (अमेरिका का राज्य).

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

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

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

    • global_code, चार वर्णों का एरिया कोड और छह या इससे ज़्यादा वर्णों का लोकल कोड है (849VCWM8+R9).
    • compound_code, छह या इससे ज़्यादा वर्णों का लोकल कोड है. इसमें जगह की साफ़ तौर पर जानकारी दी जाती है (CWT8+R9, Mountain View, CA, USA). इस कॉन्टेंट को प्रोग्राम के हिसाब से पार्स न करें.
    आम तौर पर, ग्लोबल कोड और कंपाउंड कोड, दोनों दिखते हैं. हालांकि, अगर नतीजा किसी दूसरी जगह (उदाहरण के लिए, महासागर या रेगिस्तान) पर है, तो सिर्फ़ ग्लोबल कोड दिखाया जा सकता है.
  • html_attributions: इस जगह के नतीजे के लिए दिखाया जाने वाला एट्रिब्यूशन टेक्स्ट.
  • icon: इस जगह के टाइप के बारे में बताने के लिए इस्तेमाल किए जा सकने वाले इमेज संसाधन का यूआरएल.
  • international_phone_number में जगह का फ़ोन नंबर अंतरराष्ट्रीय फ़ॉर्मैट में होता है. अंतरराष्ट्रीय फ़ॉर्मैट में देश का कोड शामिल होता है. इसकी शुरुआत में प्लस (+) का निशान होता है. उदाहरण के लिए, Google के सिडनी, ऑस्ट्रेलिया ऑफ़िस का international_phone_number +61 2 9374 4000 है.
  • name: जगह का नाम.
  • utc_offset जगहों की लाइब्रेरी, 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. यह एक पूरी संख्या है, जिसकी रेंज 1 से 5 तक होती है.
    • उपयोगकर्ता की समीक्षा text. Google Places के साथ किसी जगह की समीक्षा करते समय, टेक्स्ट वाली समीक्षाओं को वैकल्पिक माना जाता है; इसलिए, यह फ़ील्ड खाली हो सकता है.
  • types इस जगह के टाइप की कैटगरी (उदाहरण के लिए, ["political", "locality"] या ["restaurant", "lodging"]). इस अरे में एक से ज़्यादा वैल्यू हो सकती हैं या हो सकता है कि वे खाली हों. बिना किसी सूचना के नई वैल्यू दिखाई जा सकती हैं. इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.
  • url: इस जगह के आधिकारिक Google पेज का यूआरएल. यह Google के मालिकाना हक वाला पेज है. इस पर जगह के बारे में सबसे सही जानकारी मौजूद है. ऐप्लिकेशन को इस पेज से लिंक करना होगा या ऐसी किसी भी स्क्रीन पर जोड़ना होगा जो उपयोगकर्ता को जगह से जुड़े ब्यौरे के साथ नतीजे दिखाती हो.
  • vicinity: जगह का आसान पता, जिसमें सड़क का नाम, सड़क का नंबर, और मोहल्ला शामिल है, लेकिन प्रांत/राज्य, पिन कोड या देश का पता नहीं. उदाहरण के लिए, Google के सिडनी, ऑस्ट्रेलिया ऑफ़िस की वैल्यू vicinity है, जिसकी वैल्यू 5/48 Pirrama Road, Pyrmont है. vicinity प्रॉपर्टी सिर्फ़ आस-पास खोजने की सुविधा के लिए दिखाई जाती है.
  • website इस जगह की आधिकारिक वेबसाइट की सूची बनाता है, जैसे कि किसी कारोबार का होम पेज.

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

जगह की खास जानकारी वाले कॉम्पोनेंट का इस्तेमाल करना

ध्यान दें: यह सैंपल ओपन सोर्स लाइब्रेरी का इस्तेमाल करता है. लाइब्रेरी से जुड़ी मदद और सुझाव पाने के लिए, README पर जाएं.

वेब कॉम्पोनेंट आज़माएं. जगह की जानकारी को विज़ुअल तरीके से दिखाने के लिए, जगह की खास जानकारी वाले वेब कॉम्पोनेंट का इस्तेमाल करें.

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

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

जगह का आईडी, 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 ऑब्जेक्ट दिखेगा.
  • ज़्यादा जानकारी वाले अनुरोध में, ज़्यादा से ज़्यादा 10 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 फ़ील्ड में कोई वैल्यू शामिल है, तो जहां भी इमेज दिखाई जा रही है वहां आपको अपने ऐप्लिकेशन में अतिरिक्त एट्रिब्यूशन शामिल करना होगा.