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

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

खास जानकारी

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

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

शुरू करना

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

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

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

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

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

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

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

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

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

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

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

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

कोटा

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

नीतियां

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.

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

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

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

  • इनमें से कोई एक:
    • bounds, google.maps.LatLngBounds ऑब्जेक्ट होना चाहिए, जो आयताकार खोज की जगह को परिभाषित करता हो; या
    • एक location और एक radius; पहले वाला एक google.maps.LatLng ऑब्जेक्ट लेता है और बाद वाला एक सामान्य पूर्णांक लेता है, जो सर्कल के दायरे को मीटर में दिखाता है. ज़्यादा से ज़्यादा 50,000 मीटर का दायरा इस्तेमाल किया जा सकता है. ध्यान दें कि जब rankBy को DISTANCE पर सेट किया जाता है, तब आपको location को तय करना होगा लेकिन आप radius या bounds को नहीं बता सकते.
  • keyword (ज़रूरी नहीं) — सभी उपलब्ध फ़ील्ड से मिलान करने के लिए एक शब्द, जिसमें नाम, प्रकार, और पता के साथ-साथ ग्राहक समीक्षाएं और तीसरे पक्ष का कॉन्टेंट शामिल है, लेकिन इन्हीं तक सीमित नहीं है.
  • minPriceLevel और maxPriceLevel (ज़रूरी नहीं) — नतीजों को सिर्फ़ बताई गई सीमा में मौजूद जगहों तक सीमित करता है. वैल्यू का मान 0 (सबसे किफ़ायती) से लेकर 4 (सबसे महंगा) के बीच होता है.
  • name के इस्तेमाल पर रोक लगा दी गई है. keyword के बराबर. इस फ़ील्ड में मौजूद वैल्यू को keyword फ़ील्ड में मौजूद वैल्यू के साथ जोड़ा जाता है. साथ ही, इन्हें एक ही खोज स्ट्रिंग में भेजा जाता है.
  • openNow (वैकल्पिक) — एक बूलियन वैल्यू, जो यह बताती है कि जगह की जानकारी से सिर्फ़ वे जगहें भेजी जानी चाहिए जो क्वेरी के समय कारोबार के लिए खुली हैं. अगर अपनी क्वेरी में इस पैरामीटर को शामिल किया जाता है, तो जिन जगहों में Google 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 (सबसे किफ़ायती) से लेकर 4 (सबसे महंगी) तक होती हैं.
    • इनमें से कोई एक:
      • boundsgoogle.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: वेबपेज को 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" (रूट), "New York" (शहर) और "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, रंगीन 71px x 71px PNG आइकॉन के लिए यूआरएल दिखाता है.
  • icon_mask_base_uri किसी गैर-रंग वाले आइकॉन का मूल यूआरएल दिखाता है, जिसमें .svg या .png एक्सटेंशन शामिल नहीं होता.
  • icon_background_color, जगह की कैटगरी के लिए डिफ़ॉल्ट HEX कलर कोड दिखाता है.
  • 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_component', 'opening_hours', 'geometry']. कंपाउंड वैल्यू के बारे में बताते समय बिंदु का इस्तेमाल करें. उदाहरण के लिए: opening_hours.weekday_text.

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

सामान्य

बेसिक कैटगरी में ये फ़ील्ड शामिल होते हैं:
address_component, adr_address, business_status, formatted_address, geometry, icon, icon_mask_base_uri, icon_background_color,name, permanently_closed (हटाई गई), photo, place_id, plus_code, {िक्ते का नाम हटाने के बादbusiness_status

संपर्क करें

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

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() के अनुरोध के मुताबिक, PlaceResult ऑब्जेक्ट के हिस्से के तौर पर, PlacePhoto ऑब्जेक्ट को कलेक्शन के तौर पर दिखाया जाता है.

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

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