Place Photos (New) به شما امکان میدهد محتوای عکاسی با کیفیت بالا به برنامهتان اضافه کنید. «عکسهای مکان» به شما امکان میدهد به میلیونها عکسی که در پایگاه داده «مکانها» ذخیره شده است دسترسی داشته باشید. «عکسهای مکان» نشانی وب تصویر نقطهای را برمیگرداند. حداکثر اندازه تصویر بیتمپ ۴۸۰۰ در ۴۸۰۰ پیکسل است.
درخواستهای Place Photos
برای بازیابی تصویر مکان:
- از جزئیات مکان (جدید) برای واکشی شیء
Placeبااستفاده ازfetchPlace()استفاده کنید. حتماً فیلدPlace.Field PHOTO_METADATASرا در فهرست فیلدهایی که باید در شیء پاسخPlaceگنجانده شوند قرار دهید. - در
OnSuccessListenerبرایFetchPlaceResponse،Place.getPhotoMetadas()را فراخوانی کنید تا شیء فراداده عکس از نوعPhotoMetadataرا از شیء پاسخPlaceدریافت کنید. - برای ایجاد درخواست و ارسال شیء فراداده عکس و همچنین مقادیر حداکثر ارتفاع، حداکثر عرض، یا هر دو، شیء
FetchResolvedPhotoUriRequestایجاد کنید. - از
PlacesClient.fetchResolvedPhotoUri()برای درخواست شناسه منبع یکسان عکس استفاده کنید. 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.getAttributions()قابلدسترسی است. - AuthorAttributions،
شیء
AuthorAttributionsکه توسطPhotoMetadata.getAuthorAttributions()قابلدسترسی است.
اگر شیء PhotoMetadata برگشتی شامل هریک از انواع ارجاع باشد، باید
ارجاع را در برنامهتان در هر جایی که تصویر را نمایش میدهید بگنجانید. برای اطلاعات بیشتر،
نمایش ارجاعها را ببینید.