Yer Fotoğrafları (Yeni)

Platform seçin: Android iOS Web Hizmeti

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Yer Fotoğrafları (Yeni), uygulamanıza yüksek kaliteli fotoğraf içerikleri eklemenizi sağlar. Place Photos, Places veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Place Photos, bitmap resme giden bir URI döndürür. Bit eşlem resminin maksimum boyutu 4.800 x 4.800 pikseldir.

Place Photos istekleri

Bir yerin resmini almak için:

  1. fetchPlace() kullanarak bir Place nesnesi getirmek için Yer Ayrıntıları (Yeni) özelliğini kullanın. Yanıt Place nesnesine dahil edilecek alanlar listesine Place.Field PHOTO_METADATAS alanını eklediğinizden emin olun.
  2. FetchPlaceResponse için OnSuccessListener içinde, Place yanıt nesnesinden PhotoMetadata türündeki fotoğraf meta veri nesnesini almak için Place.getPhotoMetadas() yöntemini çağırın.
  3. İsteği göndermek için bir FetchResolvedPhotoUriRequest nesnesi oluşturun ve fotoğraf meta veri nesnesinin yanı sıra maksimum yükseklik, maksimum genişlik veya her ikisi için değerleri iletin.
  4. Fotoğraf URI'sini istemek için PlacesClient.fetchResolvedPhotoUri() kullanın.
  5. OnSuccessListener ekleyin ve FetchResolvedPhotoUriResponse 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 olanına göre ölçeklendirilir. Maksimum yükseklik ve 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ş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 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
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 veri nesnesi, iki tür ek atıftan birini içerebilir:

Döndürülen PhotoMetadata nesnesi her iki türde ilişkilendirmeyi de içeriyorsa resmi uygulamanızda gösterdiğiniz her yerde ilişkilendirmeyi eklemeniz gerekir. Daha fazla bilgi için Atıfları Gösterme başlıklı makaleyi inceleyin.