Migracja do interfejsu Solar API w Google Maps Platform

Aby przejść z interfejsu Google Earth Engine Solar API na Google Maps Platform Solar API:

  1. Włącz Google Maps Platform Solar API w projekcie w chmurze.
  2. Utwórz nowy klucz i ogranicz go do interfejsu GMP Solar API.
  3. Zaktualizuj kod, postępując zgodnie z poniższymi szczegółowymi instrukcjami.

Porównanie

Solar API (nowy) Domy ze słońcem Earth Engine Solar API (wycofany) Ikona EE
Stan uruchamiania Wdrożone Wdrożenie pilotażowe (wycofane)
Dostęp
Mechanizm na koncie Google Cloud w konsoli Cloud, włączając interfejs Solar API i zarządzając tym interfejsem API w sekcji Google Maps Platform. konto Google Cloud w konsoli Cloud, po włączeniu Earth Engine Solar API.
Kto Publiczna Kontrola dostępu
Poziom Dostarczane samodzielnie Ręczny dostęp do projektu Cloud
Uwierzytelnianie Klucz interfejsu API i OAuth Klucz interfejsu API
Ceny
Strategia Pay-as-you-go Rabat 100%
Poziomy Za 1000 zapytań z obniżkami cen w zależności od liczby zapytań
Punkty końcowe Różne ceny poszczególnych punktów końcowych
Google Cloud
Monitorowanie Cloud Monitoring w sekcji „Google Maps Platform” Cloud Monitoring w sekcji „Interfejsy API i usługi”
Limit QPM (zapytania na minutę) i QPH (zapytania na godzinę) Co rok
Logowanie Cloud Logging (opcjonalnie) Cloud Logging (opcjonalnie)
Płatności Konto rozliczeniowe Cloud -
Pomoc Pełna obsługa Google Maps Platform wraz z docelowym poziomem usług i gwarancją jakości usług Wybrane przez e-maila
API
Nazwa hosta https://solar.googleapis.com/v1/ (REST) https://earthenginesolar.googleapis.com/v1/ (REST)
Metody
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
Odpowiedź Brak zmian w porównaniu do programu pilotażowego
solarInfo Promień ≤ 100 m Promień ≤ 100 m
Pokrycie,
Powierzchnia Cały świat Cały świat
Jakość danych HIGH/MEDIUM HIGH/MEDIUM
Typ budynku Każdy budynek zmapowany na adres ORAZ w ramach zasięgu zdjęć interfejsu Solar API Każdy budynek zmapowany na adres ORAZ w ramach zasięgu zdjęć interfejsu Solar API
Warunki korzystania z usługi
TOS Warunki korzystania z Google Maps Platform Warunki korzystania z Google Earth Engine

Krok po kroku

Skonfiguruj projekt Google Cloud

Instrukcje znajdziesz tutaj: Konfigurowanie projektu Google Cloud.

Tylko niektóre role mogą tworzyć projekty Cloud. Jeśli nie możesz utworzyć projektu, skontaktuj się z administratorem organizacji.

Możesz też użyć istniejącego projektu Cloud. Więcej informacji znajdziesz w artykule o pierwszych krokach z Google Maps Platform.

Skonfiguruj konto rozliczeniowe

Instrukcje znajdziesz tutaj: Jak zarządzać kontem rozliczeniowym.

Możesz użyć istniejącego projektu Cloud z istniejącym kontem rozliczeniowym.

Uzyskiwanie klucza interfejsu API lub używanie tokena OAuth

Po skonfigurowaniu projektu Google Cloud musisz utworzyć i zabezpieczyć klucz interfejsu API, aby korzystać z interfejsu Solar API zgodnie z opisem w sekcji Używanie kluczy interfejsu API. Możesz też utworzyć token OAuth w sposób opisany w sekcji Korzystanie z OAuth.

Użyj interfejsu Solar API

  • Wysyłaj żądania GET do nowych punktów końcowych : https://solar.googleapis.com
  • Pamiętaj, że niektóre nazwy metod interfejsu API uległy zmianie:
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers:get

Krótka wersja próbna: zanim wczytasz adres URL w przeglądarce, użyj zapisanego klucza interfejsu API z poprzedniego kroku i zastąp YOUR_API_KEY w przykładowym zapytaniu poniżej:

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

Odpowiedź na oryginalną wersję przedpremierową

W pierwotnej wersji testowej z 9 maja 2023 r. adresy URL w odpowiedzi mają postać:

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

Ten fragment kodu jest przykładową odpowiedzią:

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

Aby wysłać w odpowiedzi żądanie do adresu URL, umieść w żądaniu cały adres URL.

Pełną specyfikację tego żądania i odpowiedzi znajdziesz w dokumentacji referencyjnej.

Pisanie aplikacji obsługującej oba formaty odpowiedzi

Teraz możesz napisać aplikację, która obsługuje zarówno oryginalny format podglądu, jak i bieżący format odpowiedzi.

Główna różnica między tymi 2 odpowiedziami (innymi niż sam adres URL) polega na tym, że musisz przekazać klucz interfejsu API do żądania, które uzyskuje dostęp do adresów URL w nowym formacie odpowiedzi. Jeśli pominiesz klucz interfejsu API, żądanie nie zostanie zrealizowane.

Możesz na przykład dodać do aplikacji ten kod, aby prawidłowo sprawdzić adres URL i nick dla każdej wersji:

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

Monitorowanie

Poziom projektu Poziom konta rozliczeniowego

Cloud Monitoring Rozliczenia usługi Google Cloud

Przydatne wskazówki

  • Limit: konsumpcja, którą można skalować (zamiast rocznego, która zniknie).
    • Obecny limit, który zostanie zmieniony na QPM
    • Sprawdzone metody: ustawianie limitu po stronie klienta i wysyłanie alertów
  • Cena:
    • Pay-as-you-go
    • Odpowiedzi 404 NOT_FOUND, gdy lokalizacja nie mieści się w zasięgu, nie zostanie obciążona, ale będzie wliczana do limitu.
  • Ogólne warunki użytkowania: Warunki korzystania z Google Maps Platform