SDK バージョンの選択

Places SDK for Android バージョン 3.4.0 は 2 つの SDK バージョンをサポートしています。Places SDK for Android は既存の SDK で、Places SDK for Android(新規)は次世代バージョンの SDK です。

Places SDK for Android バージョン 3.4.0 のリリースでは、まず使用する SDK を決定します。これは、新規のお客様、またはすでに SDK を使用している既存のお客様の場合に該当します。このガイドでは、2 つの SDK の主な違いについて説明します。

SDK バージョンの選択方法

バックエンドでは、Places SDK for Android は Places API(新規)か Places API のいずれかの Places API サービスに依存します。Places SDK for Android を使用するには、Google Cloud プロジェクトで Places API サービスを有効にする必要があります。

Android では、アプリで使用できる API を決定するために次の 2 つのアクションを行います。

  1. アプリでは、アプリで何を使用するのかに応じて、API キーに対して Places API(New)、Places API、またはその両方を有効にする必要があります。

  2. Places.initializeWithNewPlacesApiEnabled() メソッドまたは Places.initialize() メソッドを呼び出してアプリを初期化します。

SDK を選択する

有効にした Places API サービスのバージョンによって、アプリで使用する SDK のバージョンが制御されます。

  • 両方: Places SDK for AndroidPlaces SDK for Android の両方のすべての機能を有効にします。使用可能な機能を制御するには、Places.initializeWithNewPlacesApiEnabled() メソッドと Places.initialize() メソッドを使用します。

  • Places API: 既存の Places SDK for Android を有効にします。Places SDK for Android バージョン 3.4.0 で追加された新機能にはアクセスできません。

  • Places API(新規): Places SDK for Android(新規)と、Places SDK for Android に追加された主な機能(新規)に記載されているすべての新機能を有効にしますが、Current Place や Place Autocomplete などの既存の機能は有効になりません。

Places API サービスの選択について詳しくは、Google Cloud プロジェクトをセットアップするをご覧ください。

アプリの初期化

アプリを初期化するときに、Places.initializeWithNewPlacesApiEnabled() メソッドまたは Places.initialize() メソッドを呼び出す必要があります。

次の表に、各 SDK を有効にして各初期化メソッドを呼び出す場合の影響を示します。たとえば、Places SDK(新規)を有効にして Places.initializeWithNewPlacesApiEnabled() を呼び出すと、新しい API と既存の API をすべて使用できます。

Places SDK(New)を有効にして Places.initialize() を呼び出すと、Place Details と Place Photos の新機能は使用できなくなりますが、新しい Text Search を呼び出すことはできます。Places API を有効にしない場合は、古いバージョンの Place Details にはアクセスできませんが、新しい Text Search を呼び出すことはできます。

バージョン API API キーで SDK が有効 初期化メソッド
Places API Places API(新規) initialize() initializeWithNewPlacesApiEnabled()
v3.3.0 Places Details
Places Details(New)
写真のメタデータ(新)
テキスト検索(新版) どちらの方法でも
v3.4.0 写真の URI(新規)
写真のビットマップ どちらの方法でも
CurrentPlace どちらの方法でも
オートコンプリート どちらの方法でも

どの SDK を選択しますか。

どちらのバージョンを選ぶかを決めるには:

  1. Places SDK for Android を初めて使用する新規のお客様は、Places API(新規)と新しい SDK をお試しください。

  2. Kotlin のデベロッパーはどちらの SDK も使用できますが、Places SDK for Android(New)の新機能は、バージョン 3.4.0 の Java でのみご利用いただけます。

  3. 既存顧客でセッション トークンを使用している場合は、引き続き既存の SDK を使用してください。現在、Places SDK for Android(新)はセッション トークンをサポートしていません。

  4. 既存のお客様は、引き続き既存の SDK を使用できます。ただし、新しい SDK を使用することで、Places SDK for Android(New)のパフォーマンス向上と機能強化を利用できます。

    新しい SDK に移行する必要はありません。手順は次のとおりです。

    1. アプリで使用する API キーで [Places API (New)] を有効にします。詳しくは、API キーの使用をご覧ください。
    2. モジュール レベルの build.gradle ファイルの dependencies セクションで、places 依存関係を更新し、kotlin-bom 依存関係を追加します。

        dependencies {
            implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
            implementation 'com.google.android.libraries.places:places:3.3.0'
        }

      kotlin-bom 依存関係の詳細については、推移的依存関係での最新の kotlin-stdlib バージョンの使用をご覧ください。

    3. 既存のアプリを更新して、新しい Places.initializeWithNewPlacesApiEnabled() メソッドを呼び出してアプリを初期化します。詳細については、Places API クライアントを初期化するをご覧ください。

    既存のアプリは変更されずに引き続き機能しますが、SDK の新機能をすべて利用できます。

Places SDK for Android に追加された主な機能(新規)

このセクションでは、Places SDK for Android(New)に追加された主な機能について説明します。

Google Cloud 標準プラットフォームに実装

Places SDK for Android(新規)は、Google Cloud のサービス インフラストラクチャに実装されています。この実装により、プラットフォームの安全性と信頼性が高まります。この標準設計は SDK 全体にある程度の一貫性をもたらし、Places SDK for Android(New)による開発の効率を高めます。

パフォーマンスの向上

Places SDK for Android(新規)を使用すると、パフォーマンスが向上するため、既存の SDK を使用しているアプリを置き換える価値があります。

新しい Text Search サービス

テキスト検索は、文字列に基づいて場所のセットに関する情報を返します。たとえば、「渋谷 ピザショップ」や「新宿近くの靴店」、「中央通り 123 番地」などを返します。このサービスは、テキスト文字列と設定した場所のバイアスに一致する場所のリストを返します。

Placed Details と Place Photos に新しいレスポンス データを追加

  • Place Details で、レスポンスの Place オブジェクトに新しい Review クラスが追加されました。Place クラスには、このフィールドをサポートする新しい getReviews() メソッドが含まれています。getReviews() を呼び出すと、場所について最大 5 件のクチコミが返されます。

  • Place Photo は、PhotoMetadata クラスに AuthorAttributions を追加します。AuthorAttributions には AuthorAttribution オブジェクトの List が含まれます。

新しい URI レスポンスが Place Photos に追加されました

Place Photos を使用して、画像のビットマップへの URI を返せるようになりました。以前は、画像のビットマップ自体を返すだけでした。

シンプルな料金体系

Places SDK for Android(新)により、料金体系が簡素化され、使用したデータに対してのみ料金が発生します。簡素化された料金は、フィールド リスト(フィールド マスクとも呼ばれます)を使用して実装されます。

Place Details と Text Search では、フィールド リストを使用して、レスポンスで返されるフィールドのリストを制御できます。その後は、リクエストされたデータに対してのみ課金されます。不要なデータをリクエストしないように、フィールド リストを使用することをおすすめします。これにより、不要な処理時間と課金を回避できます。

両方の SDK の詳細な料金情報については、使用量と請求額をご覧ください。

展開された場所のタイプ

新しい SDK では、次の表に示す場所のタイプが追加されます。これらのタイプは、Place Details と Text Search のレスポンスの一部として返されます。Text Search の検索では、これらの新しい型と既存の型を使用することもできます。新しいタイプはテーブル A に含まれています。

タイプ
american_restaurant discount_store ice_cream_shop sandwich_shop
amusement_center dog_park indian_restaurant school_district
athletic_field electric_vehicle_charging_station indonesian_restaurant seafood_restaurant
auto_parts_store event_venue italian_restaurant ski_resort
banquet_hall extended_stay_hotel japanese_restaurant spanish_restaurant
barbecue_restaurant farm korean_restaurant sporting_goods_store
barber_shop ファームステイ lebanese_restaurant sports_club
bed_and_breakfast fast_food_restaurant Marina sports_complex
brazilian_restaurant ferry_terminal 短縮 steak_house
breakfast_restaurant fitness_center medical_lab sushi_restaurant
brunch_restaurant french_restaurant mediterranean_restaurant swimming_pool
bus_stop gift_shop mexican_restaurant テーラー
camping_cabin golf_course middle_eastern_restaurant telecommunications_service_provider
cell_phone_store greek_restaurant モーテル thai_restaurant
child_care_agency grocery_store national_park transit_depot
chinese_restaurant guest_house park_and_ride truck_stop
coffee_shop hair_salon performing_arts_theater turkish_restaurant
community_center hamburger_restaurant pizza_restaurant vegan_restaurant
コンサルタント ヘリポート playground vegetarian_restaurant
convention_center hiking_area 未就学児向け vietnamese_restaurant
コテージ historical_landmark private_guest_room visitor_center
courier_service home_improvement_store ramen_restaurant wedding_venue
cultural_center ホステル resort_hotel 卸売業者
dental_clinic hotel rest_stop
これらの新しいタイプに加え、Places API(New)では、表 A から表 B から以下のタイプを移動しました。つまり、検索の一部として次のタイプを使用できるようになりました。
  • country
  • administrative_area_level_1
  • administrative_area_level_2
  • postal_code
  • locality