Google Earth Engine Solar API から Google Maps Platform Solar API に移行するには:
- クラウド プロジェクトで Google Maps Platform Solar API を有効にします。
- 新しいキーを作成し、GMP Solar API に制限します。
- 以下の手順に沿ってコードを更新します。
横並びでの比較
Solar API(新規) | Earth Engine Solar API(非推奨) | |
---|---|---|
リリース ステータス | リリース済み | 試験運用(非推奨) |
アクセス | ||
メカニズム | Google Cloud アカウント(Cloud コンソールから、Solar API を有効にして [Google Maps Platform] セクションで API を管理) | Google Cloud アカウント(Cloud コンソールから Earth Engine Solar API を有効にすることで取得) |
対象 | 公開 | アクセス制御 |
レベル | セルフプロビジョニング | クラウド プロジェクトへの手動アクセス |
認証 | API キーと OAuth | API キー |
料金 | ||
戦略 | 従量課金制 | 100% 割引 |
階層化 | クエリ 1, 000 件あたり(ボリュームに基づいて料金が減額) | – |
エンドポイント | エンドポイントごとに異なる料金 | – |
Cloud | ||
モニタリング | [Google Maps Platform] の [Cloud Monitoring] | [API とサービス] の [Cloud Monitoring] |
割り当て | QPM(1 分あたりのクエリ数)と QPH(1 時間あたりのクエリ数) | 年間 |
ロギング | Cloud Logging(省略可) | Cloud Logging(省略可) |
課金 | Cloud 請求先アカウント | - |
サポート | SLO/SLA による Google Maps Platform の完全なサポート | 制限あり(メール) |
API | ||
ホスト名 | https://solar.googleapis.com/v1/ (REST) |
https://earthenginesolar.googleapis.com/v1/ (REST) |
メソッド |
|
|
レスポンス | 試験運用版と変更なし | – |
solarInfo |
半径 100 m 以内 | 半径 100 m 以内 |
対象範囲 | ||
地域 | グローバル | グローバル |
データ品質 | HIGH /MEDIUM |
HIGH /MEDIUM |
建物のタイプ | 住所にマッピングされ、Solar API の画像範囲内にある建物 | 住所にマッピングされ、Solar API の画像範囲内にある建物 |
利用規約 | ||
利用規約 | Google Maps Platform 利用規約 | Google Earth Engine の利用規約 |
詳細な手順
Google Cloud プロジェクトを設定する
手順については、Google Cloud プロジェクトを設定するをご覧ください。
Cloud プロジェクトを作成できるのは特定のロールのみです。プロジェクトを作成できない場合は、組織の管理者にお問い合わせください。
既存の Cloud プロジェクトを使用することもできます。詳しくは、Google Maps Platform スタートガイドをご覧ください。
請求先アカウントを設定する
手順については、請求先アカウントを管理する方法をご覧ください。
既存の請求先アカウントで既存の Cloud プロジェクトを使用できます。
API キーを取得するか、OAuth トークンを使用する
Google Cloud プロジェクトをセットアップした後は、API キーを使用するの説明に従って、Solar API を使用するために API キーを作成および保護する必要があります。または、OAuth を使用するの説明に従って OAuth トークンを作成することもできます。
Solar API を使用する
- 新しいエンドポイント(https://solar.googleapis.com)に GET リクエストを送信します。
- 一部の API メソッド名が変更されています。
buildings:findClosest
→buildingInsights:findClosest
solarinfo:get
→dataLayers:get
クイック トライアル: 前の手順で保存した API キーを使用して、以下のサンプルクエリの YOUR_API_KEY
を置き換えてから、ブラウザで URL を読み込みます。
https://solar.googleapis.com/v1/dataLayers:get?location.latitude=37.2746464&location.longitude=-121.7530949&radius_meters=10&key=YOUR_API_KEY
元のプレビュー リリースに対するレスポンス
2023 年 5 月 9 日の最初のプレビュー リリースの場合、レスポンスの URL は次の形式になります。
https://earthengine.googleapis.com/v1alpha/projects/sunroof-api/thumbnails/THUMBNAIL_ID:getPixels
次のスニペットはレスポンスの例を示しています。
{ "imageryDate": { "year": 2015, "month": 8, "day": 8 }, "imageryProcessedDate": { "year": 2021, "month": 2, "day": 15 }, "dsmUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/fbde33e9cd16d5fd10d19a19dc580bc1-8614f599c5c264553f821cd034d5cf32:getPixels", "rgbUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/91ed3551f2d0abee20af35e07bd0c927-c96c59e80cf1fc1dc86cf59fc8ec86ba:getPixels", "maskUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/e4051553dba6870c03d855ae82c30b7e-7cc8ae6ce7c73f219e3c1924e5c17fc6:getPixels", "annualFluxUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/9b0f87f49d778a65c9e27ff936e6dbba-b90be2fe80d25abd4c9e8c4dc809f763:getPixels", "monthlyFluxUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/90e7cca77402f14809e349937f0a0be8-94fafeb4ef42d72f1b3c0652a1cb5518:getPixels", "hourlyShadeUrls": [ "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/dcd276e4782aef4ff1b230b781736d37-e193b231ce57a03449afc3e21cf6783b:getPixels", ... ] }
レスポンスの URL にリクエストを送信するには、URL 全体をリクエストに含めます。
このリクエストとレスポンスの完全な仕様については、リファレンス ドキュメントをご覧ください。
両方のレスポンス形式をサポートするアプリを作成する
これで、元のプレビュー レスポンスと現在のレスポンスの両方の形式を処理するアプリを作成できるようになりました。
2 つのレスポンスの主な違いは、実際の URL 自体以外に、新しいレスポンス形式の URL にアクセスするリクエストに API キーを渡す必要がある点です。API キーを省略すると、リクエストは失敗します。
たとえば、次のコードをアプリに追加して、URL を調べ、各バージョンを正しく処理できます。
JavaScript
/** * Function to examine a response URL and to append the API key to the * URL if it is in the new format. */ function prepareGetGeoTiffUrl(geoTiffUrl, apiKey) { if (geoTiffUrl.match("solar.googleapis.com")) { let url = new URL(geoTiffUrl); url.searchParams.set('apiKey', apiKey); return url.toString(); } return geoTiffUrl; }
Python
# Functions to examine a response URL and to append the API key to the # URL if it is in the new format. def add_api_key_to_url(base_url: str, api_key: str) -> str: '''Formats URL that currently lacks an API key to use the one provided.''' return base_url + "&key=" +api_key; def prepare_geo_tiff_url(base_url: str, api_key: str) -> str: '''Prepares URL from GetDataLayers depending on API being called. If the geoTIFF url from GetDataLayers is for the solar API GetGeoTiff endpoint, append the API key. Otherwise return the URL as is. ''' if re.search("solar.googleapis.com", geo_tiff_url): return add_api_key_to_url(geo_tiff_url, api_key) return geo_tiff_url
Java
/** Adds API key to a URL. */ private String addApiKeyToUrl(String geoTiffUrl, String apiKey) { return geoTiffUrl + "&key=" + apiKey; } /** * Function to examine a response URL and to append the API key to the * URL if it is in the new format. */ private String prepareGetGeoTiffUrl(String geoTiffUrl, String apiKey) { Pattern pattern = Pattern.compile("solar.googleapis.com"); Matcher matcher = pattern.matcher(geoTiffUrl); if (matcher.find()) { return addApiKeyToUrl(geoTiffUrl, apiKey); } else { return geoTiffUrl; } }
モニタリング
プロジェクト レベル |
請求先アカウント レベル
|
知っておくべきヒント
- 割り当て: スケーリング可能な使用量(廃止される年間使用量ではなく)
- 現在の割り当て(QPM に変更されます)
- ベスト プラクティス: クライアントサイドの割り当てを設定してアラートを送信する
- 料金:
- 従量課金制
- 404 NOT_FOUND レスポンス(位置情報がカバレッジ範囲外の場合)は請求されませんが、割り当てにカウントされます
- 一般的な利用規約: Google Maps Platform 利用規約