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

כדי לעבור מ-Google Earth Engine Solar API אל הפלטפורמה של מפות Google API Solar:

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

השוואה בטבלה

API Solar (חדש) בתים עם שמש Earth Engine Solar API (הוצא משימוש) סמל EE
סטטוס השקה הופעל פיילוט (הוצא משימוש)
גישה
מנגנון חשבון Google Cloud דרך מסוף Cloud, על ידי הפעלת Solar API וניהול ה-API דרך הקטע 'הפלטפורמה של מפות Google' חשבון 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 project.

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

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

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

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

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

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

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

שימוש ב-Soar 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

תשובה לגרסה המקורית של התצוגה המקדימה

בגרסה המקורית של התצוגה המקדימה ב-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