عکس‌های مکان (جدید)

پلتفرم را انتخاب کنید: وب سرویس اندروید iOS

عکس‌های مکان (جدید) به شما امکان می‌دهد محتوای عکاسی با کیفیت بالا را به برنامه خود اضافه کنید. Place Photos به شما امکان می دهد به میلیون ها عکس ذخیره شده در پایگاه داده Places دسترسی داشته باشید. Place Photos یک URI را به یک تصویر بیت مپ برمی گرداند. اندازه تصویر بیت مپ حداکثر 4800 در 4800 پیکسل است.

درخواست عکس‌ها را قرار دهید

برای بازیابی یک تصویر برای یک مکان:

  1. از جزئیات مکان (جدید) برای واکشی یک شی Place با استفاده از fetchPlace() استفاده کنید. حتماً فیلد Place.Field PHOTO_METADATAS را در لیست فیلدهایی که باید در شیء پاسخ Place گنجانده شود، قرار دهید.
  2. در OnSuccessListener برای FetchPlaceResponse ، Place.getPhotoMetadas() را فراخوانی کنید تا شیء فراداده عکس از نوع PhotoMetadata را از شیء پاسخ Place دریافت کنید.
  3. یک شی FetchResolvedPhotoUriRequest برای درخواست و ارسال شی فوق داده عکس، و همچنین مقادیر حداکثر ارتفاع، حداکثر عرض یا هر دو ایجاد کنید.
  4. از PlacesClient.fetchResolvedPhotoUri() برای درخواست URI عکس استفاده کنید.
  5. یک OnSuccessListener اضافه کنید و URI عکس را از شی FetchResolvedPhotoUriResponse دریافت کنید.

پارامترهای مورد نیاز

پارامترهای مورد نیاز برای FetchResolvedPhotoUriRequest عبارتند از:

  • فراداده عکس

    شیء فراداده عکس برای بازگشت.

  • حداکثر ارتفاع یا حداکثر عرض

    حداکثر ارتفاع و عرض تصویر را بر حسب پیکسل مشخص می کند. اگر تصویر کوچکتر از مقادیر مشخص شده باشد، تصویر اصلی برگردانده می شود. اگر تصویر در هر یک از ابعاد بزرگتر باشد، برای مطابقت با ابعاد کوچکتر از دو بعد، محدود به نسبت تصویر اصلی آن، مقیاس بندی می شود. هر دو ویژگی حداکثر ارتفاع و حداکثر عرض یک عدد صحیح بین 1 و 4800 را می پذیرند. شما باید حداکثر ارتفاع، حداکثر عرض یا هر دو را مشخص کنید.

    • برای تنظیم پارامتر حداکثر ارتفاع، هنگام ساختن شی FetchResolvedPhotoUriRequest ، متد setMaxHeight() را فراخوانی کنید.
    • برای تنظیم پارامتر حداکثر عرض، هنگام ساختن شی FetchResolvedPhotoUriRequest متد setMaxWidth() را فراخوانی کنید.

نمونه عکس‌های مکان

مثال زیر دریافت URI عکس مکان را نشان می دهد.

// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify fields. Requests for photos must always have the PHOTO_METADATAS field.
final List<Place.Field> fields = Collections.singletonList(Place.Field.PHOTO_METADATAS);

// Get a Place object (this example uses fetchPlace(), but you can also use findCurrentPlace())
final FetchPlaceRequest placeRequest = FetchPlaceRequest.newInstance(placeId, fields);

placesClient.fetchPlace(placeRequest).addOnSuccessListener((response) -> {
    final Place place = response.getPlace();

    // Get the photo metadata.
    final List<PhotoMetadata> metadata = place.getPhotoMetadatas();
    if (metadata == null || metadata.isEmpty()) {
        Log.w(TAG, "No photo metadata.");
        return;
    }
    final PhotoMetadata photoMetadata = metadata.get(0);

    // Get the attribution text and author attributions.
    final String attributions = photoMetadata.getAttributions();
    final AuthorAttributions authorAttributions = photoMetadata.getAuthorAttributions();

    // Create a FetchResolvedPhotoUriRequest.
    final FetchResolvedPhotoUriRequest photoRequest = FetchResolvedPhotoUriRequest.builder(photoMetadata)
        .setMaxWidth(500)
        .setMaxHeight(300)
        .build();

    // Request the photo URI
    placesClient.fetchResolvedPhotoUri(photoRequest).addOnSuccessListener((fetchResolvedPhotoUriResponse) -> {
        Uri uri = fetchResolvedPhotoUriResponse.getUri();
        RequestOptions requestOptions = new RequestOptions().override(Target.SIZE_ORIGINAL);
        Glide.with(this).load(uri).apply(requestOptions).into(imageView);
    }).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.
        }
    });
});

اسناد

در بیشتر موارد، عکس‌های مکان را می‌توان بدون ذکر منبع استفاده کرد، یا به عنوان بخشی از تصویر، اسناد مورد نیاز را درج می‌کند. با این حال، شیء فراداده عکس، از نوع PhotoMetadata ، می‌تواند شامل یکی از دو نوع اسناد اضافی باشد:

اگر شی PhotoMetadata برگردانده شده شامل هر یک از انواع انتساب است، باید در هر کجا که تصویر را نمایش می دهید، انتساب را در برنامه خود قرار دهید. برای اطلاعات بیشتر، به نمایش اسناد اشاره کنید.