Migrer vers l'API Solar sur Google Maps Platform

Pour passer de l'API Solar de Google Earth Engine à l'API Solar Google Maps Platform:

  1. Activez l'API Solar de Google Maps Platform dans votre projet cloud.
  2. Créez une clé et limitez-la à l'API GMP Solar.
  3. Mettez à jour votre code en suivant les instructions détaillées ci-dessous.

Affichage comparatif

API Solar (nouvelle version) Maisons avec soleil API Earth Engine Solar (obsolète) Icône EE
État du lancement Lancée. Pilot (obsolète)
Accès
Mécanisme un compte Google Cloud via la console Cloud, en activant l'API Solar et en gérant l'API via la section "Google Maps Platform" ; un compte Google Cloud via la console Cloud, en activant l'API Earth Engine Solar.
Qui Public Accès contrôlé
Niveau Auto-provisionné Accès manuel aux projets Cloud
Authentification Clé API et OAuth Clé API
Tarification
Stratégie Pay-as-you-go Remise de 100 %
Niveaux Pour 1 000 requêtes, avec une tarification décroissante en fonction du volume
Points de terminaison Différents prix par point de terminaison
Cloud
Monitoring Cloud Monitoring sous "Google Maps Platform" Cloud Monitoring sous "API et services"
Quota QPM (requête par minute) et QPH (requête par heure) Annuel
Journalisation Cloud Logging (facultatif) Cloud Logging (facultatif)
Facturation Compte de facturation Cloud -
Assistance Assistance complète pour Google Maps Platform avec SLO/Contrat de niveau de service Limitée, par e-mail
API
Nom d'hôte https://solar.googleapis.com/v1/ (REST) https://earthenginesolar.googleapis.com/v1/ (REST)
Méthodes
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
Réponse Aucune modification par rapport au pilote
solarInfo ≤ 100 m de rayon ≤ 100 m de rayon
Couverture
Quartier Globaux Globaux
Qualité des données HIGH/MEDIUM HIGH/MEDIUM
Type de bâtiment Tout bâtiment associé à une adresse ET dans la couverture des images de l'API Solar Tout bâtiment associé à une adresse ET dans la couverture des images de l'API Solar
Conditions d'utilisation
TOS Conditions d'utilisation de Google Maps Platform Conditions d'utilisation de Google Earth Engine

Procédure détaillée

Configurer votre projet Google Cloud

Pour obtenir des instructions, consultez Configurer votre projet Google Cloud.

Seuls certains rôles permettent de créer un projet Cloud. Si vous ne pouvez pas créer de projet, contactez l'administrateur de votre organisation.

Vous pouvez également utiliser un projet Cloud existant. Pour en savoir plus, consultez Premiers pas avec Google Maps Platform.

Configurer votre compte de facturation

Pour obtenir des instructions, consultez Gérer votre compte de facturation.

Vous pouvez utiliser un projet Cloud existant avec un compte de facturation existant.

Obtenir une clé API ou utiliser un jeton OAuth

Après avoir configuré votre projet Google Cloud, vous devez créer et sécuriser votre clé API pour utiliser l'API Solar, comme décrit dans la section Utiliser des clés API. Vous pouvez également créer un jeton OAuth, comme décrit dans Utiliser OAuth.

Utiliser l'API Solar

  • Envoyer des requêtes GET aux nouveaux points de terminaison : https://solar.googleapis.com
  • Notez que les noms de certaines méthodes d'API ont changé :
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers:get

Essai rapide: utilisez la clé API enregistrée à l'étape précédente et remplacez YOUR_API_KEY dans l'exemple de requête ci-dessous avant de charger l'URL dans votre navigateur:

https://solar.googleapis.com/v1/dataLayers:get?location.latitude=37.2746464&location.longitude=-121.7530949&radius_meters=10&key=YOUR_API_KEY

Réponse pour la version preview d'origine

Pour la version preview d'origine du 9 mai 2023, les URL figurant dans la réponse sont au format suivant:

https://earthengine.googleapis.com/v1alpha/projects/sunroof-api/thumbnails/THUMBNAIL_ID:getPixels

L'extrait de code suivant est un exemple de réponse:

{
  "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",
    ...
  ]
  }

Pour envoyer une requête à une URL dans la réponse, incluez l'URL complète dans la requête.

Vous trouverez la spécification complète de cette requête et de cette réponse dans la documentation de référence.

Écrire une application compatible avec les deux formats de réponse

Vous pouvez maintenant écrire une application qui gère à la fois les formats de réponse d'origine et actuels.

La principale différence entre les deux réponses, à l'exception de l'URL elle-même, est que vous devez transmettre une clé API à une requête qui accède aux URL à partir du nouveau format de réponse. Si vous omettez la clé API, la requête échoue.

Par exemple, vous pouvez ajouter le code suivant à votre application pour examiner l'URL et gérer chaque version correctement:

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;
  }
}

Surveiller

Niveau Projet Au niveau du compte de facturation

Cloud Monitoring Cloud Billing

Conseils utiles

  • Quota: consommation pouvant évoluer (plutôt qu'une consommation annuelle qui disparaîtra)
    • Quota actuel, qui sera remplacé par un RPM
    • Bonnes pratiques: définir des quotas côté client et envoyer des alertes
  • Tarifs :
    • Pay-as-you-go
    • Les réponses 404 NOT_FOUND ne sont pas facturées, mais elles sont comptabilisées dans le quota.
  • Conditions d'utilisation générales: Conditions d'utilisation de Google Maps Platform