Aby przejść z Google Earth Engine Solar API na Google Maps Platform:
- włączyć Google Maps Platform Solar API w swoim projekcie w chmurze,
- Utwórz nowy klucz i ogranicz go do interfejsu GMP Solar API.
- Zaktualizuj kod, postępując zgodnie z podanymi instrukcjami.
Porównanie
Solar API (nowa wersja) | Earth Engine Solar API (wycofany) | |
---|---|---|
Stan uruchamiania | Wdrożone | Wdrożenie pilotażowe (wycofane) |
Dostęp | ||
Mechanizm | konta Google Cloud przez konsolę Cloud, włączając interfejs Solar API i zarządzając interfejsem API w sekcji Google Maps Platform; | konto Google Cloud przez włączenie Earth Engine Solar API w konsoli Google Cloud. |
Kto | Publiczne | Kontrolowany dostęp |
Poziom | Samodzielnie przydzielona | Ręczny dostęp do projektu Cloud |
Uwierzytelnianie | Klucz interfejsu API i OAuth | Klucz interfejsu API |
Ceny | ||
Strategia | Pay-as-you-go | Zniżka 100% |
Poziomy | Za 1000 zapytań (z niższą ceną uzależnioną od liczby żądań) | – |
Punkty końcowe | Różne ceny w poszczególnych punktach 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 w zakresie docelowego poziomu usług i poziomu jakości usług | Ograniczona przez adres e-mail |
API | ||
Nazwa hosta | https://solar.googleapis.com/v1/ (REST) |
https://earthenginesolar.googleapis.com/v1/ (REST) |
Metody |
|
|
Odpowiedź | Brak zmian w porównaniu z wersją pilotażową | – |
solarInfo |
Promień ≤ 100 m | Promień ≤ 100 m |
Pokrycie, | ||
Powierzchnia | Globalne | Globalne |
Jakość danych | HIGH /MEDIUM |
HIGH /MEDIUM |
Typ budynku | Każdy budynek zmapowany na adres ORAZ w obszarze zasięgu zdjęć interfejsu Solar API. | Każdy budynek zmapowany na adres ORAZ w obszarze 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.
Do tworzenia projektów Cloud można tworzyć tylko niektóre role. 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.
Konfigurowanie konta rozliczeniowego
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życie tokena OAuth
Po skonfigurowaniu projektu Google Cloud musisz utworzyć i zabezpieczyć swój klucz interfejsu API, aby używać interfejsu Solar API w sposób opisany w artykule Używanie kluczy API. Token OAuth możesz też utworzyć zgodnie z opisem 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:findClosest
→buildingInsights:findClosest
solarinfo:get
→dataLayers:get
Krótki test: przed wczytaniem adresu 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 temat pierwotnej wersji przedpremierowej
W przypadku pierwotnej wersji przedpremierowej z 9 maja 2023 roku 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ć żądanie do adresu URL w odpowiedzi, podaj w niej cały ten adres.
Pełną specyfikację tego żądania i odpowiedzi znajdziesz w dokumentacji referencyjnej.
Napisz aplikację, która będzie obsługiwać oba formaty odpowiedzi
Teraz możesz napisać aplikację, która obsługuje zarówno pierwotne formaty podglądu, jak i obecne odpowiedzi.
Główna różnica między 2 odpowiedziami, oprócz faktycznego adresu URL, polega na tym, że musisz przekazać klucz interfejsu API do żądania uzyskującego dostęp do adresów URL za pomocą nowego formatu odpowiedzi. 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ługiwać 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; } }
Monitorowanie
Poziom projektu |
Poziom konta rozliczeniowego |
Wskazówki, które warto wiedzieć
- Limit: konsumpcja, którą można skalować (a nie roczna, która znika)
- Obecny limit, który zostanie zmieniony na QPM
- Sprawdzone metody: ustawianie limitu po stronie klienta i wysyłanie alertów
- Ceny:
- Pay-as-you-go
- Odpowiedzi 404 NOT_FOUND, jeśli lokalizacja nie znajduje się w zasięgu, nie spowoduje naliczania opłat, ale będzie wliczać się do limitu.
- Ogólne warunki korzystania z usługi: Warunki korzystania z Google Maps Platform.