खास जानकारी
Places लाइब्रेरी और 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 टूल के लिए किए गए अनुरोधों को प्रोसेस किया जाएगा. एपीआई पासकोड से जुड़े किसी एपीआई या SDK टूल के लिए किए गए अनुरोध काम नहीं करेंगे. Places Library, Maps JavaScript API के साथ इस्तेमाल करने के लिए, किसी एपीआई पासकोड पर पाबंदी लगाने के लिए:- Google Cloud Console पर जाएं.
- प्रोजेक्ट ड्रॉप-डाउन पर क्लिक करें और वह प्रोजेक्ट चुनें जिसमें वह एपीआई पासकोड मौजूद है जिसे आपको सुरक्षित करना है.
- मेन्यू बटन
पर क्लिक करें
और Google Maps Platform > क्रेडेंशियल चुनें.
- क्रेडेंशियल पेज पर, उस एपीआई पासकोड के नाम पर क्लिक करें जिसे आपको सुरक्षित करना है.
- एपीआई कुंजी पर पाबंदी लगाएं और उसका नाम बदलें पेज पर, पाबंदियां सेट करें:
- एपीआई से जुड़ी पाबंदियां
- कुंजी पर पाबंदी लगाएं को चुनें.
- एपीआई चुनें पर क्लिक करें. इसके बाद, Maps JavaScript API और Places API, दोनों को चुनें.
(अगर कोई भी एपीआई सूची में नहीं है, तो आपको उसे चालू करना होगा.)
- सेव करें पर क्लिक करें.
इस्तेमाल की सीमाएं और नीतियां
कोटा
Places Library, इस्तेमाल के कोटे को Places API के साथ शेयर करती है. इस बारे में, Places API के इस्तेमाल की सीमाओं के दस्तावेज़ में बताया गया है.
नीतियां
Places Library, Maps JavaScript API का इस्तेमाल, Places API के लिए बताई गई नीतियों के मुताबिक होना चाहिए.
जगहों की खोजें
Places की मदद से, इस तरह की खोजें की जा सकती हैं:
- क्वेरी से जगह ढूंढें टेक्स्ट क्वेरी (जैसे, किसी जगह का नाम या पता) के आधार पर जगह दिखाता है.
- फ़ोन नंबर से जगह ढूंढें सुविधा, फ़ोन नंबर के आधार पर कोई जगह दिखाती है.
- आस-पास की जगहें खोजने की सुविधा, उपयोगकर्ता की जगह के आधार पर आस-पास की जगहों की सूची दिखाती है.
- टेक्स्ट सर्च खोज स्ट्रिंग के आधार पर, आस-पास की जगहों की सूची दिखाता है. जैसे, "Pizza".
- जगह की जानकारी के अनुरोध, किसी जगह के बारे में ज़्यादा जानकारी देते हैं. इसमें उपयोगकर्ता की समीक्षाएं भी शामिल हैं.
इस जानकारी में, रेस्टोरेंट, दुकानें, और ऑफ़िस जैसी जगहों के साथ-साथ 'जियोकोड' के नतीजे भी शामिल हो सकते हैं. इन नतीजों से पता चलता है कि जगह का पता क्या है, वह शहर या गांव किस देश में है, और वहां कौनसी दिलचस्प जगहें हैं.
जगह के अनुरोध देखना
'जगह ढूंढें' अनुरोध की मदद से, टेक्स्ट क्वेरी या फ़ोन नंबर से कोई जगह खोजी जा सकती है. 'जगह ढूंढें' अनुरोध दो तरह के होते हैं:
क्वेरी से जगह ढूंढना
क्वेरी से जगह ढूंढें सुविधा, टेक्स्ट इनपुट लेती है और कोई जगह दिखाती है. इनपुट में, किसी जगह का कोई भी डेटा हो सकता है. जैसे, कारोबार का नाम या पता. क्वेरी से जगह ढूंढने का अनुरोध करने के लिए, 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और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से पता चलता है कि जगह पर कारोबार चल रहा है या नहीं. इसमें इनमें से कोई एक वैल्यू हो सकती है:OPERATIONALCLOSED_TEMPORARILYCLOSED_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 मीटर) या उससे छोटा हो. Plus Codes का इस्तेमाल, उन जगहों पर सड़क के पते के विकल्प के तौर पर किया जा सकता है जहां वे मौजूद नहीं हैं. जैसे, जहां इमारतों के नंबर नहीं हैं या सड़कों के नाम नहीं हैं.प्लस कोड को ग्लोबल कोड और कंपाउंड कोड के तौर पर फ़ॉर्मैट किया जाता है:
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से पता चलता है कि जगह पर कारोबार चल रहा है या नहीं. इसमें इनमें से कोई एक वैल्यू हो सकती है:OPERATIONALCLOSED_TEMPORARILYCLOSED_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 मीटर) या उससे छोटा हो. Plus Codes का इस्तेमाल, उन जगहों पर सड़क के पते के विकल्प के तौर पर किया जा सकता है जहां वे मौजूद नहीं हैं. जैसे, जहां इमारतों के नंबर नहीं हैं या सड़कों के नाम नहीं हैं.प्लस कोड को ग्लोबल कोड और कंपाउंड कोड के तौर पर फ़ॉर्मैट किया जाता है:
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का इस्तेमाल करने का तरीका जानने के लिए, Places API वीडियो में कारोबार के खुले होने का समय कैसे पाएं देखें .) `open_now` एक बूलियन वैल्यू है, जो यह बताती है कि जगह फ़िलहाल खुली है या नहीं.periods[], रविवार से शुरू होने वाले सात दिनों के लिए, कारोबार के खुले होने की अवधि का ऐरे है. यह अवधि, समय के हिसाब से लगाई गई है. हर अवधि में ये चीज़ें शामिल होती हैं:openमें दिन और समय के एक जोड़े का इस्तेमाल किया गया है, जिससे यह पता चलता है कि जगह कब खुलती है:day0 से 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 फ़ील्ड में कोई वैल्यू शामिल है, तो आपको अपने ऐप्लिकेशन में जहां भी इमेज दिखानी है वहां अतिरिक्त एट्रिब्यूशन शामिल करना होगा.