Para pasar de la API de Solar de Google Earth Engine a la API de Solar de Google Maps Platform, haz lo siguiente:
- Habilita la API de Solar de Google Maps Platform en tu proyecto de nube.
- Crea una clave nueva y resérvala para la API de GMP Solar.
- Actualiza tu código con las instrucciones paso a paso que se indican a continuación.
Comparación en paralelo
API de Solar (nueva) | API de Solar de Earth Engine (obsoleto) | |
---|---|---|
Estado del lanzamiento | Lanzado | Prueba piloto (obsoleto) |
Acceso | ||
Mecanismo | Cuenta de Google Cloud a través de la consola de Cloud. Para ello, habilita la API de Solar y adminístrala a través de la sección de Google Maps Platform | Cuenta de Google Cloud a través de la consola de Cloud, habilitando la API de Solar de Earth Engine |
Quién | Público | Con control de acceso |
Nivel | Autoaprovisionado | Acceso manual al proyecto de Cloud |
Autenticación | Clave de API y OAuth | Clave de API |
Precios | ||
Estrategia | Pago por uso | Descuento del 100% |
Niveles | Por cada 1,000 consultas, con precios decrecientes según el volumen | – |
Extremos | Precios diferentes por extremo | – |
Cloud | ||
Supervisión | Supervisión de la nube en "Google Maps Platform" | Cloud Monitoring en “APIs y servicios” |
Cuota | QPM (consulta por minuto) y QPH (consulta por hora) | Anual |
Logging | Cloud Logging (opcional) | Cloud Logging (opcional) |
Facturación | Cuenta de Facturación de Cloud | - |
Asistencia | Asistencia completa de Google Maps Platform con SLO/ANS | Limitada, por correo electrónico |
API | ||
Nombre de host | https://solar.googleapis.com/v1/ (REST) |
https://earthenginesolar.googleapis.com/v1/ (REST) |
Métodos |
|
|
Respuesta | No hay cambios en comparación con la prueba piloto | – |
solarInfo |
Radio de ≤ 100 m | Radio de ≤ 100 m |
Cobertura | ||
Área | Global | Global |
Calidad de los datos | HIGH /MEDIUM |
HIGH /MEDIUM |
Tipo de edificio | Cualquier edificio que esté asignado a una dirección Y dentro de la cobertura de imágenes de la API de Solar | Cualquier edificio que esté asignado a una dirección Y dentro de la cobertura de imágenes de la API de Solar |
Condiciones del Servicio | ||
Condiciones del Servicio | Términos de Google Maps Platform | Términos de Google Earth Engine |
Paso a paso
Configura el proyecto de Google Cloud
Consulta las instrucciones aquí: Configura tu proyecto de Google Cloud.
Solo ciertos roles pueden crear un proyecto de Cloud. Si no puedes crear uno, comunícate con el administrador de tu organización.
También puedes usar un proyecto de Cloud existente. Para obtener más información, consulta Cómo comenzar a utilizar Google Maps Platform.
Configura tu cuenta de facturación
Consulta las instrucciones aquí: Cómo administrar tu cuenta de facturación.
Puedes usar un proyecto de Cloud existente con una cuenta de facturación existente.
Obtén una clave de API o usa un token de OAuth
Después de configurar tu proyecto de Google Cloud, debes crear y proteger tu clave de API para usar la API de Solar, como se describe en Cómo usar claves de API. También puedes crear un token de OAuth, como se describe en Cómo usar OAuth.
Usa la API de Solar
- Realiza solicitudes GET a los nuevos extremos : https://solar.googleapis.com
- Ten en cuenta que cambiaron algunos nombres de métodos de la API:
buildings:findClosest
→buildingInsights:findClosest
solarinfo:get
→dataLayers:get
Prueba rápida: Usa la clave de API guardada del paso anterior y reemplaza YOUR_API_KEY
en la siguiente búsqueda de ejemplo antes de cargar la URL en tu navegador:
https://solar.googleapis.com/v1/dataLayers:get?location.latitude=37.2746464&location.longitude=-121.7530949&radius_meters=10&key=YOUR_API_KEY
Respuesta para la versión preliminar original
En el caso de la versión preliminar original del 9 de mayo de 2023, las URLs de la respuesta tienen el siguiente formato:
https://earthengine.googleapis.com/v1alpha/projects/sunroof-api/thumbnails/THUMBNAIL_ID:getPixels
El siguiente fragmento es una respuesta de ejemplo:
{ "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", ... ] }
Para realizar una solicitud a una URL en la respuesta, incluye la URL completa en la solicitud.
La especificación completa de esta solicitud y respuesta se encuentra en la documentación de referencia.
Cómo escribir una app para admitir ambos formatos de respuesta
Ahora puedes escribir una app que controle la versión preliminar original y los formatos de respuesta actuales.
La principal diferencia entre las dos respuestas, además de la URL real, es que debes pasar una clave de API a una solicitud que acceda a las URLs del nuevo formato de respuesta. Si omites la clave de API, la solicitud fallará.
Por ejemplo, puedes agregar el siguiente código a tu app para examinar la URL y controlar cada versión correctamente:
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; } }
Supervisar
Nivel de proyecto |
A nivel de la cuenta de facturación
|
Sugerencias útiles
- Cuota: Consumo que puede escalar (en lugar del anual, que desaparecerá)
- Cuota actual, que se cambiará a QPM
- Prácticas recomendadas: Establece una cuota del cliente y envía alertas
- Precios:
- Pago por uso
- Las respuestas 404 NOT_FOUND, cuando la ubicación no está dentro del rango de cobertura, no se facturarán, pero se registrarán en la cuota.
- Condiciones de uso generales: Condiciones del Servicio de Google Maps Platform