מעבר ל-Solar API בפלטפורמה של מפות Google

כדי לעבור מ-Google Earth Engine Solar API ל-Google Maps Platform Solar API:

  1. צריך להפעיל את Google Maps Platform Solar API בפרויקט בענן.
  2. יש ליצור מפתח חדש ולהגביל אותו ל-GMP Solar API.
  3. תוכלו לעדכן את הקוד לפי ההוראות המפורטות שבהמשך.

השוואה זה לצד זה

Solar API (חדש) בתים עם שמש Earth Engine Solar API (הוצא משימוש) סמל EE
סטטוס הפעלה הופעל טייס (הוצא משימוש)
גישה
מנגנון חשבון Google Cloud דרך מסוף Cloud, על ידי הפעלת Solar API וניהול ה-API דרך הקטע Google Maps Platform חשבון Google Cloud דרך מסוף Cloud, על ידי הפעלת Earth Engine Solar API
מי גלוי לכולם בקרת גישה
רמה הקצאת הרשאות עצמית גישה ידנית לפרויקט ב-Cloud
אימות מפתח API ו-OAuth מפתח ממשק API
תמחור
האסטרטגיה Pay-as-you-go 100% הנחה
שכבות לכל 1,000 שאילתות, עם תמחור שירד בהתאם לנפח
נקודות קצה (endpoints) מחירים שונים לכל נקודת קצה
Cloud
מעקב Cloud Monitoring בקטע 'הפלטפורמה של מפות Google' Cloud Monitoring בקטע 'ממשקי API ושירותים'
מכסה QPM (שאילתה בדקה) ו-QPH (שאילתה לשעה) שנתי
רישום ביומן Cloud Logging (אופציונלי) Cloud Logging (אופציונלי)
חיוב חשבון לחיוב ב-Cloud -
תמיכה תמיכה מלאה בפלטפורמה של מפות Google עם יעד למדידת רמת השירות (SLO) או רמת השירות (SLA) מוגבל, באימייל
API
שם המארח https://solar.googleapis.com/v1/ (REST) https://earthenginesolar.googleapis.com/v1/ (REST)
שיטות
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
תשובה אין שינויים בהשוואה לתוכנית הפיילוט
solarInfo רדיוס של 100 מ' או פחות רדיוס של 100 מ' או פחות
כיסוי
אזור עולמי עולמי
איכות הנתונים HIGH/MEDIUM HIGH/MEDIUM
סוג המבנה כל בניין שממופה לכתובת וגם במסגרת כיסוי התמונות של Solar API כל בניין שממופה לכתובת וגם במסגרת כיסוי התמונות של Solar API
תנאים והגבלות
TOS התנאים של הפלטפורמה של מפות Google התנאים של Google Earth Engine

הדרכה מפורטת

הגדרת פרויקט ב-Google Cloud

כאן מוסבר איך מגדירים פרויקט ב-Google Cloud.

אפשר ליצור פרויקט ב-Cloud רק תפקידים מסוימים. אם אין לכם אפשרות ליצור פרויקט, עליכם לפנות לאדמין של הארגון.

אפשר גם להשתמש בפרויקט קיים ב-Cloud. למידע נוסף, קראו את המאמר תחילת השימוש בפלטפורמה של מפות Google.

הגדרת החשבון לחיוב

הוראות כאן: איך לנהל את החשבון לחיוב.

אפשר להשתמש בפרויקט קיים ב-Cloud עם חשבון קיים לחיוב.

קבלת מפתח API או שימוש באסימון OAuth

אחרי שמגדירים את הפרויקט ב-Google Cloud, צריך ליצור ולאבטח את מפתח ה-API כדי להשתמש ב-Solar API, כמו שמתואר במאמר שימוש במפתחות API. לחלופין, אפשר ליצור אסימון OAuth כפי שמתואר במאמר שימוש ב-OAuth.

שימוש ב-Solar API

  • שולחים בקשות GET לנקודות הקצה החדשות : https://solar.googleapis.com
  • שימו לב: חלק מהשמות של שיטות ה-API השתנו:
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers:get

גרסת ניסיון מהירה: משתמשים במפתח ה-API השמור מהשלב הקודם ומחליפים את YOUR_API_KEY בשאילתה לדוגמה שלמטה, לפני שטוענים את כתובת ה-URL בדפדפן:

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

תשובה לגרסת טרום-השקה (Preview) המקורית

בגרסת טרום-השקה (Preview) המקורית ב-9 במאי 2023, כתובות ה-URL בתשובה הן בפורמט הבא:

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

קטע הקוד הבא הוא דוגמה לתגובה:

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

על מנת לשלוח בקשה לכתובת URL בתגובה, עליכם לכלול את כתובת ה-URL המלאה בבקשה.

המפרט המלא של הבקשה והתגובה מופיע במסמכי העזר.

כתיבת אפליקציה שתתמוך בשני הפורמטים של התשובות

עכשיו אפשר לכתוב אפליקציה שמטפלת גם בפורמט התצוגה המקדימה המקורי וגם בפורמט התגובות הנוכחי.

ההבדל העיקרי בין שתי התגובות, מלבד כתובת ה-URL עצמה, הוא שחובה להעביר מפתח API לבקשה שתיפתח לכתובות ה-URL מפורמט התגובה החדש. אם תשמיטו את מפתח ה-API, הבקשה תיכשל.

לדוגמה, אפשר להוסיף לאפליקציה את הקוד הבא כדי לבדוק את כתובת ה-URL ולטפל בכל גרסה בצורה נכונה:

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

צג

רמת הפרויקט רמת החשבון לחיוב

Cloud Monitoring חיוב ב-Cloud

טיפים שכדאי לדעת

  • מכסה: צריכה שיכולה להיות גדולה יותר (במקום שנתי שייעלם)
    • המכסה הנוכחית, שתשתנה ל-QPM
    • שיטות מומלצות: הגדרת מכסה בצד הלקוח ושליחת התראות
  • תמחור:
    • Pay-as-you-go
    • לא יתבצע חיוב עבור 404 תגובות NOT_FOUND, אם המיקום לא נמצא בטווח הכיסוי, אבל הן ייחשבו כחלק מהמכסה
  • תנאי שימוש כלליים: התנאים וההגבלות של הפלטפורמה של מפות Google