Migracja do interfejsu Solar API w Google Maps Platform

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

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

  1. włączyć interfejs 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, wykonując poniższe instrukcje krok po kroku.

Porównanie obok siebie

Solar API (nowy) Domy ze słońcem Earth Engine Solar API (wycofany) Ikona EE
Stan uruchamiania Uruchomiony Pilot (wycofany)
Dostęp
Mechanizm konto Google Cloud w konsoli Cloud, włączając interfejs Solar API i zarządzając nim w sekcji Google Maps Platform; konto Google Cloud w konsoli Cloud przez włączenie interfejsu Earth Engine Solar API;
Kto Publiczny Kontrolowany dostęp
Poziom Samodzielna obsługa administracyjna Ręczny dostęp do projektu w Google Cloud
Uwierzytelnianie Klucz interfejsu API i OAuth Klucz interfejsu API
Ceny
Strategia Płatność według wykorzystania 100% rabatu
Poziomy Za 1000 zapytań, z malejącymi cenami w zależności od liczby zapytań
Punkty końcowe Różne ceny za poszczególne punkty końcowe
Chmura
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ę) Roczna
Logowanie Cloud Logging (opcjonalnie) Cloud Logging (opcjonalnie)
Płatności konto rozliczeniowe Cloud, -
Pomoc Pełna pomoc dotycząca Google Maps Platform z SLO/SLA Ograniczone, przez e-mail
Interfejs 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 z programem pilotażowym
solarInfo Promień ≤ 100 m Promień ≤ 100 m
Zakres
Obszar Cały świat Cały świat
Jakość danych HIGH/MEDIUM HIGH/MEDIUM
Typ budynku Każdy budynek, który jest zmapowany na adres I znajduje się w zakresie zdjęć interfejsu Solar API. Każdy budynek, który jest zmapowany na adres I znajduje się w zakresie zdjęć interfejsu Solar API.
Warunki korzystania z usługi
Warunki korzystania z usługi Warunki Google Maps Platform Warunki korzystania z Google Earth Engine

Krok po kroku

Konfigurowanie projektu Google Cloud

Instrukcje znajdziesz tutaj: Konfigurowanie projektu Google Cloud.

Tylko niektóre role mogą tworzyć projekty w Google 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 Pierwsze kroki z Google Maps Platform.

Konfigurowanie konta rozliczeniowego

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

Możesz użyć istniejącego projektu w 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, jak opisano w sekcji Używanie OAuth.

Korzystanie z 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

Szybkie testowanie: użyj zapisanego w poprzednim kroku klucza interfejsu API i zastąp nim symbol YOUR_API_KEY w przykładowym zapytaniu poniżej, a następnie wczytaj adres URL w przeglądarce:

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

Odpowiedź dotycząca oryginalnej wersji testowej

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

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

Poniższy fragment kodu to przykładowa odpowiedź:

{
  "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ć żądanie do adresu URL w odpowiedzi, umieść cały adres URL w żądaniu.

Pełna specyfikacja tego żądania i odpowiedzi znajduje się w dokumentacji referencyjnej.

Napisz aplikację obsługującą oba formaty odpowiedzi

Możesz teraz napisać aplikację, która obsługuje zarówno oryginalny format podglądu, jak i obecne formaty odpowiedzi.

Główna różnica między tymi dwiema odpowiedziami, poza samym adresem URL, polega na tym, że w przypadku żądania, które uzyskuje dostęp do adresów URL z nowego formatu odpowiedzi, musisz przekazać klucz interfejsu API. Jeśli pominiesz klucz interfejsu API, żądanie się nie powiedzie.

Możesz na przykład dodać do aplikacji ten kod, aby sprawdzić adres URL i prawidłowo obsłużyć każdą wersję:

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

Monitoruj

Poziom projektu Poziom konta rozliczeniowego

Cloud Monitoring Rozliczenia usługi Google Cloud

Przydatne wskazówki

  • Limit: zużycie, które może się skalować (zamiast rocznego, które zniknie)
    • Obecny limit zostanie zmieniony na QPM.
    • Sprawdzone metody: ustawianie limitu po stronie klienta i wysyłanie alertów
  • Ceny:
    • Płatność według wykorzystania
    • Odpowiedzi 404 NOT_FOUND, gdy lokalizacja nie mieści się w zakresie pokrycia, nie będą obciążane, ale będą wliczane do limitu.
  • Ogólne warunki korzystania: Warunki korzystania z usługi Google Maps Platform