खास जानकारी
Maps JavaScript API की Places Library में मौजूद फ़ंक्शन, आपके ऐप्लिकेशन को किसी तय किए गए इलाके में मौजूद जगहों को खोजने की सुविधा देते हैं. इस एपीआई में जगहों को कारोबार, भौगोलिक जगहें या लोकप्रिय जगहें के तौर पर तय किया गया है. जैसे, मैप की सीमाएं या किसी तय किए गए पॉइंट के आस-पास की जगहें.
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 जोड़ना
अपनी कुंजियों पर एपीआई से जुड़ी पाबंदियां लगाने से, एपीआई पासकोड का इस्तेमाल एक या उससे ज़्यादा एपीआई या एसडीके तक सीमित हो जाता है. एपीआई पासकोड से जुड़े एपीआई या एसडीके टूल के अनुरोधों को प्रोसेस किया जाएगा. एपीआई पासकोड से जुड़े न होने वाले एपीआई या एसडीके के अनुरोध पूरे नहीं किए जाएंगे. Maps JavaScript API की Places Library के साथ इस्तेमाल करने के लिए, एपीआई पासकोड को सीमित करने का तरीका:- Google Cloud Console पर जाएं.
- प्रोजेक्ट ड्रॉप-डाउन पर क्लिक करें. इसके बाद, वह प्रोजेक्ट चुनें जिसमें मौजूद एपीआई पासकोड को सुरक्षित करना है.
- मेन्यू बटन
पर क्लिक करें
और Google Maps Platform > क्रेडेंशियल चुनें.
- क्रेडेंशियल पेज पर, उस एपीआई पासकोड के नाम पर क्लिक करें जिसे सुरक्षित करना है.
- एपीआई कुंजी पर पाबंदी लगाएं और उसका नाम बदलें पेज पर, पाबंदियां सेट करें:
- एपीआई से जुड़ी पाबंदियां
- कुंजी पर पाबंदी लगाएं को चुनें.
- एपीआई चुनें पर क्लिक करें. इसके बाद, Maps JavaScript API और Places API, दोनों को चुनें.
(अगर इनमें से कोई भी एपीआई सूची में नहीं है, तो आपको उसे चालू करना होगा.)
- सेव करें पर क्लिक करें.
इस्तेमाल करने की सीमाएं और नीतियां
कोटा
Places Library, Places API के साथ इस्तेमाल का कोटा शेयर करती है. इसके बारे में, Places API के इस्तेमाल की सीमाओं से जुड़े दस्तावेज़ में बताया गया है.
नीतियां
Maps JavaScript API की Places Library का इस्तेमाल, Places API के लिए बताई गई नीतियों के मुताबिक होना चाहिए.
जगह की जानकारी खोजने से जुड़ी क्वेरी
Places सेवा की मदद से, इस तरह की खोजें की जा सकती हैं:
- Find Place from Query टेक्स्ट क्वेरी के आधार पर किसी जगह की जानकारी दिखाता है. उदाहरण के लिए, किसी जगह का नाम या पता.
- फ़ोन नंबर से जगह की जानकारी पाना फ़ंक्शन, किसी फ़ोन नंबर के आधार पर जगह की जानकारी दिखाता है.
- आस-पास की जगहें ढूंढने की सुविधा उपयोगकर्ता की जगह के हिसाब से, आस-पास की जगहों की सूची दिखाती है.
- टेक्स्ट सर्च यह सुविधा, खोज स्ट्रिंग के आधार पर आस-पास की जगहों की सूची दिखाती है. उदाहरण के लिए, "पिज़्ज़ा".
- जगह के बारे में ज़्यादा जानकारी के अनुरोध से किसी जगह के बारे में ज़्यादा जानकारी मिलती है. इसमें उपयोगकर्ता की समीक्षाएं भी शामिल होती हैं.
जवाब में, रेस्टोरेंट, दुकानें, और ऑफ़िस जैसी जगहों की जानकारी मिल सकती है. साथ ही, 'जियोकोड' के नतीजे भी मिल सकते हैं. इनमें पते, राजनैतिक इलाके (जैसे कि कस्बे और शहर) और दिलचस्पी की अन्य जगहों की जानकारी शामिल होती है.
जगह की जानकारी पाने के अनुरोध
Find Place के अनुरोध की मदद से, किसी जगह को टेक्स्ट क्वेरी या फ़ोन नंबर से खोजा जा सकता है. जगह की जानकारी ढूंढने के लिए दो तरह के अनुरोध किए जा सकते हैं:
क्वेरी से जगह की जानकारी पाना
'क्वेरी से जगह की जानकारी ढूंढें' फ़ंक्शन, टेक्स्ट इनपुट लेता है और जगह की जानकारी दिखाता है. इनपुट के तौर पर, किसी भी तरह का जगह का डेटा इस्तेमाल किया जा सकता है. जैसे, कारोबार का नाम या पता. क्वेरी से जगह की जानकारी ढूंढने का अनुरोध करने के लिए, 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 (Maps JavaScript API की Places Library में अब इस्तेमाल नहीं किया जाता.
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 से, nearbySearch()
तरीके ने search() तरीके की जगह ले ली है.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
इस तरीके में, इन फ़ील्ड के साथ अनुरोध किया जाता है:
- इनमें से कोई एक:
bounds, जो एकgoogle.maps.LatLngBoundsऑब्जेक्ट होना चाहिए. यह ऑब्जेक्ट, खोज के लिए आयताकार क्षेत्र को तय करता है. बाउंड्री वाले इलाके के लिए, ज़्यादा से ज़्यादा 1,00,000 मीटर की दूरी तय की जा सकती है.locationऔरradius; पहले वाले मेंgoogle.maps.LatLngऑब्जेक्ट होता है और दूसरे वाले में एक सामान्य पूर्णांक होता है, जो वृत्त की त्रिज्या को मीटर में दिखाता है. ज़्यादा से ज़्यादा 50,000 मीटर के दायरे को टारगेट किया जा सकता है. ध्यान दें कि जबrankByको DISTANCE पर सेट किया जाता है, तब आपकोlocationकी वैल्यू देनी होगी. हालांकि,radiusयाboundsकी वैल्यू नहीं दी जा सकती.
keyword(ज़रूरी नहीं) — एक ऐसा शब्द जिसका मिलान, उपलब्ध सभी फ़ील्ड से किया जाना है. इसमें नाम, टाइप, और पता के साथ-साथ ग्राहक समीक्षाएं और तीसरे पक्ष का अन्य कॉन्टेंट शामिल है. हालांकि, यह सिर्फ़ इन्हीं तक सीमित नहीं है.minPriceLevelऔरmaxPriceLevel(ज़रूरी नहीं) — इससे नतीजे, तय की गई रेंज में मौजूद जगहों तक ही सीमित हो जाते हैं. मान्य वैल्यू, 0 (सबसे सस्ता) से लेकर 4 (सबसे महंगा) के बीच होती है. इसमें ये दोनों वैल्यू भी शामिल हैं.nameअब सेवा में नहीं है.keywordके बराबर. इस फ़ील्ड में मौजूद वैल्यू कोkeywordफ़ील्ड में मौजूद वैल्यू के साथ जोड़ दिया जाता है. इसके बाद, इन्हें एक ही खोज स्ट्रिंग के हिस्से के तौर पर पास किया जाता है.openNow(ज़रूरी नहीं) — यह एक बूलियन वैल्यू है. इससे पता चलता है कि Places सेवा को सिर्फ़ उन जगहों की जानकारी दिखानी चाहिए जो क्वेरी भेजे जाने के समय खुले हों. अगर आपने अपनी क्वेरी में यह पैरामीटर शामिल किया है, तो Google Places डेटाबेस में खुलने का समय नहीं बताने वाली जगहों के नतीजे नहीं दिखाए जाएंगे.openNowकोfalseपर सेट करने से कोई असर नहीं पड़ता.rankBy(ज़रूरी नहीं) — इससे यह तय होता है कि नतीजे किस क्रम में दिखाए जाएंगे. इन वैल्यू का इस्तेमाल किया जा सकता है:google.maps.places.RankBy.PROMINENCE(डिफ़ॉल्ट). इस विकल्प से, नतीजों को उनकी अहमियत के हिसाब से क्रम में लगाया जाता है. रैंकिंग में, सेट किए गए दायरे में मौजूद लोकप्रिय जगहों को, आस-पास की उन जगहों के मुकाबले ज़्यादा प्राथमिकता दी जाएगी जो खोज क्वेरी से मेल खाती हैं, लेकिन कम लोकप्रिय हैं. किसी जगह की प्रमुखता पर, Google के इंडेक्स में उसकी रैंकिंग, दुनिया भर में उसकी लोकप्रियता, और अन्य चीज़ों का असर पड़ सकता है.google.maps.places.RankBy.PROMINENCEकी वैल्यू तय करने पर,radiusपैरामीटर को शामिल करना ज़रूरी है.google.maps.places.RankBy.DISTANCE. इस विकल्प से, नतीजे बढ़ते क्रम में क्रमबद्ध किए जाते हैं. क्रमबद्ध करने के लिए,location(ज़रूरी है) से दूरी का इस्तेमाल किया जाता है. ध्यान दें कि अगर आपनेRankBy.DISTANCEकी वैल्यू दी है, तोboundsऔर/याradiusकी कस्टम वैल्यू नहीं दी जा सकती.RankBy.DISTANCEएट्रिब्यूट की वैल्यू देने पर,keyword,nameयाtypeमें से एक या उससे ज़्यादा एट्रिब्यूट की वैल्यू देना ज़रूरी है.
type— इससे नतीजों को उन जगहों तक सीमित किया जाता है जो तय किए गए टाइप से मेल खाती हैं. सिर्फ़ एक टाइप तय किया जा सकता है. अगर एक से ज़्यादा टाइप दिए जाते हैं, तो पहली एंट्री के बाद के सभी टाइप अनदेखा कर दिए जाते हैं. इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.
आपको nearbySearch() में कॉलबैक का तरीका भी पास करना होगा, ताकि नतीजों के ऑब्जेक्ट और google.maps.places.PlacesServiceStatus के जवाब को मैनेज किया जा सके.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, type: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } }
टेक्स्ट खोज के अनुरोध
Google Places 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 मेंopen_nowका इस्तेमाल अब नहीं किया जा सकता. इसकी जगह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 API से किस तरह का डेटा वापस पाना है. किसी जगह को उसके प्लेस आईडी से रेफ़रंस करने के तरीके के बारे में ज़्यादा जानें.
यह एक कॉलबैक तरीका भी लेता है. इसे 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"Alaska" और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_offsetMaps JavaScript API की Places Library में बंद कर दिया गया है. इसके बजाय,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);
जगह की फ़ोटो
अपनी साइट पर अच्छी क्वालिटी का फ़ोटोग्राफ़िक कॉन्टेंट जोड़ने के लिए, Place Photo सुविधा का इस्तेमाल करें. Photos सेवा की मदद से, Places और Google+ Local के डेटाबेस में सेव की गई लाखों फ़ोटो ऐक्सेस की जा सकती हैं. जगह की जानकारी पाने के लिए जगह के बारे में ज़्यादा जानकारी का अनुरोध करने पर, फ़ोटो के रेफ़रंस, फ़ोटोग्राफ़िक कॉन्टेंट के लिए दिखाए जाएंगे. आस-पास की जगहों की जानकारी और टेक्स्ट से खोजें अनुरोधों के लिए भी, हर जगह के हिसाब से एक फ़ोटो रेफ़रंस मिलता है. हालांकि, ऐसा सिर्फ़ तब होता है, जब वह फ़ोटो रेफ़रंस काम का हो. फ़ोटो सेवा का इस्तेमाल करके, रेफ़र की गई फ़ोटो ऐक्सेस की जा सकती हैं. साथ ही, इमेज का साइज़ बदलकर अपने ऐप्लिकेशन के लिए सबसे सही साइज़ सेट किया जा सकता है.
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 फ़ील्ड में कोई वैल्यू शामिल है, तो आपको अपने ऐप्लिकेशन में, इमेज दिखाने की हर जगह पर अतिरिक्त क्रेडिट शामिल करना होगा.