場所の写真(新規)

プラットフォームを選択: Android iOS ウェブサービス

Place Photos(新版)を使用すると、高画質の写真コンテンツを 説明します。Place Photos を使用すると、Google スプレッドシートで保存されている数百万もの写真に プレイスデータベースPlace Photos はビットマップ画像の URI を返します。ビットマップ 画像の最大サイズは 4,800 x 4,800 ピクセルです。

プレイスフォトのリクエスト

場所の画像を取得するには:

  1. Place Details(新)を使用し、Place オブジェクトを取得します。 fetchPlace()。 フィールドのリストには、Place.Field PHOTO_METADATAS フィールドを含めて、 レスポンスの Place オブジェクトに含める。
  2. OnSuccessListenerFetchPlaceResponse の場合は、Place.getPhotoMetadas() を呼び出して、PhotoMetadata タイプの写真メタデータ オブジェクトを取得します。 レスポンス Place オブジェクトから返されます。
  3. リクエストを行う FetchResolvedPhotoUriRequest オブジェクトを作成して、写真のメタデータ オブジェクトと、最大の高さ、最大幅、またはその両方の値を渡します。
  4. PlacesClient.fetchResolvedPhotoUri() を使用する を使用して写真の URI をリクエストします。
  5. OnSuccessListener を追加し、FetchResolvedPhotoUriResponse から写真の URI を取得します。 渡されます。

必須パラメータ

必須のパラメータは FetchResolvedPhotoUriRequest 次のとおりです。

  • 写真のメタデータ

    返される写真のメタデータ オブジェクト。

  • 最大の高さまたは最大幅

    返される画像の最大の高さと幅をピクセル単位で指定します。画像が指定された値より小さい場合は、元の画像が返されます。画像のサイズが大きい場合は、元のアスペクト比に合わせて、2 つのサイズのどちらか小さい方に合わせて拡大縮小されます。高さと最大幅の両方のプロパティには、1 ~ 4,800 の整数を指定できます。最大の高さ、最大幅、またはその両方を指定する必要があります。

    • 最大高さパラメータを設定するには、FetchResolvedPhotoUriRequest オブジェクトの作成時に setMaxHeight() メソッドを呼び出します。
    • 最大幅パラメータを設定するには、FetchResolvedPhotoUriRequest オブジェクトの作成時に setMaxWidth() メソッドを呼び出します。

Place Photos の例

次の例は、場所の写真の URI を取得する方法を示しています。

// 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.
        }
    });
});

帰属表示

ほとんどの場合、場所の写真は帰属情報なしで使用できます。または、 画像の一部として含まれている必要な帰属情報です。ただし、写真メタデータ オブジェクトは PhotoMetadata 次の 2 種類の追加の帰属情報のいずれかを含めることができます。

返された PhotoMetadata オブジェクトにいずれかのタイプのアトリビューションが含まれている場合は、 画像を表示する場所に帰属情報を含めてください。詳しくは アトリビューションの表示をご覧ください。