Чтобы перейти с Google Earth Engine Solar API на Google Maps Platform Solar API:
- Включите API Solar платформы Google Карт в своем облачном проекте.
- Создайте новый ключ и ограничьте его GMP Solar API.
- Обновите свой код, следуя пошаговым инструкциям ниже.
Параллельное сравнение
Солнечный API (новый) ![]() | API солнечной энергетики Earth Engine (устарело)![]() | |
---|---|---|
Статус запуска | Запущен | Пилот (устарело) | Доступ |
Механизм | Учетная запись Google Cloud через консоль Cloud, включив Solar API и управляя API через раздел Google Maps Platform | Учетная запись Google Cloud через консоль Cloud, включив API Earth Engine Solar |
ВОЗ | Публичный | Доступ контролируемый |
Уровень | Самостоятельно обеспечиваемый | Ручной доступ к облачному проекту |
Аутентификация | API-ключ и OAuth | API-ключ | Ценообразование |
Стратегия | Оплата по мере использования | 100% скидка |
Многоуровневое размещение | За 1000 запросов, с уменьшением цены в зависимости от объема | – |
Конечные точки | Различные цены для каждой конечной точки | – | Облако |
Мониторинг | Мониторинг облака в рамках «Платформы Google Карт» | Мониторинг облака в разделе «API и сервисы» |
Квота | QPM (запросов в минуту) и QPH (запросов в час) | Ежегодный |
Ведение журнала | Ведение журнала в облаке (опционально) | Ведение журнала в облаке (опционально) |
Биллинг | Учетная запись Cloud Billing | - |
Поддерживать | Полная поддержка платформы Google Maps с SLO/SLA | Ограничено, по электронной почте | API |
Имя хоста | https://solar.googleapis.com/v1/ (REST) | https://earthenginesolar.googleapis.com/v1/ (REST) |
Методы |
|
|
Ответ | Никаких изменений по сравнению с пилотом | – |
solarInfo | радиус ≤100м | радиус ≤100м | Покрытие |
Область | Глобальный | Глобальный |
Качество данных | HIGH / MEDIUM | HIGH / MEDIUM |
Тип здания | Любое здание, сопоставленное с адресом И находящееся в зоне покрытия изображений Solar API | Любое здание, сопоставленное с адресом И находящееся в зоне покрытия изображений Solar API | Условия обслуживания |
Условия использования | Условия использования платформы Google Maps | Условия использования Google Earth Engine |
Шаг за шагом
Настройте свой проект Google Cloud
Инструкции здесь: Настройте свой проект Google Cloud .
Создать облачный проект могут только определенные роли ; если вы не можете создать проект, обратитесь к администратору вашей организации.
Вы также можете использовать существующий проект Cloud. Чтобы узнать больше, см . Начало работы с Google Maps Platform .
Настройте свой платежный аккаунт
Инструкции здесь: Как управлять своим платежным аккаунтом .
Вы можете использовать существующий облачный проект с существующим платежным аккаунтом.
Получите API-ключ или используйте токен OAuth
После настройки проекта Google Cloud вам необходимо создать и защитить свой API-ключ для использования Solar API, как описано в разделе Использование API-ключей . Или вы можете создать токен OAuth, как описано в разделе Использование OAuth .
Используйте API Solar
- Сделайте запросы GET к новым конечным точкам: https://solar.googleapis.com
- Обратите внимание, что названия некоторых методов 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
Ответ на первоначальный предварительный релиз
Для первоначального предварительного выпуска от 9 мая 2023 года 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-адрес.
Полная спецификация этого запроса и ответа приведена в справочной документации .
Напишите приложение, поддерживающее оба формата ответов.
Теперь вы можете написать приложение, которое обрабатывает как исходный формат Preview, так и текущий формат ответа.
Главное различие между двумя ответами, помимо самого URL, заключается в том, что вы должны передать ключ API в запрос, который обращается к URL из нового формата ответа. Если вы опустите ключ 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; }
Питон
# 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
Ява
/** 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