Place Photos (جدید)

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

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

Place Photos (New) به شما امکان می‌دهد محتوای عکاسی با کیفیت بالا به برنامه‌تان اضافه کنید. «عکس‌های مکان» به شما امکان می‌دهد به میلیون‌ها عکسی که در پایگاه داده «مکان‌ها» ذخیره شده است دسترسی داشته باشید. «عکس‌های مکان» نشانی وب تصویر نقطه‌ای را برمی‌گرداند. حداکثر اندازه تصویر بیت‌مپ ۴۸۰۰ در ۴۸۰۰ پیکسل است.

درخواست‌های Place Photos

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

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

پارامترهای الزامی

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

  • فراداده عکس

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

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

    حداکثر ارتفاع و عرض تصویر را برای برگرداندن به پیکسل مشخص می‌کند. اگر تصویر کوچک‌تر از مقادیر مشخص‌شده باشد، تصویر اصلی برگردانده خواهد شد. اگر تصویر در هریک از ابعاد بزرگ‌تر باشد، برای مطابقت با بعد کوچک‌تر مقیاس‌بندی می‌شود و به نسبت ابعادی اصلی‌اش محدود می‌شود. هر دو ویژگی حداکثر ارتفاع و حداکثر عرض یک عدد صحیح بین ۱ و ۴۸۰۰ را می‌پذیرند. باید حداکثر ارتفاع، حداکثر عرض، یا هر دو را مشخص کنید.

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

نمونه‌های Place Photos

مثال زیر نحوه دریافت شناسه منبع یکنواخت عکس مکان را نشان می‌دهد.

// 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
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 برگشتی شامل هریک از انواع ارجاع باشد، باید ارجاع را در برنامه‌تان در هر جایی که تصویر را نمایش می‌دهید بگنجانید. برای اطلاعات بیشتر، نمایش ارجاع‌ها را ببینید.