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

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript वेब सेवा

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

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

कॉन्टेंट बनाने Place ऑब्जेक्ट किसी खास जगह के बारे में जानकारी देता है. तो आप Place ऑब्जेक्ट को बेचते हैं:

किसी जगह का अनुरोध करते समय, आपको यह बताना होगा कि किस जगह का डेटा दिखाना है. ऐसा करने के लिए, Place.Field दिए जाने वाले डेटा को तय करने वाली वैल्यू. यह सूची एक महत्वपूर्ण विचार है, क्योंकि यह हर अनुरोध के लिए शुल्क तय किया जाता है.

क्योंकि स्थान डेटा परिणाम खाली नहीं हो सकते, केवल डेटा वाले स्थान परिणाम होते हैं लौटाया गया (उदाहरण के लिए, अगर किसी अनुरोध की गई जगह में कोई फ़ोटो नहीं है, तो photos फ़ील्ड, परिणाम में मौजूद नहीं होगा).

यहां दिए गए उदाहरण में, तीन तरह की जानकारी पास की गई है Place.Field की वैल्यू अनुरोध करने पर मिले डेटा के बारे में बताने के लिए:

Kotlin

// Specify the fields to return.
val placeFields = listOf(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS)

Java

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS);
  

स्थान ऑब्जेक्ट डेटा फ़ील्ड ऐक्सेस करें

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

  • getAddress() – जगह का पता, जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है फ़ॉर्मैट.
  • getAddressComponents()List के पते के कॉम्पोनेंट का इस्तेमाल करें. ये कॉम्पोनेंट इसका मकसद किसी जगह के पते के बारे में स्ट्रक्चर्ड जानकारी निकालना है. उदाहरण के लिए, उस शहर का पता लगाना जहां कोई जगह मौजूद है. इनका उपयोग न करें पते के फ़ॉर्मैट के लिए कॉम्पोनेंट; इसके बजाय, getAddress() पर कॉल करें, जो स्थानीय जगह के अनुसार फ़ॉर्मैट किया गया पता देता है.
  • getId() – जगह के लिए टेक्स्ट वाला आइडेंटिफ़ायर. मैसेज पढ़ा गया इस पेज के बाकी हिस्से में जगह के आईडी के बारे में ज़्यादा जानें.
  • getLatLng() – जगह की भौगोलिक जगह, अक्षांश और देशांतर निर्देशांकों के रूप में बताया जाता है.
  • getName() – जगह का नाम.
  • getOpeningHours()OpeningHours जगह के बारे में ज़्यादा जानें. रिफ़ंड करने के लिए OpeningHours.getWeekdayText() पर कॉल करें स्ट्रिंग की सूची जो के हर दिन के लिए कारोबार के खुलने और बंद होने का समय दिखाती है सप्ताह. इनकी सूची लौटाने के लिए OpeningHours.getPeriods() पर कॉल करें ज़्यादा जानकारी वाले period ऑब्जेक्ट getWeekdayText() के डेटा के बराबर है.

    Place ऑब्जेक्ट में यह भी शामिल है getCurrentOpeningHours() जो अगले सात दिनों के लिए किसी जगह के खुले होने का समय दिखाता है, और getSecondaryOpeningHours() जो अगले सात दिनों के लिए किसी जगह के खुले होने का दूसरा समय दिखाता है.

  • isOpen() – बूलियन से पता चलता है कि कोई जगह कौनसी है अभी खुला है. अगर कोई समय तय नहीं किया गया है, तो डिफ़ॉल्ट समय को सेट किया जाता है. isOpen अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है केवल तभी लौटाया जाएगा जब Place.Field.UTC_OFFSET और यहां Place.Field.OPENING_HOURS की सुविधा है. यह पक्का करने के लिए कि कैंपेन नतीजे पाने के लिए, Place.Field.BUSINESS_STATUS का अनुरोध करें और आपके मूल स्थान अनुरोध में Place.Field.UTC_OFFSET फ़ील्ड. अगर अनुरोध नहीं किया जाता है, तो यह माना जाता है कि कारोबार चालू है. इस्तेमाल करने का तरीका जानने के लिए, यह वीडियो देखें स्थान विवरण के साथ isOpen.

कुछ आसान उदाहरण:

Kotlin



val name = place.name
val address = place.address
val location = place.latLng

      

Java


final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

      

आईडी के हिसाब से जगह की जानकारी पाएं

जगह का आईडी, एक टेक्स्ट आइडेंटिफ़ायर होता है. इससे किसी जगह की खास पहचान होती है. तय सीमा में का उपयोग करके Android के लिए Places SDK टूल का इस्तेमाल किया है, तो आप Place.getId(). कॉन्टेंट बनाने जगह की जानकारी अपने-आप पूरा करने की सेवा दी गई खोज क्वेरी से मेल खाने वाली हर जगह के लिए एक जगह का आईडी भी दिखाता है और फ़िल्टर. आप जगह के आईडी को सेव कर सकते हैं और उसका इस्तेमाल Place फिर से ऑब्जेक्ट सबमिट करें.

आईडी से जगह की जानकारी पाने के लिए, इस नंबर पर कॉल करें PlacesClient.fetchPlace() FetchPlaceRequest पास करना.

एपीआई, FetchPlaceResponse में Task. कॉन्टेंट बनाने FetchPlaceResponse शामिल है Place ऑब्जेक्ट, दिए गए जगह के आईडी से मेल खाता है.

नीचे दिया गया कोड का उदाहरण, fetchPlace() को कॉल करने के बारे में बताता है देखें.

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")
        }
    }

      

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.
    }
});

      

खुलने की स्थिति पाएं

PlacesClient.isOpen(IsOpenRequest request) तरीका, IsOpenResponse ऑब्जेक्ट दिखाता है, जो बताता है कि कोई जगह जो अभी कॉल में दर्ज समय के आधार पर खुला है.

इस तरीके में, IsOpenRequest टाइप के एक आर्ग्युमेंट का इस्तेमाल किया जाता है, जिसमें ये चीज़ें शामिल होती हैं:

  • Place ऑब्जेक्ट या स्थान आईडी बताने वाली स्ट्रिंग.
  • 1970-01-01T00:00:00Z से लेकर मिलीसेकंड में समय बताने वाली, वैकल्पिक समय वैल्यू. अगर कोई समय तय नहीं किया गया है, तो डिफ़ॉल्ट समय को सेट किया जाता है.

इस तरीके के लिए ज़रूरी है कि Place ऑब्जेक्ट में ये फ़ील्ड मौजूद हों:

  • Place.Field.BUSINESS_STATUS
  • Place.Field.CURRENT_OPENING_HOURS
  • Place.Field.OPENING_HOURS
  • Place.Field.UTC_OFFSET

अगर Place ऑब्जेक्ट में ये फ़ील्ड नहीं दिए गए हैं या जगह का आईडी पास किया जाता है, तो यह तरीका इस्तेमाल करता है PlacesClient.fetchPlace() का इस्तेमाल करें. आवश्यक फ़ील्ड के साथ स्थल ऑब्जेक्ट बनाने के बारे में अधिक जानकारी के लिए, जगह की जानकारी देखें.

यहां दिए गए उदाहरण से पता चलता है कि कोई जगह फ़िलहाल खुली है या नहीं. इस उदाहरण में, आपको सिर्फ़ isOpen() के लिए जगह का आईडी:

Kotlin



val isOpenCalendar: Calendar = Calendar.getInstance()
val placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk"

val request: IsOpenRequest = try {
    IsOpenRequest.newInstance(placeId, isOpenCalendar.timeInMillis)
} catch (e: IllegalArgumentException) {
    e.printStackTrace()
    return
}
val isOpenTask: Task<IsOpenResponse> = placesClient.isOpen(request)
isOpenTask.addOnSuccessListener { response ->
    val isOpen = response.isOpen
}
// ...

      

Java


@NonNull
Calendar isOpenCalendar = Calendar.getInstance();
String placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk";
IsOpenRequest isOpenRequest;

try {
    isOpenRequest = IsOpenRequest.newInstance(placeId, isOpenCalendar.getTimeInMillis());
} catch (IllegalArgumentException e) {
    e.printStackTrace();
    return;
}

Task<IsOpenResponse> placeTask = placesClient.isOpen(isOpenRequest);

placeTask.addOnSuccessListener(
        (response) ->
                isOpen = response.isOpen());
// ...

      

अगला उदाहरण, isOpen() को कॉल करने का तरीका दिखाता है, जहां आप Place ऑब्जेक्ट पास करते हैं. Place ऑब्जेक्ट में, जगह का मान्य आईडी होना चाहिए:

Kotlin



val isOpenCalendar: Calendar = Calendar.getInstance()
var place: Place
val placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk"
// Specify the required fields for an isOpen request.
val placeFields: List<Place.Field> = listOf(
    Place.Field.BUSINESS_STATUS,
    Place.Field.CURRENT_OPENING_HOURS,
    Place.Field.ID,
    Place.Field.OPENING_HOURS,
    Place.Field.UTC_OFFSET
)

val placeRequest: FetchPlaceRequest =
    FetchPlaceRequest.newInstance(placeId, placeFields)
val placeTask: Task<FetchPlaceResponse> = placesClient.fetchPlace(placeRequest)
placeTask.addOnSuccessListener { placeResponse ->
    place = placeResponse.place

    val isOpenRequest: IsOpenRequest = try {
        IsOpenRequest.newInstance(place, isOpenCalendar.timeInMillis)
    } catch (e: IllegalArgumentException) {
        e.printStackTrace()
        return@addOnSuccessListener
    }
    val isOpenTask: Task<IsOpenResponse> = placesClient.isOpen(isOpenRequest)
    isOpenTask.addOnSuccessListener { isOpenResponse ->
        val isOpen = isOpenResponse.isOpen
    }
    // ...
}
// ...

      

Java


@NonNull
Calendar isOpenCalendar = Calendar.getInstance();
String placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk";
// Specify the required fields for an isOpen request.
List<Place.Field> placeFields = new ArrayList<>(Arrays.asList(
        Place.Field.BUSINESS_STATUS,
        Place.Field.CURRENT_OPENING_HOURS,
        Place.Field.ID,
        Place.Field.OPENING_HOURS,
        Place.Field.UTC_OFFSET
));

FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);

placeTask.addOnSuccessListener(
        (placeResponse) -> {
            Place place = placeResponse.getPlace();
            IsOpenRequest isOpenRequest;

            try {
                isOpenRequest = IsOpenRequest.newInstance(place, isOpenCalendar.getTimeInMillis());
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
                return;
            }
            Task<IsOpenResponse> isOpenTask = placesClient.isOpen(isOpenRequest);

            isOpenTask.addOnSuccessListener(
                    (isOpenResponse) -> isOpen = isOpenResponse.isOpen());
            // ...
        });
// ...

      

अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं

जब आपका ऐप्लिकेशन, जगह की जानकारी के साथ-साथ जगह की समीक्षाएं दिखाता है, तो उसे भी यह जानकारी दिखनी चाहिए किसी भी एट्रिब्यूशन का इस्तेमाल करें. ज़्यादा जानकारी के लिए, यह देखें एट्रिब्यूशन.

जगह के आईडी के बारे में ज़्यादा जानकारी

Android के लिए, 'जगहें' SDK टूल में इस्तेमाल किया गया स्थान आईडी एक ही आइडेंटिफ़ायर है जिसका इस्तेमाल Location API में किया गया है. हर जगह का आईडी सिर्फ़ एक जगह से जुड़ा हो सकता है. हालांकि, एक जगह का ज़्यादा आईडी मौजूद हो सकता है एक स्थान आईडी से ज़्यादा. कुछ अन्य वजहों से भी ऐसा हो सकता है कि नया स्थान आईडी देखें. उदाहरण के लिए, ऐसा तब हो सकता है, जब कोई कारोबार नए स्टोर में शिफ़्ट हो जाता है स्थान.

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

ज़्यादा जानकारी के लिए, देखें जगह के आईडी की खास जानकारी.