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

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

खास जानकारी

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

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

शुरुआत करना

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

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

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

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

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

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

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

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

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

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

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

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

कोटा

Places लाइब्रेरी में जगहों के एपीआई के इस्तेमाल से जुड़ी जानकारी वाले दस्तावेज़ में, बताया गया है कि एपीआई का इस्तेमाल करने की सीमा कहां है.

नीतियां

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

जगह की खोज

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

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

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

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

क्वेरी से जगह खोजें

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

  • query (ज़रूरी है) वह टेक्स्ट स्ट्रिंग जिस पर खोजना है, उदाहरण के लिए: "रेस्टोरेंट" या "123 मेन स्ट्रीट". यह किसी जगह का नाम, पता या कारोबार की कैटगरी होनी चाहिए. किसी और तरह का इनपुट होने पर गड़बड़ियां हो सकती हैं. हो सकता है कि ये नतीजे मान्य न हों. Places API इस स्ट्रिंग के आधार पर, ज़रूरी कीवर्ड से मिलते-जुलते नतीजे दिखाएगा. साथ ही, नतीजों को उनकी काम की क्षमता के आधार पर क्रम में लगाएगा.
  • 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.

फ़ील्ड Place Search के नतीजों से जुड़े होते हैं और इन्हें तीन बिलिंग कैटगरी में बांटा जाता है: बुनियादी, संपर्क, और माहौल. बेसिक फ़ील्ड को बेस रेट पर बिल किया जाता है. साथ ही, इसके लिए अलग से शुल्क नहीं लिया जाता. संपर्क और वायुमंडल फ़ील्ड की बिलिंग ज़्यादा की जाती है. ज़्यादा जानकारी के लिए, कीमत तय करने वाली शीट देखें. एट्रिब्यूशन (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 एपीआई में. 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() तरीके से, search() तरीके को वर्शन 3.9 से बदल दिया जाता है.

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 Places के डेटाबेस में उसके खुले होने के समय की जानकारी नहीं दी जाती है. 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 Places के डेटाबेस में उसके खुले होने के समय की जानकारी नहीं दी जाती है. openNow को false पर सेट करने से कोई असर नहीं पड़ता.
    • minPriceLevel और maxPriceLevel — नतीजों को सिर्फ़ उन जगहों तक सीमित करता है जो बताई गई कीमत के लेवल पर हों. मान्य वैल्यू, 0 (सबसे किफ़ायती) से लेकर चार (सबसे महंगी) तक होती हैं.
    • इनमें से कोई एक:
      • bounds — A google.maps.LatLngBounds वह ऑब्जेक्ट है जिसकी पहचान आयत के तौर पर की जाती है या
      • location और radiuslocation और 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: वेबपेज पर, ServiceService का इस्तेमाल करने की अनुमति नहीं है.
  • UNKNOWN_ERROR सर्वर की गड़बड़ी की वजह से, Places सेवा का अनुरोध नहीं किया जा सका. दोबारा कोशिश करने पर, अनुरोध पूरा हो सकता है.
  • 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" (सड़क का नंबर), "8वां ऐवेन्यू" (रास्ते), "न्यूयॉर्क" (शहर), और "NY" (अमेरिका का राज्य).

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

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

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

    • global_code, चार वर्णों का एरिया कोड या छह वर्ण या उससे ज़्यादा लंबा लोकल कोड (849VCWC8+R9) है.
    • compound_code, छह वर्णों या उससे ज़्यादा का लोकल कोड है, जिसमें जगह की जानकारी साफ़ तौर पर दी गई हो (CWC8+R9, Mountain View, CA, USA). इस कॉन्टेंट को प्रोग्राम की मदद से पार्स न करें.
    आम तौर पर, ग्लोबल कोड और कंपाउंड कोड, दोनों दिखते हैं. हालांकि, अगर नतीजा किसी रिमोट लोकेशन (उदाहरण के लिए, किसी महासागर या रेगिस्तान) में होता है, तो सिर्फ़ ग्लोबल कोड दिखाया जा सकता है.
  • html_attributions एट्रिब्यूशन की एक कैटगरी, जो आपको खोज के नतीजे दिखाते समय दिखानी चाहिए. ऐरे में मौजूद हर एंट्री में, एक एट्रिब्यूशन का एचटीएमएल टेक्स्ट शामिल होता है. ध्यान दें: यह पूरे खोज रिस्पॉन्स के लिए, सभी एट्रिब्यूशन का एक एग्रीगेशन होता है. इस वजह से, जवाब देने वाले सभी PlaceResult ऑब्जेक्ट में, एट्रिब्यूशन की एक जैसी सूचियां होती हैं.
  • icon, रंगीन 71 पिक्सल x 71 पिक्सल PNG आइकॉन के लिए यूआरएल दिखाता है.
  • icon_mask_base_uri, बेसिक यूआरएल को बिना रंग वाले आइकॉन के लिए दिखाता है. इसमें .svg या .png एक्सटेंशन शामिल नहीं होता.
  • icon_background_color, जगह की कैटगरी के लिए डिफ़ॉल्ट कलर हेक्स कोड दिखाता है.
  • name: जगह का नाम.
  • opening_hours में यह जानकारी हो सकती है:
    • open_now एक बूलियन वैल्यू है, जिससे यह पता चलता है कि जगह मौजूदा समय पर खुली है या नहीं (जगह की लाइब्रेरी में मौजूद जगहें लाइब्रेरी, Maps JavaScript एपीआई, में 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,typeurlutc_offsetutc_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: वेबपेज पर, ServiceService का इस्तेमाल करने की अनुमति नहीं है.
  • UNKNOWN_ERROR सर्वर की गड़बड़ी की वजह से, Places सेवा का अनुरोध नहीं किया जा सका. दोबारा कोशिश करने पर, अनुरोध पूरा हो सकता है.
  • 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" (सड़क का नंबर), "8वां ऐवेन्यू" (रास्ते), "न्यूयॉर्क" (शहर), और "NY" (अमेरिका का राज्य).

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

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

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

    • 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: जगह का नाम.
  • 'जगहों की लाइब्रेरी', Maps JavaScript API में utc_offset काम नहीं करता. इसके बजाय, utc_offset_minutes का इस्तेमाल करें.
  • utc_offset_minutes में इस मिनट का कुल समय शामिल है, जिसका मौजूदा समय क्षेत्र यूटीसी से ऑफ़सेट है. उदाहरण के लिए, सिडनी और ऑस्ट्रेलिया में, डेलाइट सेविंग टाइम के दौरान तापमान 660 (यूटीसी से 11 घंटे +) होगा. साथ ही, कैलिफ़ोर्निया में डेलाइट सेविंग टाइम के अलावा अन्य जगहों के लिए, तापमान -480 (यूटीसी से 8 घंटे) होगा.
  • opening_hours में यह जानकारी शामिल है:
    • 'जगहों की लाइब्रेरी', Maps JavaScript API में काम नहीं करता; इसके बजाय opening_hours.isOpen() का इस्तेमाल करें.open_now जगह की जानकारी के साथ isOpen इस्तेमाल करने का तरीका जानने के लिए, यह वीडियो देखें.) एक बूलियन वैल्यू, जो बताती है कि जगह मौजूदा समय पर खुली है या नहीं.
    • periods[] में, शुरुआती दिनों की जानकारी होती है. इसमें, सात दिनों की जानकारी शामिल होती है. यह समयसीमा रविवार से शुरू होकर, पहले के क्रम में होती है. हर अवधि में ये शामिल हैं:
      • open में दिन और समय की एक जोड़ी शामिल है, जो बताती है कि जगह कब खुलती है:
        • day रविवार से शुरू होकर, हफ़्ते के दिनों के मुताबिक 0 से 6 तक की संख्या. उदाहरण के लिए, 2 का मतलब मंगलवार है.
        • time में 24 घंटे hhmm फ़ॉर्मैट में दिन का समय हो सकता है (वैल्यू 0000–2359 की रेंज में होती हैं). जगह के समय क्षेत्र के हिसाब से, time की जानकारी दी जाएगी.
      • close में दिन और समय की एक जोड़ी हो सकती है, जिसमें बताया गया होता है कि जगह कब बंद होती है. ध्यान दें: अगर कोई जगह हमेशा खुली रहती है, तो जवाब में close सेक्शन मौजूद नहीं होगा. ऐप्लिकेशन हमेशा ऐसी ओपन अवधि पर भरोसा कर सकते हैं जिसमें open हो. इसमें वैल्यू 0 और time को 0,000 वैल्यू के साथ दिखाया गया हो. साथ ही, इसमें close को शामिल न किया गया हो.day
    • 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 उपयोगकर्ता" वाक्यांश, स्थानीय भाषा में नतीजे दिखाएगा.
    • अगर author_url उपयोगकर्ताओं की Google+ प्रोफ़ाइल है, तो उसका यूआरएल (अगर उपलब्ध हो).
    • 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);

जगह की फ़ोटो

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

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

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

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