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

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

खास जानकारी

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

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

शुरू करना

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

लाइब्रेरी लोड करना

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

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

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

एपीआई पासकोड की पाबंदियों की सूची में, Places API (लेगसी) को जोड़ें

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

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

कोटा

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

नीतियां

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

जगह की खोज

Places सेवा की मदद से, इस तरह की खोज की जा सकती हैं:

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

Find Place (लेगसी) के अनुरोध

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

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

Find Place from Query, टेक्स्ट इनपुट लेता है और जगह की जानकारी दिखाता है. इनपुट के तौर पर, जगह की जानकारी से जुड़ा कोई भी डेटा दिया जा सकता है. जैसे, कारोबार का नाम या पता. Find Place from Query का अनुरोध करने के लिए, 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);
    }
  });
}
उदाहरण देखें

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

Find Place from Phone Number, फ़ोन नंबर के आधार पर जगह की जानकारी दिखाता है. फ़ोन नंबर से किसी जगह को खोजने का अनुरोध करने के लिए, PlacesService के findPlaceFromPhoneNumber() तरीके को कॉल करें. इसमें ये पैरामीटर इस्तेमाल किए जाते हैं:

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

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

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

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

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

माहौल

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

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

जगह के हिसाब से नतीजे दिखाने की सुविधा सेट करना (Find Place के तरीके)

किसी खास इलाके में जगह ढूंढने के लिए, 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 ऑब्जेक्ट होना चाहिए. यह ऑब्जेक्ट, खोज के लिए रेक्टैंगल के आकार वाले इलाके को तय करता है. बाउंड एरिया के लिए, ज़्यादा से ज़्यादा डायगनल दूरी करीब 1,00,000 मीटर है.
    • एक location और एक radius; पहला एक google.maps.LatLng ऑब्जेक्ट लेता है और दूसरा एक सामान्य पूर्णांक लेता है, जो सर्कल की त्रिज्या को मीटर में दिखाता है. ज़्यादा से ज़्यादा 50,000 मीटर की दूरी तक ही टारगेट किया जा सकता है. ध्यान दें कि जब rankBy को DISTANCE पर सेट किया जाता है, तो आपको location की वैल्यू सबमिट करनी होगी. हालांकि, radius या bounds की वैल्यू सबमिट नहीं की जा सकती.
  • keyword (ज़रूरी नहीं) — ऐसा शब्द जिसे उपलब्ध सभी फ़ील्ड से मैच किया जाना है. इसमें नाम, टाइप, और पते के साथ-साथ, खरीदार की समीक्षाएं और तीसरे पक्ष का कॉन्टेंट शामिल है. हालांकि, इसमें इनके अलावा और भी चीज़ें शामिल हो सकती हैं.
  • minPriceLevel और maxPriceLevel (ज़रूरी नहीं) — इससे नतीजे, तय की गई रेंज में मौजूद जगहों तक ही सीमित हो जाते हैं. मान्य वैल्यू, 0 (सबसे किफ़ायती) से 4 (सबसे महंगी) के बीच होनी चाहिए. इसमें ये भी शामिल हैं.
  • name अब काम नहीं करता. keyword के बराबर. इस फ़ील्ड की वैल्यू को keyword फ़ील्ड की वैल्यू के साथ जोड़ दिया जाता है. साथ ही, इन्हें एक ही सर्च स्ट्रिंग के हिस्से के तौर पर पास किया जाता है.
  • openNow (ज़रूरी नहीं) — एक बूलियन वैल्यू, जिससे पता चलता है कि Places सेवा को सिर्फ़ उन जगहों की जानकारी दिखानी चाहिए जो क्वेरी भेजे जाने के समय कारोबार के लिए खुली हों. अगर आपने अपनी क्वेरी में यह पैरामीटर शामिल किया है, तो 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 — इससे नतीजों को, तय किए गए टाइप से मैच करने वाली जगहों तक सीमित किया जाता है. सिर्फ़ एक टाइप की जानकारी दी जा सकती है. अगर एक से ज़्यादा टाइप की जानकारी दी जाती है, तो पहली एंट्री के बाद के सभी टाइप को अनदेखा कर दिया जाता है. इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.

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

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 की टेक्स्ट से खोजने की सेवा, एक वेब सेवा है. यह किसी स्ट्रिंग के आधार पर, जगहों के सेट के बारे में जानकारी दिखाती है. उदाहरण के लिए, "दिल्ली में पिज़्ज़ा" या "मुंबई के आस-पास जूतों की दुकानें". सेवा, टेक्स्ट स्ट्रिंग और सेट की गई जगह के हिसाब से, जगहों की सूची दिखाती है. खोज के जवाब में, जगहों की सूची शामिल होगी. जवाब में मौजूद किसी भी जगह के बारे में ज़्यादा जानकारी पाने के लिए, Place Details का अनुरोध भेजा जा सकता है.

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

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

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

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

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

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 Codes का इस्तेमाल, उन जगहों पर मोहल्ले के पते के तौर पर किया जा सकता है जहां मोहल्ले के पते मौजूद नहीं हैं. जैसे, जहां इमारतों को नंबर नहीं दिए गए हैं या सड़कों के नाम नहीं हैं.

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

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

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

डिफ़ॉल्ट रूप से, हर Place Search क्वेरी के लिए ज़्यादा से ज़्यादा 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;
उदाहरण देखें

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

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

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

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

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

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

यह कॉलबैक का तरीका भी अपनाता है. इसमें 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 (Places Library, Maps JavaScript API में अब काम नहीं करता), utc_offset_minutes, vicinity

संपर्क करना

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

माहौल

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

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

Place Details के जवाब

स्टेटस कोड

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

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

Place Details के नतीजे

getDetails() कॉल पूरा होने पर, यह इन प्रॉपर्टी वाला PlaceResult ऑब्जेक्ट दिखाता है:

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

    पते के हर कॉम्पोनेंट में आम तौर पर ये फ़ील्ड होते हैं:

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

    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 Codes का इस्तेमाल, उन जगहों पर मोहल्ले के पते के तौर पर किया जा सकता है जहां मोहल्ले के पते मौजूद नहीं हैं. जैसे, जहां इमारतों को नंबर नहीं दिए गए हैं या सड़कों के नाम नहीं हैं.

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

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

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

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

अपने ऐप्लिकेशन में जगह के आईडी का इस्तेमाल करने के लिए, आपको पहले आईडी देखना होगा. यह आईडी, Place Search या जानकारी के अनुरोध के 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);

जगह की फ़ोटो

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

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

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

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

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

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

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

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

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