Yer Fotoğrafları (Yeni), uygulamanıza yüksek kaliteli fotoğraf içerikleri eklemenize olanak tanır. Yer Fotoğrafları, Yerler veritabanında depolanan milyonlarca fotoğrafa erişim sağlar. PlacePhotos, bir bitmap resminin URI'sini döndürür. Bit eşleme resminin maksimum boyutu 4.800x4.800 pikseldir.
Yer Fotoğrafları istekleri
Bir yerin resmini almak için:
fetchPlace()
kullanarak birPlace
nesnesi almak için Yer Ayrıntıları (Yeni)'ni kullanın. YanıtPlace
nesnesine eklenecek alanlar listesinePlace.Field PHOTO_METADATAS
alanını eklediğinizden emin olun.FetchPlaceResponse
içinOnSuccessListener
bölümünde,Place
yanıt nesnesindenPhotoMetadata
türündeki fotoğraf meta veri nesnesini almak içinPlace.getPhotoMetadas()
işlevini çağırın.- İsteği yapmak ve fotoğraf meta veri nesnesini, maksimum yükseklik, maksimum genişlik veya her ikisinin değerlerini iletmek için bir
FetchResolvedPhotoUriRequest
nesnesi oluşturun. - Fotoğraf URI'sini istemek için
PlacesClient.fetchResolvedPhotoUri()
simgesini kullanın. - Bir
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 herhangi bir boyutta daha büyükse orijinal en boy oranıyla kısıtlanarak iki boyuttan daha küçük olana uyacak şekilde ölçeklendirilir. Hem maksimum yükseklik hem de maksimum genişlik özellikleri 1 ile 4.800 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
FetchResolvedPhotoUriRequest
nesnesini oluştururkensetMaxHeight()
yöntemini çağırın. - Maksimum genişlik parametresini ayarlamak için
FetchResolvedPhotoUriRequest
nesnesini oluştururkensetMaxWidth()
yöntemini çağırın.
- Maksimum yükseklik parametresini ayarlamak için
Yer Fotoğrafları örnekleri
Aşağıdaki örnekte, 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
Yer fotoğrafları çoğu durumda ilişkilendirme olmadan kullanılabilir veya gerekli ilişkilendirme, resmin bir parçası olarak eklenir. Ancak PhotoMetadata
türündeki fotoğraf meta verisi nesnesi, aşağıdaki iki ek ilişkilendirme türünden birini içerebilir:
- Attributions (İlişkilendirmeler),
PhotoMetadata.getAttributions()
tarafından erişilen bir ilişkilendirme dizesidir. PhotoMetadata.getAuthorAttributions()
tarafından erişilen birAuthorAttributions
AuthorAttributions nesnesi.
Döndürülen PhotoMetadata
nesnesi bu ilişkilendirme türlerinden birini içeriyorsa resmi gösterdiğiniz her yerde ilişkilendirmeyi uygulamanıza eklemeniz gerekir. Daha fazla bilgi için İlişkilendirmeleri görüntüleme başlıklı makaleyi inceleyin.