Place Photos (Yeni), uygulamanıza yüksek kaliteli fotoğraf içerikleri eklemenizi sağlar. Yer Fotoğrafları, Yerler veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Place Photos, bir bit eşlem resminin URI'sini döndürür. Bit eşlem görüntünün maksimum boyutu 4.800 x 4.800 pikseldir.
Yerin Fotoğrafları istekleri
Bir yerin resmini almak için:
- Yer Ayrıntıları (Yeni)'nı kullanarak
fetchPlace()
ilePlace
nesnesi getirin.Place.Field PHOTO_METADATAS
alanını, yanıtPlace
nesnesine dahil edilecek alanlar listesine eklediğinizden emin olun. OnSuccessListener
içinde,FetchPlaceResponse
içinPlace
nesnesindenPhotoMetadata
türünde fotoğraf meta veri nesnesini almak üzerePlace.getPhotoMetadas()
işlevini çağırın.- İsteği oluşturmak ve fotoğraf meta verileri nesnesinin yanı sıra maksimum yükseklik, maksimum genişlik veya her ikisi için de değerler iletmek üzere bir
FetchResolvedPhotoUriRequest
nesnesi oluşturun. - Fotoğraf URI'sini istemek için
PlacesClient.fetchResolvedPhotoUri()
kullanın. OnSuccessListener
ekleyin veFetchResolvedPhotoUriResponse
nesnesinden fotoğraf URI'sini alın.
Gerekli parametreler
FetchResolvedPhotoUriRequest
için gerekli parametreler şunlardır:
-
Fotoğraf meta verileri
Döndürülecek fotoğrafın meta veri nesnesi.
-
Maksimum yükseklik veya maksimum genişlik
Döndürülecek resmin piksel cinsinden maksimum yüksekliğini ve genişliğini belirtir. Resim, belirtilen değerlerden küçükse orijinal resim döndürülür. Resim, boyutlardan herhangi birinde daha büyükse orijinal en boy oranı korunarak iki boyuttan daha küçük olanla eşleşecek şekilde ölçeklendirilir. Hem maksimum yükseklik hem de maksimum genişlik özellikleri 1 ile 4800 arasında bir tam sayı kabul eder. Maksimum yüksekliği, maksimum genişliği veya her ikisini de belirtmeniz gerekir.
- Maksimum yükseklik parametresini ayarlamak için
setMaxHeight()
nesnesini oluştururkenFetchResolvedPhotoUriRequest
yöntemini çağırın. - Maksimum genişlik parametresini ayarlamak için
setMaxWidth()
nesnesini oluştururkenFetchResolvedPhotoUriRequest
yöntemini çağırın.
- Maksimum yükseklik parametresini ayarlamak için
Yer Fotoğrafları örnekleri
Aşağıdaki örnekte, bir yer fotoğrafı URI'sinin nasıl alınacağı gösterilmektedir.
// 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. } }); });
İlişkilendirmeler
Çoğu durumda, yer fotoğrafları atıfta bulunulmadan kullanılabilir veya gerekli atıf, resmin bir parçası olarak eklenir. Ancak, PhotoMetadata
türündeki fotoğraf meta verileri nesnesi, iki tür ek ilişkilendirmeden birini içerebilir:
- İlişkilendirmeler:
PhotoMetadata.getAttributions()
ile erişilen bir ilişkilendirme dizesi. - AuthorAttributions, bir
AuthorAttributions
nesnesi olupPhotoMetadata.getAuthorAttributions()
tarafından erişilir.
Döndürülen PhotoMetadata
nesnesi, atıf türlerinden birini içeriyorsa resmi uygulamanızda gösterdiğiniz her yerde atıfı da eklemeniz gerekir. Daha fazla bilgi için Atıfları Gösterme başlıklı makaleyi inceleyin.