Yer Fotoğrafları (Yeni), uygulamanıza yüksek kaliteli fotoğraf içeriği eklemenize olanak tanır. Yer Fotoğrafları, Yerler veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Yer Fotoğrafları, bir bit eşlem görüntüsüne URI döndürür. Bit eşlem resminin maksimum boyutu 4.800 x 4.800 pikseldir.
Fotoğraf istekleri
Bir yere ait resim almak için:
fetchPlace()
kullanarak birPlace
nesnesi getirmek için Yer Ayrıntıları (Yeni) işlevini kullanın. YanıtPlace
nesnesine dahil edilecek alanlar listesinePlace.Field PHOTO_METADATAS
alanını eklediğinizden emin olun.FetchPlaceResponse
öğenizinOnSuccessListener
bölümünde, yanıtPlace
nesnesindenPhotoMetadata
türündeki fotoğraf meta veri nesnesini almak içinPlace.getPhotoMetadas()
komutunu çağırın.- İstekte bulunmak ve fotoğraf meta veri nesnesini ve maksimum yükseklik, maksimum genişlik veya her ikisinin değerlerini iletmek için bir
FetchResolvedPhotoUriRequest
nesnesi oluşturun. - Fotoğraf URI'si istemek için
PlacesClient.fetchResolvedPhotoUri()
öğesini 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 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 herhangi birinde daha büyükse orijinal en boy oranıyla sınırlı olmak üzere iki boyuttan daha küçük olanla eşleşecek şekilde ölçeklendirilir. Hem maksimum yükseklik hem de maksimum genişlik özellikleri 1 ile 4.800 arasında bir tam sayıyı 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ıf yapılmadan kullanılabilir veya gerekli atıf resmin bir parçası olarak eklenir. Ancak PhotoMetadata
türündeki fotoğraf meta veri nesnesi, iki tür ek ilişkilendirmeden birini içerebilir:
PhotoMetadata.getAttributions()
tarafından erişilen bir ilişkilendirme dizesi olan İlişkilendirmeler.- AuthorAttributions,
PhotoMetadata.getAuthorAttributions()
tarafından erişilen birAuthorAttributions
nesnesidir.
Döndürülen PhotoMetadata
nesnesi, iki türden bir atıf içeriyorsa ilişkilendirmeyi, görüntüyü görüntülediğiniz her yerde uygulamanıza eklemeniz gerekir. Daha fazla bilgi için İlişkilendirmeleri Görüntüleme konusuna bakın.