نقل البيانات إلى Solar API على "منصة خرائط Google"

للانتقال من Google Earth Engine Solar API إلى Google Maps Platform، Solar API، اتّبِع الخطوات التالية:

  1. تفعيل واجهة برمجة التطبيقات Solar Platform على Google Maps Platform في مشروعك على السحابة الإلكترونية
  2. يجب إنشاء مفتاح جديد وحصره بـ GMP Solar API.
  3. قم بتحديث الرمز الخاص بك باستخدام التعليمات المفصّلة أدناه.

المقارنة جنبًا إلى جنب

Solar API (جديدة) منازل تحت أشعة الشمس Earth Engine Solar API (متوقّفة نهائيًا) رمز EE
حالة الإطلاق تم طرح الميزة. البرنامج التجريبي (متوقف نهائيًا)
إمكانية الوصول
الآلية حساب على Google Cloud من خلال Cloud Console من خلال تفعيل Solar API وإدارة واجهة برمجة التطبيقات من خلال قسم "منصة خرائط Google" حساب Google Cloud عبر Cloud Console، من خلال تفعيل Earth Engine Solar API
الحُضور عامة التحكّم في إمكانية الوصول
المستوى ذاتي الإدارة الوصول اليدوي للمشروع على السحابة الإلكترونية
المصادقة مفتاح واجهة برمجة التطبيقات وبروتوكول OAuth مفتاح واجهة برمجة التطبيقات
السعر
الاستراتيجية Pay-as-you-go خصم 100%
التقسيم إلى مستويات لكل 1000 طلب بحث، مع خفض الأسعار استنادًا إلى حجم طلبات البحث
نقاط النهاية الأسعار المختلفة لكل نقطة نهاية
السحابة الإلكترونية
المراقبة المراقبة في السحابة الإلكترونية ضمن "منصة خرائط Google" Cloud Monitoring ضمن "واجهات برمجة التطبيقات والخدمات"
الحصة QPM (طلب البحث في الدقيقة) وQPH (طلب البحث في الساعة) سنويًا
التسجيل Cloud Logging (اختياري) Cloud Logging (اختياري)
الفوترة حساب فوترة Cloud -
الدعم التوافق الكامل مع "منصة خرائط Google" مع هدف مستوى الخدمة/اتفاقية مستوى الخدمة محدودة، بالبريد الإلكتروني
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
نوع المبنى أي مبنى مرتبط بعنوان AND ضمن نطاق تغطية صور Solar API أي مبنى مرتبط بعنوان AND ضمن نطاق تغطية صور Solar API
بنود الخدمة
TOS أحكام "منصة خرائط Google" بنود خدمة Google Earth Engine

خطوة بخطوة

إعداد مشروعك على Google Cloud

يمكنك الاطّلاع على التعليمات الواردة هنا: إعداد مشروعك على Google Cloud.

يمكن لأدوار معيّنة فقط إنشاء مشروع على السحابة الإلكترونية، وإذا لم تتمكن من إنشاء مشروع، يمكنك التواصل مع مشرف مؤسستك.

ويمكنك أيضًا استخدام مشروع حالي على السحابة الإلكترونية. للمزيد من المعلومات، اطّلِع على بدء استخدام "منصة خرائط Google".

إعداد حساب الفوترة

يمكن الاطّلاع على التعليمات هنا: كيفية إدارة حساب الفوترة.

يمكنك استخدام مشروع حالي على Cloud مع حساب فوترة حالي.

الحصول على مفتاح واجهة برمجة التطبيقات أو استخدام رمز OAuth المميز

بعد إعداد مشروعك على Google Cloud، عليك إنشاء مفتاح واجهة برمجة التطبيقات وتأمينه لاستخدام واجهة برمجة التطبيقات Solar API على النحو الموضّح في قسم استخدام مفاتيح واجهة برمجة التطبيقات. يمكنك بدلاً من ذلك إنشاء رمز OAuth مميز كما هو موضّح في استخدام OAuth.

استخدام Solar API

  • إرسال طلبات GET إلى نقاط النهاية الجديدة : https://solar.googleapis.com
  • يُرجى العلم أنّه تم تغيير بعض أسماء طرق واجهة برمجة التطبيقات:
    • buildings:findClosest ‏← buildingInsights:findClosest
    • solarinfo:get ‏← dataLayers:get

التجربة السريعة: استخدِم مفتاح واجهة برمجة التطبيقات المحفوظ من الخطوة السابقة واستبدل 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 الفعلي نفسه، في أنّه يجب عليك تمرير مفتاح واجهة برمجة التطبيقات إلى طلب الوصول إلى عناوين URL من تنسيق الاستجابة الجديد. وفي حال حذف مفتاح واجهة برمجة التطبيقات، سيتعذّر تنفيذ الطلب.

على سبيل المثال، يمكنك إضافة الرمز التالي إلى تطبيقك لفحص عنوان 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 Billing

نصائح مفيدة

  • الحصة: الاستهلاك الذي يمكن أن يتزايد (بدلاً من الاستهلاك السنوي والذي سيختفي)
    • النسبة الحالية التي سيتم تغييرها إلى QPM
    • أفضل الممارسات: ضبط الحصة من جهة العميل وإرسال التنبيهات
  • السعر:
    • Pay-as-you-go
    • 404 استجابات NOT_FOUND، عندما لا يكون الموقع الجغرافي ضمن نطاق التغطية، لن يتم تحصيل الرسوم منهم ولكن سيتم احتسابهم ضمن الحصة المحدّدة
  • بنود الاستخدام العامة: بنود خدمة "منصة خرائط Google"