Android के लिए Places SDK टूल, जगहों के बारे में बेहतर जानकारी देता है, जिसमें जगह का नाम और पता, अक्षांश/देशांतर निर्देशांकों के तौर पर दी गई भौगोलिक जगह, जगह का टाइप (जैसे कि नाइट क्लब, पालतू जानवरों की दुकान, संग्रहालय वगैरह) शामिल है. किसी खास जगह की यह जानकारी ऐक्सेस करने के लिए, जगह का आईडी डाला जा सकता है. जगह का आईडी, स्थायी तौर पर किसी जगह की पहचान करता है.
जगह की जानकारी
Place
ऑब्जेक्ट, किसी खास जगह के बारे में जानकारी देता है. Place
ऑब्जेक्ट को होल्ड करने के ये तरीके हैं:
PlacesClient.findCurrentPlace()
पर कॉल करें – मौजूदा जगह की जानकारी पाने के लिए गाइड देखें.PlacesClient.fetchPlace()
पर कॉल करें – आईडी से जगह की जानकारी पाने के लिए गाइड देखें.
जब आप किसी जगह के लिए अनुरोध करते हैं, तो आपको यह बताना होता है कि जगह का कौनसा डेटा देना है. ऐसा करने के लिए, दिए गए डेटा के बारे में बताने वाले Place.Field की सूची दें. यह सूची एक अहम विचार है, क्योंकि इससे हर अनुरोध की लागत पर असर पड़ता है.
जगह के डेटा के नतीजे खाली नहीं हो सकते. इसलिए, सिर्फ़ जगह की जानकारी के डेटा वाले नतीजे दिखाए जाते हैं. उदाहरण के लिए, अगर किसी अनुरोध की गई जगह की फ़ोटो मौजूद नहीं है, तो खोज के नतीजों में photos
फ़ील्ड नहीं दिखेगा.
नीचे दिए गए उदाहरण में अनुरोध से मिले डेटा के बारे में बताने के लिए, तीन Place.Field वैल्यू की सूची दी गई है:
Java
// Specify the fields to return. final ListplaceFields = Arrays.asList(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS);
Kotlin
// Specify the fields to return. val placeFields = listOf(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS)
Place
ऑब्जेक्ट मिलने के बाद, जगह का डेटा वापस पाने के लिए, ऑब्जेक्ट के तरीकों का इस्तेमाल करें.
नीचे कुछ उपलब्ध तरीकों के उदाहरण दिए गए हैं. सभी तरीकों की पूरी सूची देखने के लिए, Place
एपीआई का रेफ़रंस देखें.
getAddress()
– जगह का पता, इंसान के लिए पढ़ने लायक फ़ॉर्मैट में.getAddressComponents()
– इस जगह के लिए पते के कॉम्पोनेंट काList
. ये कॉम्पोनेंट किसी जगह के पते के बारे में स्ट्रक्चर्ड जानकारी निकालने के लिए दिए जाते हैं. जैसे, वह शहर ढूंढना जहां वह जगह मौजूद है. पते के फ़ॉर्मैट के लिए इन कॉम्पोनेंट का इस्तेमाल न करें. इसके बजाय,getAddress()
को कॉल करें, जो स्थानीय जगह के हिसाब से फ़ॉर्मैट किया गया पता देता है.getID()
– जगह की जानकारी के लिए टेक्स्ट आइडेंटिफ़ायर. इस पेज के बाकी हिस्से में, जगह के आईडी के बारे में ज़्यादा जानें.getLatLng()
– जगह की भौगोलिक जगह, जिसे अक्षांश और देशांतर निर्देशांकों के तौर पर दिखाया गया है.getName()
– जगह का नाम.getOpeningHours()
– जगह काOpeningHours
. स्ट्रिंग की सूची लौटाने के लिए,OpeningHours.getWeekdayText()
को कॉल करें. इससे, हफ़्ते के हर दिन के लिए, कारोबार के खुलने और बंद होने का समय पता चलता है.period
ऑब्जेक्ट की सूची लौटाने के लिए,OpeningHours.getPeriods()
को कॉल करें. इस सूची में, ज़्यादा जानकारी मौजूद होती है, जोgetWeekdayText()
के डेटा से मिलती-जुलती होती है. ध्यान दें: अगर कोई जगह हमेशा खुली रहती है, तो समय अवधि को रविवार की आधी रात के तौर पर दिखाया गया है औरcloseEvent
शून्य है.isOpen()
– वह बूलियन जिससे पता चलता है कि वह जगह फ़िलहाल खुली है या नहीं. अगर कोई समय तय नहीं किया गया है, तो डिफ़ॉल्ट समय सेट कर दिया जाता है.isOpen
तब ही दिखाए जाएंगे, जबPlace.Field.UTC_OFFSET
औरPlace.Field.OPENING_HOURS
, दोनों उपलब्ध हों. सही नतीजे पाने के लिए, मूल जगह के अनुरोध मेंPlace.Field.BUSINESS_STATUS
औरPlace.Field.UTC_OFFSET
फ़ील्ड का अनुरोध करें. अनुरोध न किए जाने पर, यह माना जाता है कि कारोबार चल रहा है. जगह की जानकारी के साथisOpen
का इस्तेमाल करने का तरीका जानने के लिए, यह वीडियो देखें.
कुछ सरल उदाहरण:
Java
final CharSequence name = place.getName(); final CharSequence address = place.getAddress(); final LatLng location = place.getLatLng();
Kotlin
val name = place.name val address = place.address val location = place.latLng
आईडी की मदद से जगह की जानकारी पाएं
जगह का आईडी, टेक्स्ट के तौर पर एक आइडेंटिफ़ायर होता है. यह किसी जगह की पहचान करता है. Android के लिए Places SDK टूल में, आप Place.getId()
पर कॉल करके किसी जगह का आईडी पा सकते हैं.
Place ऑटोकंप्लीट सेवा, हर उस जगह के लिए जगह का आईडी भी दिखाती है जो दी गई खोज क्वेरी और फ़िल्टर से मेल खाती है. जगह के आईडी को स्टोर करें और उसका इस्तेमाल Place
ऑब्जेक्ट को वापस पाने के लिए करें.
आईडी से जगह की जानकारी पाने के लिए, PlacesClient.fetchPlace()
को कॉल करें, फिर FetchPlaceRequest
पास करें.
एपीआई,
Task
में एक
FetchPlaceResponse
दिखाता है.
FetchPlaceResponse
में, Place
ऑब्जेक्ट है, जो दिए गए जगह के आईडी से मेल खाता है.
नीचे दिए गए कोड के उदाहरण में बताई गई जगह के बारे में जानकारी पाने के लिए, fetchPlace()
को कॉल करने का तरीका बताया गया है.
Java
// Define a Place ID. final String placeId = "INSERT_PLACE_ID_HERE"; // Specify the fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Construct a request object, passing the place ID and fields array. final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields); placesClient.fetchPlace(request).addOnSuccessListener((response) -> { Place place = response.getPlace(); Log.i(TAG, "Place found: " + place.getName()); }).addOnFailureListener((exception) -> { if (exception instanceof ApiException) { final ApiException apiException = (ApiException) exception; Log.e(TAG, "Place not found: " + exception.getMessage()); final int statusCode = apiException.getStatusCode(); // TODO: Handle error with given status code. } });
Kotlin
// Define a Place ID. val placeId = "INSERT_PLACE_ID_HERE" // Specify the fields to return. val placeFields = listOf(Place.Field.ID, Place.Field.NAME) // Construct a request object, passing the place ID and fields array. val request = FetchPlaceRequest.newInstance(placeId, placeFields) placesClient.fetchPlace(request) .addOnSuccessListener { response: FetchPlaceResponse -> val place = response.place Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}") }.addOnFailureListener { exception: Exception -> if (exception is ApiException) { Log.e(TAG, "Place not found: ${exception.message}") val statusCode = exception.statusCode TODO("Handle error with given status code") } }
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं
जब आपका ऐप्लिकेशन, जगह की जानकारी दिखाता है, तब ऐप्लिकेशन को भी एट्रिब्यूट दिखाने चाहिए. एट्रिब्यूशन से जुड़े दस्तावेज़ देखें.
जगह के आईडी के बारे में ज़्यादा जानकारी
Android के लिए Places SDK टूल में इस्तेमाल की जाने वाली जगह का आईडी, वही आइडेंटिफ़ायर होता है जिसका इस्तेमाल Places API में किया जाता है. हर जगह के आईडी का उल्लेख सिर्फ़ एक जगह के लिए किया जा सकता है, लेकिन एक ही जगह के लिए एक से ज़्यादा जगह के आईडी हो सकते हैं. कुछ दूसरी वजहों से, जगह की जानकारी को नया जगह का आईडी मिल सकता है. उदाहरण के लिए, ऐसा तब हो सकता है, जब कारोबार नई जगह पर पहुंच जाता है.
जब आप किसी प्लेस आईडी के बारे में बताते हुए जगह का अनुरोध करते हैं, तो इस बात को लेकर भरोसा हो सकता है कि आपको जवाब में हमेशा वही जगह मिलेगी (अगर वह जगह अब भी मौजूद है). ध्यान दें कि रिस्पॉन्स में एक ऐसी जगह का आईडी हो सकता है जो आपके अनुरोध में दिए गए आईडी से अलग हो.
ज़्यादा जानकारी के लिए, जगह के आईडी की खास जानकारी देखें.