Переход на Solar API на платформе Google Maps

Чтобы перейти от Google Earth Engine Solar API к Solar API платформы Google Maps :

  1. Включите Solar API платформы Google Maps в своем облачном проекте.
  2. Создайте новый ключ и ограничьте его GMP Solar API.
  3. Обновите свой код, следуя пошаговым инструкциям ниже.

Параллельное сравнение

Солнечный API (новый) Дома с солнцем Earth Engine Solar API (устарело)Значок ЭЭ
Статус запуска Запущен Пилотный проект (устаревший)
Доступ
Механизм Учетная запись Google Cloud через консоль Cloud, включив Solar API и управляя API через раздел «Платформа Google Maps». Учетная запись Google Cloud через консоль Cloud, включив Earth Engine Solar API.
ВОЗ Общественный Контролируемый доступ
Уровень Самостоятельное обеспечение Ручной доступ к облачному проекту
Аутентификация Ключ API и OAuth API-ключ
Цены
Стратегия Плати как сможешь 100% скидка
Многоуровневое распределение За 1000 запросов, цена снижается в зависимости от объема.
Конечные точки Различные цены для каждой конечной точки
Облако
Мониторинг Облачный мониторинг в рамках «Платформы Google Maps» Облачный мониторинг в разделе «API и сервисы».
Квота QPM (запрос в минуту) и QPH (запрос в час) Ежегодный
Ведение журнала Облачная регистрация (необязательно) Облачная регистрация (необязательно)
Биллинг Платежный аккаунт Cloud -
Поддерживать Полная поддержка платформы Google Карт с SLO/SLA Ограничено, по электронной почте
API
Имя хоста https://solar.googleapis.com/v1/ (ОСТАЛЬНЫЙ) https://earthenginesolar.googleapis.com/v1/ (REST)
Методы
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
Ответ Никаких изменений по сравнению с пилотным вариантом
solarInfo радиус ≤100 м радиус ≤100 м
Покрытие
Область Глобальный Глобальный
Качество данных HIGH / MEDIUM HIGH / MEDIUM
Тип здания Любое здание, сопоставленное с адресом И в пределах покрытия изображений Solar API. Любое здание, сопоставленное с адресом И в пределах покрытия изображений Solar API.
Условия использования
Условия использования Условия платформы Google Карт Условия использования Google Earth Engine

Шаг за шагом

Настройте свой проект Google Cloud

Инструкции здесь: Настройте проект Google Cloud .

Только определенные роли могут создавать облачный проект; если вы не можете создать проект, обратитесь к администратору вашей организации.

Вы также можете использовать существующий облачный проект. Дополнительную информацию см. в разделе Начало работы с платформой Google Maps .

Настройте свой платежный аккаунт

Инструкции здесь: Как управлять своим платежным аккаунтом .

Вы можете использовать существующий облачный проект с существующей учетной записью для выставления счетов.

Получите ключ API или используйте токен OAuth.

После настройки проекта Google Cloud вы должны создать и защитить свой ключ API для использования Solar API, как описано в разделе «Использование ключей API» . Или вы можете создать токен OAuth, как описано в разделе Использование OAuth .

Используйте солнечный API

  • Отправьте GET-запросы к новым конечным точкам: https://solar.googleapis.com.
  • Обратите внимание, что имена некоторых методов API изменились:
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers: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-адрес.

Полная спецификация этого запроса и ответа находится в справочной документации .

Напишите приложение для поддержки обоих форматов ответов.

Теперь вы можете написать приложение, которое обрабатывает как исходный формат предварительного просмотра, так и текущий формат ответа.

Основное различие между двумя ответами, помимо самого 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;
  }
}

Монитор

Уровень проекта Уровень платежного аккаунта

Cloud MonitoringCloud Billing

Полезные советы

  • Квота: потребление, которое может масштабироваться (а не ежегодное, которое исчезнет).
    • Текущая квота , которая будет изменена на QPM
    • Рекомендации: установка квоты на стороне клиента и отправка оповещений
  • Цены:
    • Плати как сможешь
    • Ответы 404 NOT_FOUND, если местоположение находится за пределами зоны покрытия, не будут оплачиваться, но будут учитываться в квоте.
  • Общие условия использования: Условия использования платформы Google Карт.