buildingInsights এন্ডপয়েন্টটি একটি ভবনের অবস্থান, আয়তন এবং সৌর সম্ভাবনা সম্পর্কে তথ্য প্রদান করে। বিশেষ করে, আপনি নিম্নলিখিত বিষয়গুলো সম্পর্কে তথ্য পেতে পারেন:
- সৌর সম্ভাবনা, যার মধ্যে রয়েছে সোলার প্যানেলের আকার, বার্ষিক সূর্যালোকের পরিমাণ, কার্বন অফসেট ফ্যাক্টর এবং আরও অনেক কিছু।
- সৌর প্যানেলের অবস্থান, অভিমুখ এবং শক্তি উৎপাদন
- সর্বোত্তম সৌর বিন্যাসের আনুমানিক মাসিক বিদ্যুৎ বিল এবং এর সাথে সম্পর্কিত খরচ ও সুবিধাসমূহ
সোলার এপিআই কীভাবে সৌর সম্ভাবনা এবং সূর্যালোকের পরিমাণ নির্ধারণ করে সে সম্পর্কে আরও জানতে, সোলার এপিআই কনসেপ্টস দেখুন।
এপিআই এক্সপ্লোরার আপনাকে সরাসরি অনুরোধ করার সুযোগ দেয়, যাতে আপনি এপিআই এবং এর অপশনগুলোর সাথে পরিচিত হতে পারেন:
বিল্ডিং ইনসাইট অনুরোধ সম্পর্কে
ভবন সম্পর্কিত তথ্য জানতে, এখানে একটি HTTP GET অনুরোধ পাঠান:
https://solar.googleapis.com/v1/buildingInsights:findClosest?key=YOUR_API_KEY
আপনার অনুরোধ URL-এ এমন প্যারামিটার অন্তর্ভুক্ত করুন যা অবস্থানটির অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক এবং ফলাফলে অনুমোদিত সর্বনিম্ন প্রয়োজনীয় মানের স্তর নির্দিষ্ট করে।
অন্তর্দৃষ্টি প্রতিক্রিয়া তৈরি সম্পর্কে
সোলার এপিআই রেসপন্স বডিতে একটি ভবনের অবস্থান, আয়তন এবং সৌর সম্ভাবনা সম্পর্কিত তথ্য প্রদান করে।
ছবির গুণমান
কিছু ক্ষেত্রে, একটি নির্দিষ্ট স্থানে অনুরোধ করা ছবির গুণমান উপলব্ধ ছবির গুণমান থেকে ভিন্ন হতে পারে। এই ধরনের পরিস্থিতিতে, নিম্নলিখিত আচরণ প্রত্যাশিত:
| দৃশ্যকল্প | প্রতিক্রিয়া আচরণ |
|---|---|
একটি স্থানের এমন চিত্রাবলী নেই যা পূরণ করেrequiredQuality । | সোলার এপিআই 404 স্ট্যাটাস কোড সহ একটি NOT_FOUND ত্রুটি ফেরত দিচ্ছে। |
অনুরোধে একটি নির্দিষ্ট requiredQuality উল্লেখ করা হয়েছে, কিন্তু কেবল উচ্চতর গুণমানের চিত্র ডেটাই উপলব্ধ রয়েছে। | সোলার এপিআই সেই অবস্থানে উপলব্ধ সর্বোচ্চ মানের ডেটা প্রদান করে। |
বিল্ডিং ইনসাইটস অনুরোধের উদাহরণ
নিম্নলিখিত উদাহরণটি অক্ষাংশ = ৩৭.৪৪৫০ এবং দ্রাঘিমাংশ = -১২২.১৩৯০ স্থানাঙ্কে অবস্থিত স্থানটির জন্য ভবন সম্পর্কিত অন্তর্দৃষ্টিমূলক তথ্যের অনুরোধ করে:
এপিআই কী
রেসপন্সে থাকা URL-টিতে রিকোয়েস্ট পাঠাতে, URL-টির সাথে আপনার API কী যুক্ত করুন:
curl -X GET "https://solar.googleapis.com/v1/buildingInsights:findClosest?location.latitude=37.4450 &location.longitude=-122.1390 &requiredQuality=HIGH &key=YOUR_API_KEY"
আপনি cURL রিকোয়েস্টে থাকা URL-টি আপনার ব্রাউজারের URL বারে পেস্ট করেও HTTP রিকোয়েস্ট করতে পারেন। API কী প্রদান করলে আপনি উন্নততর ব্যবহার ও অ্যানালিটিক্স সুবিধা এবং রেসপন্স ডেটার উপর আরও ভালো অ্যাক্সেস কন্ট্রোল পাবেন।
OAuth টোকেন
দ্রষ্টব্য: এই ফরম্যাটটি শুধুমাত্র পরীক্ষার পরিবেশের জন্য। আরও তথ্যের জন্য, OAuth ব্যবহার দেখুন।
রেসপন্সে থাকা URL-এ রিকোয়েস্ট পাঠাতে, আপনার বিলিং প্রজেক্টের নাম এবং আপনার OAuth টোকেন পাস করুন:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \
"https://solar.googleapis.com/v1/buildingInsights:findClosest?location.latitude=37.4450&location.longitude=-122.1390"
টাইপস্ক্রিপ্ট
রেসপন্সে থাকা URL-এ রিকোয়েস্ট পাঠাতে, রিকোয়েস্টের সাথে আপনার API কী অথবা OAuth টোকেন অন্তর্ভুক্ত করুন। নিচের উদাহরণটিতে একটি API কী ব্যবহার করা হয়েছে:
/** * Fetches the building insights information from the Solar API. * https://developers.google.com/maps/documentation/solar/building-insights * * @param {LatLng} location Point of interest as latitude longitude. * @param {string} apiKey Google Cloud API key. * @return {Promise<DataLayersResponse>} Building Insights response. */ export async function findClosestBuilding( location: google.maps.LatLng, apiKey: string, ): Promise<BuildingInsightsResponse> { const args = { 'location.latitude': location.lat().toFixed(5), 'location.longitude': location.lng().toFixed(5), // The Solar API always returns the highest quality imagery available. required_quality: 'BASE', }; console.log('GET buildingInsights\n', args); const params = new URLSearchParams({ ...args, key: apiKey }); // https://developers.google.com/maps/documentation/solar/reference/rest/v1/buildingInsights/findClosest return fetch(`https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`).then( async (response) => { const content = await response.json(); if (response.status != 200) { console.error('findClosestBuilding\n', content); throw content; } console.log('buildingInsightsResponse', content); return content; }, ); }
ডেটা টাইপের সংজ্ঞা
নিম্নলিখিত ডেটা টাইপগুলি সমর্থিত:
export interface DataLayersResponse { imageryDate: Date; imageryProcessedDate: Date; dsmUrl: string; rgbUrl: string; maskUrl: string; annualFluxUrl: string; monthlyFluxUrl: string; hourlyShadeUrls: string[]; imageryQuality: 'HIGH' | 'MEDIUM' | 'BASE'; } export interface Bounds { north: number; south: number; east: number; west: number; } // https://developers.google.com/maps/documentation/solar/reference/rest/v1/buildingInsights/findClosest export interface BuildingInsightsResponse { name: string; center: LatLng; boundingBox: LatLngBox; imageryDate: Date; imageryProcessedDate: Date; postalCode: string; administrativeArea: string; statisticalArea: string; regionCode: string; solarPotential: SolarPotential; imageryQuality: 'HIGH' | 'MEDIUM' | 'BASE'; } export interface SolarPotential { maxArrayPanelsCount: number; panelCapacityWatts: number; panelHeightMeters: number; panelWidthMeters: number; panelLifetimeYears: number; maxArrayAreaMeters2: number; maxSunshineHoursPerYear: number; carbonOffsetFactorKgPerMwh: number; wholeRoofStats: SizeAndSunshineStats; buildingStats: SizeAndSunshineStats; roofSegmentStats: RoofSegmentSizeAndSunshineStats[]; solarPanels: SolarPanel[]; solarPanelConfigs: SolarPanelConfig[]; financialAnalyses: object; } export interface SizeAndSunshineStats { areaMeters2: number; sunshineQuantiles: number[]; groundAreaMeters2: number; } export interface RoofSegmentSizeAndSunshineStats { pitchDegrees: number; azimuthDegrees: number; stats: SizeAndSunshineStats; center: LatLng; boundingBox: LatLngBox; planeHeightAtCenterMeters: number; } export interface SolarPanel { center: LatLng; orientation: 'LANDSCAPE' | 'PORTRAIT'; segmentIndex: number; yearlyEnergyDcKwh: number; } export interface SolarPanelConfig { panelsCount: number; yearlyEnergyDcKwh: number; roofSegmentSummaries: RoofSegmentSummary[]; } export interface RoofSegmentSummary { pitchDegrees: number; azimuthDegrees: number; panelsCount: number; yearlyEnergyDcKwh: number; segmentIndex: number; } export interface LatLng { latitude: number; longitude: number; } export interface LatLngBox { sw: LatLng; ne: LatLng; } export interface Date { year: number; month: number; day: number; } export interface RequestError { error: { code: number; message: string; status: string; }; }
সেই অনুরোধটি নিম্নলিখিত ফর্ম্যাটে একটি JSON প্রতিক্রিয়া তৈরি করে:
{ "name": "buildings/ChIJh0CMPQW7j4ARLrRiVvmg6Vs", "center": { "latitude": 37.4449439, "longitude": -122.13914659999998 }, "imageryDate": { "year": 2022, "month": 8, "day": 14 }, "postalCode": "94303", "administrativeArea": "CA", "statisticalArea": "06085511100", "regionCode": "US", "solarPotential": { "maxArrayPanelsCount": 1163, "maxArrayAreaMeters2": 1903.5983, "maxSunshineHoursPerYear": 1802, "carbonOffsetFactorKgPerMwh": 428.9201, "wholeRoofStats": { "areaMeters2": 2399.3958, "sunshineQuantiles": [ 351, 1396, 1474, 1527, 1555, 1596, 1621, 1640, 1664, 1759, 1864 ], "groundAreaMeters2": 2279.71 }, "roofSegmentStats": [ { "pitchDegrees": 11.350553, "azimuthDegrees": 269.6291, "stats": { "areaMeters2": 452.00052, "sunshineQuantiles": [ 408, 1475, 1546, 1575, 1595, 1606, 1616, 1626, 1635, 1643, 1761 ], "groundAreaMeters2": 443.16 }, "center": { "latitude": 37.444972799999995, "longitude": -122.13936369999999 }, "boundingBox": { "sw": { "latitude": 37.444732099999996, "longitude": -122.1394224 }, "ne": { "latitude": 37.4451909, "longitude": -122.13929279999999 } }, "planeHeightAtCenterMeters": 10.7835045 }, /.../ ], "solarPanelConfigs": [ { "panelsCount": 4, "yearlyEnergyDcKwh": 1819.8662, "roofSegmentSummaries": [ { "pitchDegrees": 12.273684, "azimuthDegrees": 179.12555, "panelsCount": 4, "yearlyEnergyDcKwh": 1819.8663, "segmentIndex": 1 } ] }, /.../ ] "financialAnalyses": [ { "monthlyBill": { "currencyCode": "USD", "units": "20" }, "panelConfigIndex": -1 }, { "monthlyBill": { "currencyCode": "USD", "units": "25" }, "panelConfigIndex": -1 }, { "monthlyBill": { "currencyCode": "USD", "units": "30" }, "panelConfigIndex": -1 }, { "monthlyBill": { "currencyCode": "USD", "units": "35" }, "panelConfigIndex": 0, "financialDetails": { "initialAcKwhPerYear": 1546.8864, "remainingLifetimeUtilityBill": { "currencyCode": "USD", "units": "2563" }, "federalIncentive": { "currencyCode": "USD", "units": "1483" }, "stateIncentive": { "currencyCode": "USD" }, "utilityIncentive": { "currencyCode": "USD" }, "lifetimeSrecTotal": { "currencyCode": "USD" }, "costOfElectricityWithoutSolar": { "currencyCode": "USD", "units": "10362" }, "netMeteringAllowed": true, "solarPercentage": 86.7469, "percentageExportedToGrid": 52.136684 }, "leasingSavings": { "leasesAllowed": true, "leasesSupported": true, "annualLeasingCost": { "currencyCode": "USD", "units": "335", "nanos": 85540771 }, "savings": { "savingsYear1": { "currencyCode": "USD", "units": "-10" }, "savingsYear20": { "currencyCode": "USD", "units": "1098" }, "presentValueOfSavingsYear20": { "currencyCode": "USD", "units": "568", "nanos": 380859375 }, "financiallyViable": true, "savingsLifetime": { "currencyCode": "USD", "units": "1098" }, "presentValueOfSavingsLifetime": { "currencyCode": "USD", "units": "568", "nanos": 380859375 } } }, "cashPurchaseSavings": { "outOfPocketCost": { "currencyCode": "USD", "units": "5704" }, "upfrontCost": { "currencyCode": "USD", "units": "4221" }, "rebateValue": { "currencyCode": "USD", "units": "1483", "nanos": 40039063 }, "paybackYears": 11.5, "savings": { "savingsYear1": { "currencyCode": "USD", "units": "325" }, "savingsYear20": { "currencyCode": "USD", "units": "7799" }, "presentValueOfSavingsYear20": { "currencyCode": "USD", "units": "1083", "nanos": 500244141 }, "financiallyViable": true, "savingsLifetime": { "currencyCode": "USD", "units": "7799" }, "presentValueOfSavingsLifetime": { "currencyCode": "USD", "units": "1083", "nanos": 500244141 } } }, "financedPurchaseSavings": { "annualLoanPayment": { "currencyCode": "USD", "units": "335", "nanos": 85540771 }, "rebateValue": { "currencyCode": "USD" }, "loanInterestRate": 0.05, "savings": { "savingsYear1": { "currencyCode": "USD", "units": "-10" }, "savingsYear20": { "currencyCode": "USD", "units": "1098" }, "presentValueOfSavingsYear20": { "currencyCode": "USD", "units": "568", "nanos": 380859375 }, "financiallyViable": true, "savingsLifetime": { "currencyCode": "USD", "units": "1098" }, "presentValueOfSavingsLifetime": { "currencyCode": "USD", "units": "568", "nanos": 380859375 } } } }, ], /.../ "panelCapacityWatts": 400, "panelHeightMeters": 1.879, "panelWidthMeters": 1.045, "panelLifetimeYears": 20, "buildingStats": { "areaMeters2": 2533.1233, "sunshineQuantiles": [ 348, 1376, 1460, 1519, 1550, 1590, 1618, 1638, 1662, 1756, 1864 ], "groundAreaMeters2": 2356.03 }, "solarPanels": [ { "center": { "latitude": 37.4449659, "longitude": -122.139089 }, "orientation": "LANDSCAPE", "yearlyEnergyDcKwh": 455.40714, "segmentIndex": 1 }, /.../ ] "imageryQuality": "HIGH", "imageryProcessedDate": { "year": 2023, "month": 8, "day": 4 } }
প্যানেল স্থাপনের জন্য ছাদের অংশ নির্বাচন করুন
কিছু ক্ষেত্রে, আপনি সোলার প্যানেল স্থাপনের জন্য ছাদের নির্দিষ্ট অংশ নির্বাচন করতে পারেন। roofSegmentStats একটি নির্দিষ্ট ছাদের অংশের আকার, অভিমুখ এবং রৌদ্রস্নানের পরিমাণ সম্পর্কে তথ্য প্রদান করে:
"roofSegmentStats": [ { "pitchDegrees": 11.350553, "azimuthDegrees": 269.6291, "stats": { "areaMeters2": 452.00052, "sunshineQuantiles": [409.601, 1482.1255, 1553.5117, 1582.7875, 1602.3456, 1613.7804, 1623.6434, 1634.0812, 1642.697, 1651.0267, 1771.4792], "groundAreaMeters2": 443.16 }, "center": { "latitude": 37.4449728, "longitude": -122.1393637 }, "boundingBox": { "sw": { "latitude": 37.4447321, "longitude": -122.1394224 }, "ne": { "latitude": 37.4451909, "longitude": -122.1392928 } }, "planeHeightAtCenterMeters": 10.7835045 }, { "pitchDegrees": 12.273684, "azimuthDegrees": 179.12555, "stats": { "areaMeters2": 309.87268, "sunshineQuantiles": [650.5504, 1701.709, 1745.0032, 1768.4081, 1779.1625, 1787.4258, 1794.9333, 1801.3938, 1806.7461, 1814.0724, 1845.8717], "groundAreaMeters2": 302.79 }, "center": { "latitude": 37.4449286, "longitude": -122.1389889 }, "boundingBox": { "sw": { "latitude": 37.4448617, "longitude": -122.1392095 }, "ne": { "latitude": 37.444982, "longitude": -122.1387809 } }, "planeHeightAtCenterMeters": 10.67585 }, /.../ ],
এই বৈশিষ্ট্যগুলির উপর ভিত্তি করে, আপনি একটি নির্দিষ্ট ছাদের অংশে স্থাপিত প্যানেলগুলি নির্বাচন করতে পারেন। buildingInsights এন্ডপয়েন্টের মাধ্যমে প্রাপ্ত প্রতিটি প্যানেলে একটি segmentIndex মান অন্তর্ভুক্ত থাকে, যা নির্দেশ করে প্যানেলটি ছাদের কোন অংশে স্থাপন করা হয়েছে:
{ "panelsCount": 142, "yearlyEnergyDcKwh": 101170.17, "roofSegmentSummaries": [ { "pitchDegrees": 12.273684, "azimuthDegrees": 179.12555, "panelsCount": 122, "yearlyEnergyDcKwh": 87260.48, "segmentIndex": 1 }, { "pitchDegrees": 11.245564, "azimuthDegrees": 179.204, "panelsCount": 18, "yearlyEnergyDcKwh": 12544.052, "segmentIndex": 3 }, { "pitchDegrees": 2.5699794, "azimuthDegrees": 86.05642, "panelsCount": 1, "yearlyEnergyDcKwh": 681.69183, "segmentIndex": 10 }, { "pitchDegrees": 0.10844088, "azimuthDegrees": 0, "panelsCount": 1, "yearlyEnergyDcKwh": 683.9312, "segmentIndex": 14 } ] },
নির্দিষ্ট বৈশিষ্ট্যযুক্ত ছাদের অংশগুলিতে প্যানেল নির্বাচন করতে, আপনি segmentIndex দ্বারা ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি ছাদের দক্ষিণমুখী অংশে প্যানেল স্থাপন করতে চান, তাহলে শনাক্ত করুন কোন ছাদের অংশগুলির azimuthDegrees মান ৯০ থেকে ২৭০-এর মধ্যে রয়েছে, তারপর সেই ছাদের অংশগুলির জন্য সম্পূর্ণ প্যানেল তালিকাটি ফিল্টার করতে সংশ্লিষ্ট segmentIndex ব্যবহার করুন।
চেষ্টা করে দেখুন!
এপিআই এক্সপ্লোরার আপনাকে নমুনা অনুরোধ করার সুযোগ দেয়, যাতে আপনি এপিআই এবং এর অপশনগুলোর সাথে পরিচিত হতে পারেন।
পৃষ্ঠার ডানদিকে থাকা API আইকনটি (api) নির্বাচন করুন।
ইচ্ছা হলে অনুরোধের প্যারামিটারগুলো সম্পাদনা করুন।
Execute বাটনটি নির্বাচন করুন। প্রদর্শিত ডায়ালগ বক্সে, অনুরোধটি করার জন্য আপনি যে অ্যাকাউন্টটি ব্যবহার করতে চান, সেটি বেছে নিন।
এপিআই এক্সপ্লোরার প্যানেলে, এপিআই এক্সপ্লোরার উইন্ডোটি প্রসারিত করতে ফুলস্ক্রিন আইকনটি নির্বাচন করুন।