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

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

खास जानकारी

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

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

शुरुआत करना

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

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

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

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

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

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

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

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

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

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

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

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

कोटा

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

नीतियां

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

जगह की खोज

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

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

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

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

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

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

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

नतीजों वाले ऑब्जेक्ट और 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 ऑब्जेक्ट)
    • अक्षांश/lng पर केंद्रित दायरा (मीटर में)

नतीजों वाले ऑब्जेक्ट और 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() में से हर एक तरीका, फ़ील्ड का एक ही सेट लेता है और वे अपने रिस्पॉन्स में एक जैसे फ़ील्ड दिखा सकते हैं.

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

किसी खास इलाके में Find प्लेस के पक्ष से नतीजे पाने के लिए, 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 ऑब्जेक्ट की कैटगरी दिखेगी. ध्यान दें कि वर्शन 3.9 में nearbySearch() तरीका, 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 (सबसे किफ़ायती) से लेकर चार (सबसे महंगी) के बीच होती है. इसमें दोनों शामिल हैं.
  • 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 — एक बूलियन वैल्यू, जिससे पता चलता है कि Places सेवा से सिर्फ़ उन जगहों को दिखाया जाना चाहिए जो क्वेरी भेजे जाने के समय कारोबार के लिए खुली थीं. अगर आप अपनी क्वेरी में इस पैरामीटर को शामिल करते हैं, तो Google Places के डेटाबेस में कारोबार के खुले होने के समय की जानकारी न देने वाली जगहें वापस नहीं आएंगी. openNow को false पर सेट करने से कोई असर नहीं पड़ता.
    • minPriceLevel और maxPriceLevel — नतीजों को सिर्फ़ उन जगहों तक सीमित करता है जो कीमत के तय लेवल के दायरे में आती हैं. मान्य वैल्यू, 0 (सबसे किफ़ायती) से लेकर 4 (सबसे महंगी) के बीच की रेंज में होनी चाहिए. इसमें ये दोनों वैल्यू भी शामिल हैं.
    • इनमें से कोई एक:
      • bounds — कोई 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: वेबपेज को 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 एवेन्यू, न्यूयॉर्क, न्यूयॉर्क" में ये कॉम्पोनेंट शामिल होते हैं: "111" (सड़क का नंबर), "8वां ऐवेन्यू" (रास्ता), "न्यूयॉर्क" (शहर) और "न्यूयॉर्क" (अमेरिका का राज्य).

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

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

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

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

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

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

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

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

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

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

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

var map;

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

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

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

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

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

जगह की फ़ोटो

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

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

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

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

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

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

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

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

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