खास जानकारी
Places Library, 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 जोड़ना
अपनी कुंजियों पर एपीआई से जुड़ी पाबंदियां लागू करने से, एपीआई पासकोड का इस्तेमाल एक या उससे ज़्यादा एपीआई या एसडीके तक सीमित हो जाता है. एपीआई पासकोड से जुड़े एपीआई या एसडीके टूल के अनुरोधों को प्रोसेस किया जाएगा. एपीआई पासकोड से जुड़े न होने वाले एपीआई या एसडीके के अनुरोध पूरे नहीं किए जाएंगे. 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 सेवा की मदद से, इस तरह की खोजें की जा सकती हैं:
- Find Place from Query टेक्स्ट क्वेरी के आधार पर किसी जगह की जानकारी दिखाता है. उदाहरण के लिए, किसी जगह का नाम या पता.
- फ़ोन नंबर से जगह की जानकारी पाना फ़ंक्शन, किसी फ़ोन नंबर के आधार पर जगह की जानकारी दिखाता है.
- आस-पास की जगहें ढूंढने की सुविधा उपयोगकर्ता की जगह के हिसाब से, आस-पास की जगहों की सूची दिखाती है.
- टेक्स्ट सर्च किसी खोज स्ट्रिंग के आधार पर, आस-पास की जगहों की सूची दिखाता है. जैसे, "पिज़्ज़ा".
- जगह की जानकारी के अनुरोध से किसी जगह के बारे में ज़्यादा जानकारी मिलती है. इसमें उपयोगकर्ता की समीक्षाएं भी शामिल होती हैं.
जवाब में, रेस्टोरेंट, दुकानें, और ऑफ़िस जैसी जगहों की जानकारी मिल सकती है. साथ ही, 'जियोकोड' के नतीजे भी मिल सकते हैं. इनमें पते, राजनैतिक इलाके (जैसे कि कस्बे और शहर) और दिलचस्पी की अन्य जगहों की जानकारी शामिल होती है.
जगह की जानकारी के अनुरोध ढूंढना
Find Place के अनुरोध की मदद से, किसी जगह को टेक्स्ट क्वेरी या फ़ोन नंबर से खोजा जा सकता है. जगह की जानकारी ढूंढने के लिए दो तरह के अनुरोध किए जा सकते हैं:
क्वेरी से जगह की जानकारी पाना
Find Place from Query फ़ंक्शन, टेक्स्ट इनपुट लेता है और जगह की जानकारी दिखाता है. इनपुट के तौर पर, किसी भी तरह का जगह का डेटा इस्तेमाल किया जा सकता है. जैसे, कारोबार का नाम या पता. क्वेरी से जगह की जानकारी ढूंढने का अनुरोध करने के लिए, PlacesService के findPlaceFromQuery() तरीके को कॉल करें. यह तरीका इन पैरामीटर का इस्तेमाल करता है:
query(ज़रूरी है) वह टेक्स्ट स्ट्रिंग जिसे खोजना है. उदाहरण के लिए: "रेस्टोरेंट" या "123 मेन स्ट्रीट". यह किसी जगह का नाम, पता या कारोबारों की कैटगरी होनी चाहिए. किसी अन्य तरह के इनपुट से गड़बड़ियां हो सकती हैं. साथ ही, यह भी ज़रूरी नहीं है कि आपको मान्य नतीजे मिलें. Places API, इस स्ट्रिंग के आधार पर संभावित मैच दिखाएगा. साथ ही, नतीजों को उनकी अहमियत के हिसाब से क्रम में लगाएगा.fields(ज़रूरी है) एक या उससे ज़्यादा फ़ील्ड जो यह बताते हैं कि किस तरह का जगह का डेटा दिखाना है.locationBias(ज़रूरी नहीं) खोज के लिए क्षेत्र तय करने वाले निर्देशांक. यह इनमें से कोई एक हो सकता है:- अक्षांश/देशांतर के कोऑर्डिनेट का सेट, जिसे LatLngLiteral या LatLng ऑब्जेक्ट के तौर पर तय किया गया है
- रेक्टैंगल की सीमाएं (दो अक्षांश/देशांतर जोड़े या LatLngBounds ऑब्जेक्ट)
- अक्षांश/देशांतर के हिसाब से, केंद्र से दूरी (मीटर में)
आपको findPlaceFromQuery() को कॉलबैक का तरीका भी पास करना होगा, ताकि नतीजों के ऑब्जेक्ट और google.maps.places.PlacesServiceStatus जवाब को मैनेज किया जा सके.
इस उदाहरण में, 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 ऑब्जेक्ट)
- अक्षांश/देशांतर के हिसाब से तय की गई जगह के आस-पास का दायरा (मीटर में)
आपको findPlaceFromPhoneNumber() को कॉलबैक का तरीका भी पास करना होगा, ताकि नतीजों के ऑब्जेक्ट और google.maps.places.PlacesServiceStatus जवाब को मैनेज किया जा सके.
फ़ील्ड (जगह ढूंढने के तरीके)
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 (deprecated),
photos, place_id, plus_code, types
संपर्क करना
संपर्क कैटगरी में यह फ़ील्ड शामिल है:opening_hours (Places Library, Maps JavaScript API में बंद कर दिया गया है.
opening_hours नतीजे पाने के लिए, जगह की जानकारी के लिए अनुरोध करें.
वायुमंडल
एटमॉस्फ़ियर कैटगरी में ये फ़ील्ड शामिल हैं:price_level, rating, user_ratings_total
findPlaceFromQuery() और findPlaceFromPhoneNumber(), दोनों तरीकों में एक ही तरह के फ़ील्ड इस्तेमाल किए जाते हैं. साथ ही, ये दोनों तरीके अपने-अपने जवाबों में एक ही तरह के फ़ील्ड दिखा सकते हैं.
जगह के हिसाब से खोज के नतीजों को प्राथमिकता देना (Find Place के तरीके)
locationBias पैरामीटर का इस्तेमाल करके, Find Place को किसी खास इलाके में नतीजे दिखाने के लिए सेट करें. 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 ऑब्जेक्ट का कलेक्शन दिखाता है. ध्यान दें कि वर्शन 3.9 से, search() तरीके की जगह nearbySearch() तरीका इस्तेमाल किया जाता है.
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 Text Search सेवा एक वेब सेवा है. यह किसी स्ट्रिंग के आधार पर, जगहों के एक सेट के बारे में जानकारी देती है. उदाहरण के लिए, "न्यूयॉर्क में पिज़्ज़ा" या "ओटावा के आस-पास जूते की दुकानें". यह सेवा, टेक्स्ट स्ट्रिंग और सेट की गई किसी भी जगह के हिसाब से, मिलती-जुलती जगहों की सूची दिखाती है. खोज के जवाब में, जगहों की सूची शामिल होगी. जवाब में मौजूद किसी भी जगह के बारे में ज़्यादा जानकारी पाने के लिए, 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 सेवा को उस सर्कल में नतीजे दिखाने का निर्देश मिलेगा. हालांकि, तय की गई जगह से बाहर के नतीजे भी दिख सकते हैं. location पैरामीटर मेंgoogle.maps.LatLngऑब्जेक्ट होता है. वहीं, radius पैरामीटर में एक पूर्णांक होता है, जो सर्कल के रेडियस को मीटर में दिखाता है. ज़्यादा से ज़्यादा 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 डिग्री गुणा 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;
सैंपल आज़माएं
जगह की जानकारी
जगहों की जानकारी देने वाली सेवा, किसी इलाके में मौजूद जगहों की सूची देने के साथ-साथ, किसी खास जगह के बारे में ज़्यादा जानकारी भी दे सकती है. किसी जगह को खोज के नतीजे के तौर पर दिखाए जाने के बाद, उसके प्लेस आईडी का इस्तेमाल करके उस जगह के बारे में ज़्यादा जानकारी का अनुरोध किया जा सकता है. जैसे, उसका पूरा पता, फ़ोन नंबर, उपयोगकर्ता की रेटिंग और समीक्षाएं वगैरह.
जगह की जानकारी के अनुरोध
जगह की जानकारी पाने के लिए, सेवा के getDetails() तरीके का इस्तेमाल करके अनुरोध किया जाता है.
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
यह तरीका एक अनुरोध लेता है. इसमें किसी जगह का placeId और ऐसे फ़ील्ड होते हैं जिनसे पता चलता है कि किस तरह का Places डेटा दिखाना है. किसी जगह को उसके प्लेस आईडी से रेफ़रंस करने के तरीके के बारे में ज़्यादा जानें.
यह एक कॉलबैक तरीका भी लेता है. इसे google.maps.places.PlacesServiceStatus रिस्पॉन्स में पास किए गए स्टेटस कोड के साथ-साथ 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बताई गई जगह की जानकारी, Places डेटाबेस में नहीं मिली.REQUEST_DENIED: वेबपेज को PlacesService का इस्तेमाल करने की अनुमति नहीं है.UNKNOWN_ERROR: सर्वर में गड़बड़ी की वजह से, PlacesService के अनुरोध को प्रोसेस नहीं किया जा सका. फिर से कोशिश करने पर, अनुरोध पूरा हो सकता है.ZERO_RESULTS: इस अनुरोध के लिए कोई नतीजा नहीं मिला.
जगह की जानकारी के नतीजे
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से किसी जगह के खुले या बंद होने की स्थिति का पता चलता है. हालांकि, यह सिर्फ़ कारोबार के लिए उपलब्ध है. इसमें इनमें से कोई एक वैल्यू हो सकती है: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 डिग्री गुणा 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_offsetPlaces 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 API, कारोबार के खुले होने के समय को उस भाषा के हिसाब से फ़ॉर्मैट करेगा और स्थानीय भाषा में दिखाएगा. इस ऐरे में मौजूद एलिमेंट का क्रम,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 पर मौजूद किसी जगह का यूनीक रेफ़रंस होता है. जगह के आईडी, ज़्यादातर जगहों के लिए उपलब्ध होते हैं. इनमें कारोबार, लैंडमार्क, पार्क, और चौराहे शामिल हैं.
अपने ऐप्लिकेशन में जगह के आईडी का इस्तेमाल करने के लिए, आपको पहले आईडी ढूंढना होगा. यह आईडी, जगह की खोज या जानकारी के अनुरोध के 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);
जगह की फ़ोटो
अपनी साइट पर अच्छी क्वालिटी का फ़ोटोग्राफ़िक कॉन्टेंट जोड़ने के लिए, जगह की फ़ोटो की सुविधा का इस्तेमाल करें. Photos सेवा की मदद से, Places और Google+ Local के डेटाबेस में सेव की गई लाखों फ़ोटो ऐक्सेस की जा सकती हैं. जगह की जानकारी के लिए Place Details का अनुरोध करने पर, आपको फ़ोटो के रेफ़रंस मिलेंगे. ये रेफ़रंस, फ़ोटोग्राफ़िक कॉन्टेंट के लिए होंगे. आस-पास की जगहों को खोजने और टेक्स्ट के ज़रिए खोजने के अनुरोधों के जवाब में भी, हर जगह के लिए एक फ़ोटो रेफ़रंस मिलता है. हालांकि, ऐसा सिर्फ़ तब होता है, जब यह रेफ़रंस काम का हो. इसके बाद, फ़ोटो सेवा का इस्तेमाल करके, रेफ़र की गई फ़ोटो को ऐक्सेस किया जा सकता है. साथ ही, इमेज का साइज़ बदलकर अपने ऐप्लिकेशन के लिए सबसे सही साइज़ सेट किया जा सकता है.
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 फ़ील्ड में कोई वैल्यू शामिल है, तो आपको अपने ऐप्लिकेशन में, इमेज दिखाने की हर जगह पर अतिरिक्त क्रेडिट शामिल करना होगा.