বিল্ডিংইনসাইটস এন্ডপয়েন্ট একটি ভবনের অবস্থান, মাত্রা এবং সৌরশক্তির সম্ভাবনা সম্পর্কে অন্তর্দৃষ্টি প্রদান করে। বিশেষ করে, আপনি নিম্নলিখিত বিষয়ে তথ্য পেতে পারেন:
- সৌর প্যানেলের আকার, বার্ষিক সূর্যালোকের পরিমাণ, কার্বন অফসেট ফ্যাক্টর এবং আরও অনেক কিছু সহ সৌর সম্ভাবনা
- সৌর প্যানেলের অবস্থান, অভিযোজন এবং শক্তি উৎপাদন
- সর্বোত্তম সৌর বিন্যাসের আনুমানিক মাসিক শক্তি বিল এবং সংশ্লিষ্ট খরচ এবং সুবিধা
সৌর API কীভাবে সৌর সম্ভাবনা এবং সূর্যালোককে সংজ্ঞায়িত করে সে সম্পর্কে আরও জানতে, সৌর API ধারণাগুলি দেখুন।
APIs Explorer আপনাকে লাইভ অনুরোধ করতে দেয় যাতে আপনি API এবং API বিকল্পগুলির সাথে পরিচিত হতে পারেন:
অন্তর্দৃষ্টি অনুরোধ তৈরি সম্পর্কে
বিল্ডিং ইনসাইট অনুরোধ করতে, একটি HTTP GET অনুরোধ পাঠান:
https://solar.googleapis.com/v1/buildingInsights:findClosest?key=YOUR_API_KEY
আপনার অনুরোধের URL প্যারামিটারগুলি অন্তর্ভুক্ত করুন যা ফলাফলে অবস্থানের অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক এবং অনুমোদিত ন্যূনতম প্রয়োজনীয় মানের স্তর নির্দিষ্ট করে।
অন্তর্দৃষ্টি প্রতিক্রিয়া তৈরি সম্পর্কে
সোলার এপিআই রেসপন্স বডিতে একটি ভবনের অবস্থান, মাত্রা এবং সৌর সম্ভাবনা সম্পর্কে তথ্য প্রদান করে।
চিত্রের মান
কিছু ক্ষেত্রে, নির্দিষ্ট স্থানে অনুরোধ করা ছবির মান উপলব্ধ ছবির মানের থেকে আলাদা হতে পারে। এই ধরনের পরিস্থিতিতে, নিম্নলিখিত আচরণ প্রত্যাশিত:
| দৃশ্যকল্প | প্রতিক্রিয়া আচরণ |
|---|---|
কোনও স্থানে এমন চিত্র নেই যা মিলবেrequiredQuality । | সোলার API 404 স্ট্যাটাস কোড সহ একটি NOT_FOUND ত্রুটি প্রদান করে। |
একটি অনুরোধ একটি নির্দিষ্ট requiredQuality নির্দিষ্ট করে, কিন্তু শুধুমাত্র উচ্চতর চিত্র মানের স্তরের ডেটা উপলব্ধ। | সোলার এপিআই অবস্থানে উপলব্ধ সর্বোচ্চ মানের ডেটা প্রদান করে। |
বিল্ডিং ইনসাইট অনুরোধের উদাহরণ
নিম্নলিখিত উদাহরণটি অক্ষাংশ = 37.4450 এবং দ্রাঘিমাংশ = -122.1390 স্থানাঙ্কে অবস্থানের জন্য বিল্ডিং অন্তর্দৃষ্টি তথ্যের অনুরোধ করে:
API কী
প্রতিক্রিয়ায় 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"
আপনি আপনার ব্রাউজারের URL বারে cURL অনুরোধের 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 মান 90 এবং 270 এর মধ্যে রয়েছে তা চিহ্নিত করুন, তারপর সেই ছাদের অংশগুলির জন্য সম্পূর্ণ প্যানেল তালিকা ফিল্টার করতে সংশ্লিষ্ট segmentIndex ব্যবহার করুন।
চেষ্টা করে দেখুন!
APIs Explorer আপনাকে নমুনা অনুরোধ করতে দেয় যাতে আপনি API এবং API বিকল্পগুলির সাথে পরিচিত হতে পারেন।
পৃষ্ঠার ডান দিকে API আইকন API নির্বাচন করুন।
ঐচ্ছিকভাবে অনুরোধের প্যারামিটারগুলি সম্পাদনা করুন।
এক্সিকিউট বোতামটি নির্বাচন করুন। ডায়ালগে, অনুরোধটি করার জন্য আপনি যে অ্যাকাউন্টটি ব্যবহার করতে চান তা নির্বাচন করুন।
APIs Explorer প্যানেলে, APIs Explorer উইন্ডোটি প্রসারিত করতে ফুলস্ক্রিন আইকন ফুলস্ক্রিন নির্বাচন করুন।