Yer Fotoğrafları (Yeni), uygulamanıza yüksek kalitede fotoğraf içeriği eklemenize olanak tanır. Yer Fotoğrafları, Yerler veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Place Photos, bit eşlem resme bir URI döndürür. Bit eşlem resminin boyutu en fazla 4.800x4.800 piksel olabilir.
Yer Fotoğrafı istekleri
Bir yer için resim almak üzere:
fetchPlace()
kullanarak birPlace
nesnesi getirmek için Yer Ayrıntıları (Yeni) seçeneğini kullanın.Place.Field PHOTO_METADATAS
alanını yanıtPlace
nesnesine dahil edilecek alanlar listesine eklediğinizden emin olun.FetchPlaceResponse
içinOnSuccessListener
bölümündePlace.getPhotoMetadas()
numaralı telefonu arayarakPhotoMetadata
türündeki fotoğraf meta verisi nesnesini yanıtPlace
nesnesinden alın.- İstekte bulunmak ve fotoğraf meta veri nesnesini ve maksimum yükseklik, maksimum genişlik ya da her ikisinin değerlerini iletmek için bir
FetchResolvedPhotoUriRequest
nesnesi oluşturun. - Fotoğraf URI'sini istemek için
PlacesClient.fetchResolvedPhotoUri()
öğesini kullanın. - Bir
OnSuccessListener
ekleyin veFetchResolvedPhotoUriResponse
nesnesinden fotoğraf URI'sini alın.
Gerekli parametreler
FetchResolvedPhotoUriRequest
için gerekli parametreler:
-
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 maksimum yüksekliğini ve genişliğini piksel cinsinden belirtir. Resim belirtilen değerlerden küçükse orijinal resim döndürülür. Resim iki boyuttan birinde daha büyükse, orijinal en boy oranıyla sınırlı olmak üzere iki boyuttan küçük olanına uyacak ş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 birden belirtmelisiniz.
- 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 bir yer fotoğrafı URI'sinin alınması 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 parçası olarak dahil edilir. Ancak PhotoMetadata
türündeki fotoğraf meta veri nesnesi, iki ek ilişkilendirme türünden birini içerebilir:
PhotoMetadata.getAttributions()
tarafından erişilen bir ilişkilendirme dizesi olan Attributions.PhotoMetadata.getAuthorAttributions()
tarafından erişilen birAuthorAttributions
nesnesi olan AuthorAttributions.
Döndürülen PhotoMetadata
nesnesi, her iki ilişkilendirme türünü de içeriyorsa görüntüyü görüntülediğiniz her yerde ilişkilendirmeyi uygulamanıza eklemeniz gerekir. Daha fazla bilgi için İlişkilendirmeleri Görüntüleme bölümüne bakın.