장소 사진

플랫폼 선택: Android iOS JavaScript 웹 서비스

Android용 Places SDK를 사용하여 표시할 수 있습니다. 사진 서비스에서 반환된 사진은 비즈니스 소유자, 사용자 제공 사진 등 다양한 출처의 데이터가 포함됩니다.

Android용 Places SDK는 최대 비트맵 이미지를 반환합니다. 크기는 1600x1600픽셀입니다.

사진 검색 프로세스

장소의 이미지를 가져오려면 다음 단계를 따르세요.

  1. Place Details를 사용하여 Place 객체 가져오기 fetchPlace() 또는 findCurrentPlace())을 입력합니다. 다음과 같이 필드 목록에 Place.Field PHOTO_METADATAS 필드를 포함해야 합니다. 응답 Place 객체에 포함합니다.
  2. OnSuccessListener 드림 에 대한 FetchPlaceResponse 또는 FindCurrentPlaceResponse, Place.getPhotoMetadas()를 사용하여 다음 유형의 사진 메타데이터 객체를 가져옵니다. PhotoMetadata 응답 Place 객체에서 삭제합니다.
  3. FetchPhotoRequest 객체를 만듭니다. 선택사항으로 최대 높이와 너비를 픽셀로 지정할 수 있습니다. 사진에 포함할 수 있는 항목 최대 너비 또는 높이는 1600픽셀입니다.
  4. PlacesClient.fetchPhoto() 사용 를 호출하여 사진 비트맵을 요청합니다.
  5. OnSuccessListener를 추가하고 FetchPhotoResponse

사진 가져오기

다음 예는 장소 사진을 가져오는 방법을 보여줍니다.

Kotlin



// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify fields. Requests for photos must always have the PHOTO_METADATAS field.
val fields = listOf(Place.Field.PHOTO_METADATAS)

// Get a Place object (this example uses fetchPlace(), but you can also use findCurrentPlace())
val placeRequest = FetchPlaceRequest.newInstance(placeId, fields)

placesClient.fetchPlace(placeRequest)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place

        // Get the photo metadata.
        val metada = place.photoMetadatas
        if (metada == null || metada.isEmpty()) {
            Log.w(TAG, "No photo metadata.")
            return@addOnSuccessListener
        }
        val photoMetadata = metada.first()

        // Get the attribution text.
        val attributions = photoMetadata?.attributions

        // Create a FetchPhotoRequest.
        val photoRequest = FetchPhotoRequest.builder(photoMetadata)
            .setMaxWidth(500) // Optional.
            .setMaxHeight(300) // Optional.
            .build()
        placesClient.fetchPhoto(photoRequest)
            .addOnSuccessListener { fetchPhotoResponse: FetchPhotoResponse ->
                val bitmap = fetchPhotoResponse.bitmap
                imageView.setImageBitmap(bitmap)
            }.addOnFailureListener { exception: Exception ->
                if (exception is ApiException) {
                    Log.e(TAG, "Place not found: " + exception.message)
                    val statusCode = exception.statusCode
                    TODO("Handle error with given status code.")
                }
            }
    }

      

자바


// 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.
    final String attributions = photoMetadata.getAttributions();

    // Create a FetchPhotoRequest.
    final FetchPhotoRequest photoRequest = FetchPhotoRequest.builder(photoMetadata)
        .setMaxWidth(500) // Optional.
        .setMaxHeight(300) // Optional.
        .build();
    placesClient.fetchPhoto(photoRequest).addOnSuccessListener((fetchPhotoResponse) -> {
        Bitmap bitmap = fetchPhotoResponse.getBitmap();
        imageView.setImageBitmap(bitmap);
    }).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.
        }
    });
});

      
<ph type="x-smartling-placeholder">

기여 분석

대부분의 경우 장소 사진은 저작자 표시 없이 사용할 수 있거나 이미지의 일부로 포함된 필수 저작자 표시입니다. 그러나 유형의 사진 메타데이터 개체는 PhotoMetadata님, 에는 다음 두 가지 유형의 추가 속성 중 하나가 포함될 수 있습니다.

반환된 PhotoMetadata 객체에 두 가지 유형의 기여 분석이 모두 포함된 경우 이미지를 표시할 때마다 애플리케이션에 저작자 표시를 포함해야 합니다. 자세한 내용은 저작자 표시 표시를 참고하세요.

사용량 및 결제

Places Photo SKU는 fetchPhoto() 호출에 대해 요금이 청구됩니다. 자세한 내용은 사용량 및 결제 페이지를 참조하세요.