Yer Fotoğrafları (Yeni)

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:

  1. fetchPlace() kullanarak bir Place nesnesi getirmek için Yer Ayrıntıları (Yeni) seçeneğini kullanın. Place.Field PHOTO_METADATAS alanını yanıt Place nesnesine dahil edilecek alanlar listesine eklediğinizden emin olun.
  2. FetchPlaceResponse için OnSuccessListener bölümünde Place.getPhotoMetadas() numaralı telefonu arayarak PhotoMetadata türündeki fotoğraf meta verisi nesnesini yanıt Place nesnesinden alın.
  3. İ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.
  4. Fotoğraf URI'sini istemek için PlacesClient.fetchResolvedPhotoUri() öğesini kullanın.
  5. Bir OnSuccessListener ekleyin ve FetchResolvedPhotoUriResponse 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ştururken setMaxHeight() yöntemini çağırın.
    • Maksimum genişlik parametresini ayarlamak için FetchResolvedPhotoUriRequest nesnesini oluştururken setMaxWidth() yöntemini çağırın.

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:

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.