Per passare dall'API Google Earth Engine Solar all'API Solar di Google Maps Platform:
- Abilita l'API Google Maps Platform Solar nel tuo progetto cloud.
- Crea una nuova chiave e limitala all'API di GMP Solar.
- Aggiorna il codice seguendo le istruzioni dettagliate riportate di seguito.
Confronto fianco a fianco
API Solar (nuova) | API Earth Engine Solar (deprecata) | |
---|---|---|
Stato del lancio | Lancio completato. | Progetto pilota (deprecato) |
Accesso | ||
Meccanismo | Account Google Cloud tramite la console Cloud, abilitando l'API Solar e gestendo l'API tramite la sezione Google Maps Platform | Account Google Cloud tramite la console Cloud, abilitando l'API Earth Engine Solar |
Chi | Pubblico | Controllo dell'accesso |
Livello | Con provisioning autonomo | Accesso manuale al progetto Cloud |
Autenticazione | Chiave API e OAuth | Chiave API |
Prezzi | ||
Strategia | Pay-as-you-go | Sconto del 100% |
Fascetta | 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 | (Facoltativo) Cloud Logging | (Facoltativo) Cloud Logging |
Fatturazione | Account di fatturazione Cloud | - |
Assistenza | Supporto completo di Google Maps Platform con SLO/SLA | Con limitazioni, via email |
API | ||
Nome host | https://solar.googleapis.com/v1/ (REST) |
https://earthenginesolar.googleapis.com/v1/ (REST) |
Metodi |
|
|
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 di immagini dell'API Solar | Qualsiasi edificio mappato a un indirizzo E all'interno della copertura di immagini dell'API Solar |
Termini di servizio | ||
TOS | Termini di Google Maps Platform | Termini di Google Earth Engine |
Procedura dettagliata
Configura il progetto Google Cloud
Segui le istruzioni qui: Configurare il progetto Google Cloud.
Solo alcuni ruoli possono creare un progetto Cloud. Se non riesci a creare un progetto, contatta l'amministratore della tua organizzazione.
Puoi anche usare un progetto Cloud esistente. Per saperne di più, consulta la guida introduttiva a Google Maps Platform.
Configura l'account di fatturazione
Segui le istruzioni riportate qui: Come gestire l'account di fatturazione.
Puoi utilizzare un progetto Cloud esistente con un account di fatturazione esistente.
Ottenere una chiave API o utilizzare 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 Utilizzo delle chiavi API. In alternativa, puoi creare un token OAuth come descritto in Utilizzare OAuth.
Uso dell'API Solar
- Effettua richieste GET ai nuovi endpoint : https://solar.googleapis.com
- Tieni presente che alcuni nomi di metodi API sono cambiati:
buildings:findClosest
→buildingInsights:findClosest
solarinfo:get
→dataLayers:get
Prova rapida: utilizza la chiave API salvata nel passaggio precedente e sostituisci YOUR_API_KEY
nella query di esempio in basso, 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 seguente formato:
https://earthengine.googleapis.com/v1alpha/projects/sunroof-api/thumbnails/THUMBNAIL_ID:getPixels
Lo snippet seguente è 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 effettuare una richiesta a un URL nella risposta, includi l'URL completo nella richiesta.
Le specifiche complete di questa richiesta e risposta sono disponibili nella documentazione di riferimento.
Scrivi un'app che supporti entrambi i formati di risposta
Ora puoi scrivere un'app che gestisca il formato Anteprima originale e quello attuale di risposta.
La differenza principale tra le due risposte, diversa dall'URL effettivo, è 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 all'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; } }
Monitora
Livello di progetto |
Livello di account di fatturazione
|
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:
- Pay-as-you-go
- Le risposte 404 NOT_FOUND, quando la località non è compresa nell'intervallo di copertura, non verranno fatturate ma verranno conteggiate ai fini della quota
- Termini di utilizzo generali: Termini di servizio di Google Maps Platform