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

Разработчики из Европейской экономической зоны (ЕЭЗ)

Для перехода с Google Earth Engine Solar API на Google Maps Platform Solar API:

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

Сравнение бок о бок

Solar API (новый) Дома с солнцем API Earth Engine Solar (устаревший) значок EE
Статус запуска Запущен Пилот (устаревший)
Доступ
Механизм Для этого необходимо активировать Solar API и управлять им через раздел Google Maps Platform в учетной записи Google Cloud. Для этого необходимо активировать API Earth Engine Solar через учетную запись Google Cloud в консоли Cloud.
ВОЗ Общественный Доступ контролируемый
Уровень Самостоятельное обеспечение Доступ к руководству по облачным проектам
Аутентификация Ключ API и OAut Ключ API
Цены
Стратегия Оплата по факту использования 100% скидка
Многоуровневое ранжирование Цена указана за 1000 запросов, при этом стоимость снижается в зависимости от объема.
Конечные точки Разные цены за каждое отдельное устройство.
Облако
Мониторинг Мониторинг облачных сервисов в рамках платформы Google Maps. Мониторинг облачных сервисов в разделе «API и сервисы»
Квота QPM (запросов в минуту) и QPH (запросов в час) Ежегодный
Ведение журнала Ведение облачного логирования (необязательно) Ведение облачного логирования (необязательно)
Выставление счетов Учетная запись облачной оплаты -
Поддерживать Полная поддержка платформы Google Maps с соглашениями об уровне обслуживания (SLO/SLA). Ограниченная возможность связи по электронной почте.
API
Имя хоста https://solar.googleapis.com/v1/ (REST) 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 Maps термины Google Earth Engine

Шаг за шагом

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

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

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

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

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

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

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

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

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

Используйте API Solar

  • Отправляйте 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-адреса, заключается в том, что в запросе, обращающемся к 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;
  }
}

Монитор

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

Cloud MonitoringCloud Billing

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

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