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

खास जानकारी

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

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

शुरू करना

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

इस उदाहरण में, findPlaceFromQuery() को "Museum of Contemporary Art Australia" खोजने के लिए कॉल किया गया है. साथ ही, इसमें name और geometry फ़ील्ड शामिल हैं.

var map;
var service;
var infowindow;

function initMap() {
  var sydney = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();

  map = new google.maps.Map(
      document.getElementById('map'), {center: sydney, zoom: 15});

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['name', 'geometry'],
  };

  var service = new google.maps.places.PlacesService(map);

  service.findPlaceFromQuery(request, function(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
      map.setCenter(results[0].geometry.location);
    }
  });
}
उदाहरण देखें

फ़ोन नंबर से जगह की जानकारी पाना

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

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

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

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

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

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

बुनियादी

बुनियादी कैटगरी में ये फ़ील्ड शामिल हैं:
business_status, formatted_address, geometry, icon,icon_mask_base_uri, icon_background_color, name, permanently_closed (अब इस्तेमाल नहीं किया जाता), photos, place_id, plus_code, types

संपर्क करना

संपर्क की कैटगरी में यह फ़ील्ड शामिल है: opening_hours
(Places Library, Maps JavaScript API में अब काम नहीं करता. opening_hours नतीजे पाने के लिए, जगह की जानकारी का अनुरोध करें).

वातावरण

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

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

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

किसी खास इलाके में जगह ढूंढने की सुविधा के नतीजों को बेहतर बनाने के लिए, locationBias पैरामीटर का इस्तेमाल करें. locationBias को इन तरीकों से सेट किया जा सकता है:

किसी खास इलाके के हिसाब से नतीजे दिखाना:

locationBias: {lat: 37.402105, lng: -122.081974}

खोजने के लिए आयताकार क्षेत्र तय करें:

locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}

LatLngBounds का इस्तेमाल भी किया जा सकता है.

किसी खास इलाके के आस-पास (मीटर में) खोजने के लिए त्रिज्या तय करें:

locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}

आस-पास की जगहों की जानकारी के अनुरोध

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

  • a LatLngBounds.
  • यह एक सर्कुलर एरिया है, जिसे location प्रॉपर्टी के कॉम्बिनेशन के तौर पर परिभाषित किया गया है. इस प्रॉपर्टी में, सर्कल के केंद्र को LatLng ऑब्जेक्ट के तौर पर दिखाया जाता है. साथ ही, इसकी त्रिज्या को मीटर में मेज़र किया जाता है.

आस-पास की जगहों की खोज, PlacesService के nearbySearch() तरीके को कॉल करके शुरू की जाती है. इससे PlaceResult ऑब्जेक्ट का कलेक्शन दिखता है. ध्यान दें कि nearbySearch() का तरीका, 3.9 वर्शन के search() के तरीके की जगह ले लेता है.

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

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

  • इनमें से कोई एक:
    • bounds, जो एक ऐसा google.maps.LatLngBounds ऑब्जेक्ट होना चाहिए जो खोज के लिए, रेक्टैंगल के आकार का क्षेत्र तय करता हो. बॉउंड्स एरिया के डायगनल की ज़्यादा से ज़्यादा दूरी, करीब 1,00,000 मीटर हो सकती है.
    • location और radius; पहला फ़ंक्शन, google.maps.LatLng ऑब्जेक्ट लेता है और दूसरा फ़ंक्शन, सर्कल के त्रिज्या को मीटर में दिखाने वाला एक साधारण पूर्णांक लेता है. ज़्यादा से ज़्यादा 50,000 मीटर का दायरा तय किया जा सकता है. ध्यान दें कि जब rankBy को 'दूरी' पर सेट किया जाता है, तो आपको 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 की टेक्स्ट सर्च सेवा, एक वेब सेवा है. यह किसी स्ट्रिंग के आधार पर, जगहों के एक सेट की जानकारी दिखाती है. उदाहरण के लिए, "मुंबई में पिज़्ज़ा" या "दिल्ली के आस-पास जूते के स्टोर". सेवा, टेक्स्ट स्ट्रिंग और सेट की गई जगह से जुड़ी जानकारी से मेल खाने वाली जगहों की सूची के साथ जवाब देती है. खोज के नतीजे में, जगहों की सूची शामिल होगी. जवाब में बताई गई किसी भी जगह के बारे में ज़्यादा जानकारी पाने के लिए, जगह की जानकारी का अनुरोध भेजा जा सकता है.

टेक्स्ट खोज, 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 और radiuslocation और 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 डिग्री x 1/8000 डिग्री (भूमध्य रेखा पर करीब 14 मीटर x 14 मीटर) या उससे छोटा हो. प्लस कोड का इस्तेमाल, उन जगहों पर सड़क के पते के विकल्प के तौर पर किया जा सकता है जहां वे मौजूद नहीं हैं. जैसे, जहां इमारतों के नंबर नहीं हैं या सड़कों के नाम नहीं हैं.

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

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

सैंपल आज़माएं

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

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

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

जगह की जानकारी का अनुरोध करने के लिए, सेवा के 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

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

जगह की जानकारी के जवाब

स्टेटस कोड

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, पते के कॉम्पोनेंट का छोटा नाम होता है. हालांकि, यह नाम सिर्फ़ तब दिखता है, जब यह उपलब्ध हो. उदाहरण के लिए, अलास्का राज्य के पते के कॉम्पोनेंट में, "Alaska" के तौर पर long_name और दो अक्षरों वाले डाक संक्षिप्त नाम का इस्तेमाल करके, "AK" के तौर पर short_name हो सकता है.

    address_components[] ऐरे के बारे में इन बातों का ध्यान रखें:

    • पते के कॉम्पोनेंट के कलेक्शन में, formatted_address से ज़्यादा कॉम्पोनेंट हो सकते हैं.
    • formatted_address में शामिल राजनैतिक इकाइयों के अलावा, कैटगरी में उन सभी राजनैतिक इकाइयों को शामिल करना ज़रूरी नहीं है जिनका पता मौजूद है. किसी खास पते वाली सभी राजनैतिक इकाइयों को पाने के लिए, आपको रिवर्स जियोकोडिंग का इस्तेमाल करना चाहिए. इसके लिए, अनुरोध के पैरामीटर के तौर पर पते के अक्षांश/देशांतर को पास करें.
    • यह ज़रूरी नहीं है कि एक अनुरोध के जवाब का फ़ॉर्मैट, दूसरे अनुरोध के जवाब के फ़ॉर्मैट से मेल खाए. खास तौर पर, अनुरोध किए गए पते के आधार पर address_components की संख्या अलग-अलग होती है. साथ ही, एक ही पते के लिए समय के साथ यह संख्या बदल सकती है. कोई कॉम्पोनेंट, कलेक्शन में अपनी जगह बदल सकता है. कॉम्पोनेंट का टाइप बदल सकता है. हो सकता है कि बाद में मिलने वाले जवाब में कोई कॉम्पोनेंट मौजूद न हो.
  • business_status से पता चलता है कि जगह पर कारोबार चल रहा है या नहीं. इसमें इनमें से कोई एक वैल्यू हो सकती है:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    अगर कोई डेटा मौजूद नहीं है, तो business_status नहीं दिखाया जाता.
  • formatted_address: इस जगह का ऐसा पता जिसे कोई भी पढ़ सकता है.

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

    फ़ॉर्मैट किया गया पता, एक या एक से ज़्यादा पते के कॉम्पोनेंट से बना होता है. उदाहरण के लिए, पते "111 8th Avenue, New York, NY" में ये कॉम्पोनेंट शामिल हैं: "111" (सड़क का नंबर), "8th Avenue" (रास्ता), "New York" (शहर) और "NY" (अमेरिका का राज्य).

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

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

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

    • 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 Library, Maps JavaScript API में, इसके बजाय utc_offset_minutes का इस्तेमाल करें.
  • utc_offset_minutes में, इस जगह के मौजूदा टाइमज़ोन के यूटीसी से होने वाले ऑफ़सेट के मिनटों की संख्या होती है. उदाहरण के लिए, ऑस्ट्रेलिया के सिडनी में डेलाइट सेविंग टाइम के दौरान यह 660 (+11 घंटे यूटीसी से) होगा. वहीं, डेलाइट सेविंग टाइम के बाहर कैलिफ़ोर्निया में यह -480 (-8 घंटे यूटीसी से) होगा.
  • opening_hours में यह जानकारी शामिल होती है:
    • open_now (Places Library, Maps JavaScript API में अब काम नहीं करता; इसके बजाय, opening_hours.isOpen() का इस्तेमाल करें. जगह की जानकारी के साथ isOpen का इस्तेमाल करने का तरीका जानने के लिए, यह वीडियो देखें. एक बूलियन वैल्यू है, जिससे यह पता चलता है कि जगह फ़िलहाल खुली है या नहीं.
    • periods[], रविवार से शुरू होने वाले सात दिनों के लिए, कारोबार के खुले होने की अवधि का ऐरे है. यह ऐरे, समय के हिसाब से व्यवस्थित होता है. हर अवधि में ये शामिल होते हैं:
      • open में दिन और समय के एक जोड़े का इस्तेमाल किया गया है, जिससे यह पता चलता है कि जगह कब खुलती है:
        • day 0 से 6 के बीच की कोई संख्या, जो हफ़्ते के दिनों से जुड़ी होती है. यह संख्या रविवार से शुरू होती है. उदाहरण के लिए, 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.
      • 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 पर किसी जगह का यूनीक रेफ़रंस होता है. प्लेस आईडी, ज़्यादातर जगहों के लिए उपलब्ध होते हैं. इनमें कारोबार, लैंडमार्क, पार्क, और चौराहे वगैरह शामिल हैं.

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

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

var map;

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

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

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

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

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

जगह की फ़ोटो

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

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

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

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

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

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

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

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

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