للانتقال من واجهة برمجة التطبيقات Solar API في Google Earth Engine إلى واجهة برمجة التطبيقات Solar API في منصة خرائط Google:
- فعِّل واجهة برمجة التطبيقات Solar API في "منصة خرائط Google" في مشروعك على السحابة الإلكترونية.
- أنشئ مفتاحًا جديدًا وحدِّده لواجهة برمجة التطبيقات GMP Solar API.
- عدِّل الرمز البرمجي باستخدام التعليمات التالية المفصّلة.
المقارنة جنبًا إلى جنب
Solar API (الإصدار الجديد) | واجهة برمجة التطبيقات Solar API في Earth Engine (تم إيقافها نهائيًا) | |
---|---|---|
حالة الإطلاق | تم طرح الميزة. | الإصدار التجريبي (ميزة متوقّفة نهائيًا) |
إذن الوصول | ||
الآلية | حساب Google Cloud من خلال وحدة تحكّم Cloud، من خلال تفعيل Solar API وإدارة واجهة برمجة التطبيقات من خلال قسم "منصة خرائط Google" | حساب Google Cloud من خلال وحدة تحكّم Cloud، من خلال تفعيل واجهة برمجة التطبيقات Earth Engine Solar API |
من يمكنه الاستفادة منها؟ | علني | الوصول خاضع للرقابة |
المستوى | مُدارة ذاتيًا | الوصول اليدوي إلى مشروع على السحابة الإلكترونية |
المصادقة | مفتاح واجهة برمجة التطبيقات وOAuth | مفتاح واجهة برمجة التطبيقات |
الأسعار | ||
الاستراتيجية | Pay-as-you-go | خصم بنسبة %100 |
التقسيم إلى مستويات | لكل 1, 000 طلب بحث، مع انخفاض الأسعار استنادًا إلى الحجم | – |
نقاط النهاية | أسعار مختلفة لكل نقطة نهاية | – |
السحابة الإلكترونية | ||
المراقبة | مراقبة السحابة الإلكترونية ضمن "Google Maps Platform" | Cloud Monitoring ضمن "واجهات برمجة التطبيقات والخدمات" |
الحصة | عدد طلبات البحث في الدقيقة (QPM) وعدد طلبات البحث في الساعة (QPH) | سنويًا |
التسجيل | Cloud Logging (اختياري) | Cloud Logging (اختياري) |
الفوترة | حساب "الفوترة في السحابة الإلكترونية" | - |
الدعم | دعم كامل من "منصة خرائط Google" مع اتفاقية مستوى الخدمة (SLA) أو اتفاقية مستوى الأداء (SLO) | محدودة، عبر البريد الإلكتروني |
واجهة برمجة التطبيقات | ||
اسم المضيف | https://solar.googleapis.com/v1/ (REST) |
https://earthenginesolar.googleapis.com/v1/ (REST) |
الطُرق |
|
|
الردّ | ما مِن تغييرات مقارنةً بالإصدار التجريبي | – |
solarInfo |
نطاق جغرافي لا يتجاوز 100 متر | نطاق جغرافي لا يتجاوز 100 متر |
التغطية | ||
المساحة | عالمي | عالمي |
جودة البيانات | HIGH /MEDIUM |
HIGH /MEDIUM |
نوع المبنى | أي مبنى تم ربطه بعنوان وضمن نطاق تغطية صور Solar API | أي مبنى تم ربطه بعنوان وضمن نطاق تغطية صور Solar API |
بنود الخدمة | ||
بنود الخدمة | بنود "منصة خرائط Google" | بنود Google Earth Engine |
خطوة بخطوة
إعداد مشروعك على Google Cloud
يمكنك الاطّلاع على التعليمات هنا: إعداد مشروعك على Google Cloud.
يمكن لأدوار معيّنة فقط إنشاء مشروع على Cloud. إذا لم تتمكّن من إنشاء مشروع، يُرجى التواصل مع مشرف مؤسستك.
يمكنك أيضًا استخدام مشروع حالي على Cloud. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة البدء في استخدام Google Maps Platform.
إعداد حساب الفوترة
يمكنك الاطّلاع على التعليمات هنا: كيفية إدارة حساب الفوترة.
يمكنك استخدام مشروع حالي على 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; } }
مراقب
مستوى المشروع |
مستوى حساب الفوترة
|
نصائح مفيدة
- الحصة: الاستهلاك الذي يمكن توسيعه (بدلاً من الاستهلاك السنوي الذي سيختفي)
- الحصة الحالية التي سيتم تغييرها إلى عدد الطلبات في الدقيقة
- أفضل الممارسات: ضبط الحصة من جهة العميل وإرسال التنبيهات
- الأسعار:
- Pay-as-you-go
- لن يتم تحصيل رسوم منك مقابل استجابات 404 NOT_FOUND عندما لا يكون الموقع الجغرافي ضمن نطاق التغطية، ولكن سيتم احتسابها ضمن الحصة.
- بنود الاستخدام العامة: بنود خدمة "منصة خرائط Google"