Esegui la migrazione all'API Solar su Google Maps Platform

Sviluppatori dello Spazio economico europeo (SEE)

Per passare dall'API Solar di Google Earth Engine all'API Solar di Google Maps Platform:

  1. Attiva l'API Solar di Google Maps Platform nel tuo progetto cloud.
  2. Crea una nuova chiave e limitane l'accesso all'API GMP Solar.
  3. Aggiorna il codice seguendo le istruzioni passo passo riportate di seguito.

Confronto fianco a fianco

API Solar (nuova) Case con un sole API Solar di Earth Engine (ritirata) Icona EE
Stato del lancio Lanciato Progetto pilota (obsoleto)
Accesso
Meccanismo Account Google Cloud tramite la console Cloud, attivando l'API Solar e gestendola tramite la sezione Google Maps Platform Account Google Cloud tramite la console Cloud, attivando l'API Earth Engine Solar
Chi Pubblico Con controllo dell'accesso
Livello Provisionato autonomamente Accesso manuale al progetto Cloud
Autenticazione Chiave API e OAuth Chiave API
Prezzi
Strategia Pagamento a consumo Sconto del 100%
Tiering Per 1000 query, con prezzi decrescenti in base al volume
Endpoint Prezzi diversi per endpoint
Cloud
Monitoraggio Cloud Monitoring in "Google Maps Platform" Cloud Monitoring in "API e servizi"
Quota QPM (query al minuto) e QPH (query all'ora) Annuale
Logging Cloud Logging (facoltativo) Cloud Logging (facoltativo)
Fatturazione account di fatturazione Cloud -
Assistenza Assistenza completa per Google Maps Platform con SLO/SLA Limitata, via email
API
Nome host https://solar.googleapis.com/v1/ (REST) https://earthenginesolar.googleapis.com/v1/ (REST)
Metodi
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
Risposta Nessuna modifica rispetto al progetto pilota
solarInfo Raggio ≤ 100 m Raggio ≤ 100 m
Copertura
Area Globale Globale
Qualità dei dati HIGH/MEDIUM HIGH/MEDIUM
Tipo di edificio Qualsiasi edificio mappato a un indirizzo E all'interno della copertura delle immagini dell'API Solar Qualsiasi edificio mappato a un indirizzo E all'interno della copertura delle immagini dell'API Solar
Termini di servizio
TdS Termini di Google Maps Platform Termini di Google Earth Engine

Procedura dettagliata

Configurare il progetto Google Cloud.

Istruzioni qui: Configurare il progetto Google Cloud.

Solo determinati ruoli possono creare un progetto Cloud. Se non riesci a creare un progetto, contatta l'amministratore della tua organizzazione.

Puoi anche utilizzare un progetto Cloud esistente. Per saperne di più, consulta la sezione Inizia a utilizzare Google Maps Platform.

Configura il tuo account di fatturazione

Istruzioni qui: Come gestire l'account di fatturazione.

Puoi utilizzare un progetto Cloud esistente con un account di fatturazione esistente.

Ottieni una chiave API o utilizza il token OAuth

Dopo aver configurato il progetto Google Cloud, devi creare e proteggere la chiave API per utilizzare l'API Solar come descritto in Utilizzare le chiavi API. In alternativa, puoi creare un token OAuth come descritto in Utilizzare OAuth.

Utilizzare l'API Solar

  • Invia richieste GET ai nuovi endpoint : https://solar.googleapis.com
  • Tieni presente che alcuni nomi dei metodi API sono cambiati:
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers:get

Prova rapida: utilizza la chiave API salvata nel passaggio precedente e sostituisci YOUR_API_KEY nella query di esempio riportata di seguito prima di caricare l'URL nel browser:

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

Risposta per la release di anteprima originale

Per la release di anteprima originale del 9 maggio 2023, gli URL nella risposta sono nel formato:

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

Il seguente snippet è un esempio di risposta:

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

Per inviare una richiesta a un URL nella risposta, includi l'intero URL nella richiesta.

La specifica completa di questa richiesta e risposta è disponibile nella documentazione di riferimento.

Scrivere un'app che supporti entrambi i formati di risposta

Ora puoi scrivere un'app che gestisce sia il formato di anteprima originale sia quello di risposta attuale.

La principale differenza tra le due risposte, oltre all'URL stesso, è che devi passare una chiave API a una richiesta che accede agli URL dal nuovo formato di risposta. Se ometti la chiave API, la richiesta non va a buon fine.

Ad esempio, puoi aggiungere il seguente codice alla tua app per esaminare l'URL e gestire correttamente ogni versione:

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

Monitoraggio

Livello progetto Livello account di fatturazione

Cloud Monitoring Cloud Billing

Suggerimenti utili

  • Quota: consumo scalabile (anziché annuale, che scomparirà)
    • Quota attuale che verrà modificata in QPM
    • Best practice: imposta la quota lato client e invia avvisi
  • Prezzi:
    • Pagamento a consumo
    • Le risposte 404 NOT_FOUND, quando la posizione non rientra nel raggio di copertura, non verranno fatturate, ma verranno conteggiate ai fini della quota
  • Termini di utilizzo generali: Termini di servizio della piattaforma Google Maps