Method: buildingInsights.findClosest

Находит здание, центроид которого находится ближе всего к точке запроса. Возвращает ошибку с кодом NOT_FOUND , если в радиусе приблизительно 50 м от точки запроса нет зданий.

HTTP-запрос

GET https://solar.googleapis.com/v1/buildingInsights:findClosest

URL использует синтаксис перекодировки gRPC .

Параметры запроса

Параметры
location

object ( LatLng )

Обязательно. Долгота и широта, на которых API ищет ближайшее известное здание.

requiredQuality

enum ( ImageryQuality )

Необязательно. Минимально допустимый уровень качества в результатах. Результаты с более низким качеством не возвращаются. Отсутствие этого параметра эквивалентно ограничению только ВЫСОКИМ качеством.

exactQualityRequired

boolean

Необязательно. Требовать ли точное качество изображения. Если задано значение false, поле requiredQuality интерпретируется как минимально необходимое качество, поэтому могут быть возвращены изображения ВЫСОКОГО качества, если requiredQuality имеет значение MEDIUM. Если задано значение true, requiredQuality интерпретируется как точное требуемое качество, и возвращаются только изображения MEDIUM качества, если requiredQuality имеет значение MEDIUM .

experiments[]

enum ( Experiment )

Необязательно. Указывает, какие функции до GA необходимо включить.

Текст запроса

Тело запроса должно быть пустым.

Тело ответа

Ответное сообщение для Solar.FindClosestBuildingInsights . Информация о местоположении, размерах и солнечном потенциале здания.

В случае успеха тело ответа содержит данные со следующей структурой:

JSON-представление
{
  "name": string,
  "center": {
    object (LatLng)
  },
  "boundingBox": {
    object (LatLngBox)
  },
  "imageryDate": {
    object (Date)
  },
  "imageryProcessedDate": {
    object (Date)
  },
  "postalCode": string,
  "administrativeArea": string,
  "statisticalArea": string,
  "regionCode": string,
  "solarPotential": {
    object (SolarPotential)
  },
  "imageryQuality": enum (ImageryQuality)
}
Поля
name

string

Имя ресурса для здания в формате buildings/{place_id} .

center

object ( LatLng )

Точка вблизи центра здания.

boundingBox

object ( LatLngBox )

Ограничивающая рамка здания.

imageryDate

object ( Date )

Дата получения исходного изображения. Приблизительная.

imageryProcessedDate

object ( Date )

После завершения обработки данного снимка.

postalCode

string

Почтовый индекс (например, почтовый индекс США), в котором находится это здание.

administrativeArea

string

Административный район 1 (например, штат в США), в котором находится это здание. Например, в США аббревиатура может быть «MA» или «CA».

statisticalArea

string

Статистическая область (например, район переписи населения США), в которой находится это здание.

regionCode

string

Код региона страны (или региона), в котором находится это здание.

solarPotential

object ( SolarPotential )

Солнечный потенциал здания.

imageryQuality

enum ( ImageryQuality )

Качество изображений, использованных для расчета данных для этого здания.

Области авторизации

Требуется следующая область OAuth:

  • https://www.googleapis.com/auth/cloud-platform

LatLngBox

Ограничивающий прямоугольник в координатах широта/долгота.

JSON-представление
{
  "sw": {
    object (LatLng)
  },
  "ne": {
    object (LatLng)
  }
}
Поля
sw

object ( LatLng )

Юго-западный угол коробки.

ne

object ( LatLng )

Северо-восточный угол коробки.

СолнечныйПотенциал

Информация о солнечном потенциале здания. Ряд полей в этой таблице определены в терминах «панелей». Поля panelCapacityWatts , panelHeightMeters и panelWidthMeters описывают параметры модели панели, используемой в этих расчётах.

JSON-представление
{
  "maxArrayPanelsCount": integer,
  "panelCapacityWatts": number,
  "panelHeightMeters": number,
  "panelWidthMeters": number,
  "panelLifetimeYears": integer,
  "maxArrayAreaMeters2": number,
  "maxSunshineHoursPerYear": number,
  "carbonOffsetFactorKgPerMwh": number,
  "wholeRoofStats": {
    object (SizeAndSunshineStats)
  },
  "buildingStats": {
    object (SizeAndSunshineStats)
  },
  "roofSegmentStats": [
    {
      object (RoofSegmentSizeAndSunshineStats)
    }
  ],
  "solarPanels": [
    {
      object (SolarPanel)
    }
  ],
  "solarPanelConfigs": [
    {
      object (SolarPanelConfig)
    }
  ],
  "financialAnalyses": [
    {
      object (FinancialAnalysis)
    }
  ]
}
Поля
maxArrayPanelsCount

integer

Размер максимального массива — то есть максимальное количество панелей, которое может поместиться на крыше.

panelCapacityWatts

number

Мощность панели, использованной в расчетах, в ваттах.

panelHeightMeters

number

Высота панели, используемой в расчетах, в метрах в портретной ориентации.

panelWidthMeters

number

Ширина панели, используемой в расчетах, в метрах в портретной ориентации.

panelLifetimeYears

integer

Ожидаемый срок службы солнечных панелей (в годах). Используется в финансовых расчётах.

maxArrayAreaMeters2

number

Размер максимального массива в квадратных метрах.

maxSunshineHoursPerYear

number

Максимальное количество часов солнечного сияния, получаемых любой точкой крыши за год. Количество часов солнечного сияния — это мера общего количества инсоляции (энергии), получаемой за год. 1 час солнечного сияния = 1 кВт⋅ч на кВт (где кВт — это кВт мощности в стандартных условиях испытаний).

carbonOffsetFactorKgPerMwh

number

Эквивалентное количество CO2, производимое на МВт·ч сетевой электроэнергии. Это показатель углеродоёмкости сетевой электроэнергии, замещаемой солнечной.

wholeRoofStats

object ( SizeAndSunshineStats )

Общая площадь и квантили солнечного света для части крыши, отнесённой к какому-либо сегменту. Несмотря на название, это может не относиться ко всему зданию. См. buildingStats .

buildingStats

object ( SizeAndSunshineStats )

Квантили площади и солнечного света для всего здания, включая части крыши, не относящиеся к какому-либо сегменту. Поскольку ориентация этих частей плохо охарактеризована, оценка площади крыши ненадёжна, но оценка площади земли надёжна. Возможно, более надёжную площадь крыши всего здания можно получить, масштабируя площадь крыши из wholeRoofStats на отношение площадей земли buildingStats к wholeRoofStats .

roofSegmentStats[]

object ( RoofSegmentSizeAndSunshineStats )

Размеры и квантили солнечного света для каждого сегмента крыши.

solarPanels[]

object ( SolarPanel )

Каждый SolarPanel описывает одну солнечную панель. Они перечислены в порядке, в котором их разместил алгоритм компоновки панелей. Обычно, хотя и не всегда, это порядок убывания годовой выработки энергии.

solarPanelConfigs[]

object ( SolarPanelConfig )

Каждый SolarPanelConfig описывает различное расположение солнечных панелей на крыше. Они расположены в порядке возрастания количества панелей. SolarPanelConfig с panelsCount =N рассчитывается на основе первых N панелей в списке solarPanels . Это поле заполняется только в том случае, если на крыше можно разместить не менее 4 панелей.

financialAnalyses[]

object ( FinancialAnalysis )

FinancialAnalysis показывает экономию от перехода на солнечную энергию при заданном ежемесячном счёте и поставщике электроэнергии. Данные расположены в порядке возрастания ежемесячного счёта. Это поле будет пустым для зданий в районах, по которым у Solar API недостаточно информации для выполнения финансовых расчётов.

SizeAndSunshineStats

Размер и квантили солнечной освещенности крыши или ее части.

JSON-представление
{
  "areaMeters2": number,
  "sunshineQuantiles": [
    number
  ],
  "groundAreaMeters2": number
}
Поля
areaMeters2

number

Площадь крыши или её сегмента, в м². Это площадь крыши (с учётом наклона), а не площадь поверхности земли.

sunshineQuantiles[]

number

Квантили точечной солнечности в области. Если здесь N значений, это соответствует (N-1)-илям. Например, если 5 значений, то это будут квартили (мин., 25%, 50%, 75%, макс.). Значения выражаются в кВт·ч/кВт в год, например, maxSunshineHoursPerYear .

groundAreaMeters2

number

Площадь поверхности земли, покрытая крышей или сегментом крыши, в м^2.

Размер сегмента крыши и статистика солнечного света

Информация о размере и квантилях солнечности сегмента крыши.

JSON-представление
{
  "stats": {
    object (SizeAndSunshineStats)
  },
  "center": {
    object (LatLng)
  },
  "boundingBox": {
    object (LatLngBox)
  },
  "pitchDegrees": number,
  "azimuthDegrees": number,
  "planeHeightAtCenterMeters": number
}
Поля
stats

object ( SizeAndSunshineStats )

Общий размер и квантили солнечного света для сегмента крыши.

center

object ( LatLng )

Точка вблизи центра сегмента крыши.

boundingBox

object ( LatLngBox )

Ограничивающий прямоугольник сегмента крыши.

pitchDegrees

number

Угол наклона сегмента крыши относительно теоретической плоскости земли. 0 = параллельно земле, 90 = перпендикулярно земле.

azimuthDegrees

number

Направление по компасу, куда указывает сегмент крыши. 0 = север, 90 = восток, 180 = юг. Для «плоского» сегмента крыши ( pitchDegrees очень близок к 0) азимут определён нечётко, поэтому для единообразия мы произвольно задаём его равным 0 (север).

planeHeightAtCenterMeters

number

Высота плоскости сегмента крыши, в метрах над уровнем моря, в точке, обозначенной как center . Вместе с уклоном, азимутом и положением центра это полностью определяет плоскость сегмента крыши.

Солнечная панель

SolarPanel описывает положение, ориентацию и производительность одной солнечной панели. Информацию о параметрах панели см. в полях panelHeightMeters , panelWidthMeters и panelCapacityWatts в SolarPotential .

JSON-представление
{
  "center": {
    object (LatLng)
  },
  "orientation": enum (SolarPanelOrientation),
  "yearlyEnergyDcKwh": number,
  "segmentIndex": integer
}
Поля
center

object ( LatLng )

Центр панели.

orientation

enum ( SolarPanelOrientation )

Ориентация панели.

yearlyEnergyDcKwh

number

Сколько солнечной энергии эта схема улавливает в течение года (в кВт·ч постоянного тока).

segmentIndex

integer

Индекс в roofSegmentStats элемента RoofSegmentSizeAndSunshineStats , который соответствует сегменту крыши, на котором размещена эта панель.

Ориентация солнечной панели

Ориентация солнечной панели. Её следует интерпретировать относительно азимута сегмента крыши, на котором установлена ​​панель.

Перечисления
SOLAR_PANEL_ORIENTATION_UNSPECIFIED Ориентация панели неизвестна.
LANDSCAPE Панель LANDSCAPE имеет длинную кромку, перпендикулярную азимуту сегмента крыши, на котором она размещена.
PORTRAIT Панель PORTRAIT имеет длинную кромку, параллельную азимуту сегмента крыши, на котором она размещена.

SolarPanelConfig

SolarPanelConfig описывает конкретное размещение солнечных панелей на крыше.

JSON-представление
{
  "panelsCount": integer,
  "yearlyEnergyDcKwh": number,
  "roofSegmentSummaries": [
    {
      object (RoofSegmentSummary)
    }
  ]
}
Поля
panelsCount

integer

Общее количество панелей. Обратите внимание, что это избыточно по сравнению с (суммой) соответствующих полей в roofSegmentSummaries .

yearlyEnergyDcKwh

number

Сколько солнечной энергии эта схема улавливает в течение года (в кВт·ч постоянного тока), при условии использования панелей, описанных выше.

roofSegmentSummaries[]

object ( RoofSegmentSummary )

Информация о производстве каждого сегмента крыши, на котором размещена хотя бы одна панель в этой компоновке. roofSegmentSummaries[i] описывает i-й сегмент крыши, включая его размер, ожидаемое производство и ориентацию.

Краткое описание сегмента крыши

Информация о сегменте крыши здания с размещенным на нем некоторым количеством панелей.

JSON-представление
{
  "panelsCount": integer,
  "yearlyEnergyDcKwh": number,
  "pitchDegrees": number,
  "azimuthDegrees": number,
  "segmentIndex": integer
}
Поля
panelsCount

integer

Общее количество панелей на этом сегменте.

yearlyEnergyDcKwh

number

Сколько солнечной энергии эта часть макета улавливает в течение года (в кВт·ч постоянного тока), при условии использования панелей, описанных выше.

pitchDegrees

number

Угол наклона сегмента крыши относительно теоретической плоскости земли. 0 = параллельно земле, 90 = перпендикулярно земле.

azimuthDegrees

number

Направление по компасу, куда указывает сегмент крыши. 0 = север, 90 = восток, 180 = юг. Для «плоского» сегмента крыши ( pitchDegrees очень близок к 0) азимут определён нечётко, поэтому для единообразия мы произвольно задаём его равным 0 (север).

segmentIndex

integer

Индекс в roofSegmentStats соответствующего RoofSegmentSizeAndSunshineStats .

Финансовыйанализ

Анализ стоимости и выгод оптимальной компоновки солнечных панелей для конкретного размера счета за электроэнергию.

JSON-представление
{
  "monthlyBill": {
    object (Money)
  },
  "defaultBill": boolean,
  "averageKwhPerMonth": number,
  "financialDetails": {
    object (FinancialDetails)
  },
  "leasingSavings": {
    object (LeasingSavings)
  },
  "cashPurchaseSavings": {
    object (CashPurchaseSavings)
  },
  "financedPurchaseSavings": {
    object (FinancedPurchaseSavings)
  },
  "panelConfigIndex": integer
}
Поля
monthlyBill

object ( Money )

В данном анализе предполагается, что ежемесячный счет за электроэнергию.

defaultBill

boolean

Выбран ли этот размер счета в качестве счета по умолчанию для района, в котором находится это здание? Только один FinancialAnalysis в BuildingSolarPotential должен иметь установленный defaultBill .

averageKwhPerMonth

number

Сколько электроэнергии потребляет дом в среднем за месяц в зависимости от размера счета и местных тарифов на электроэнергию.

financialDetails

object ( FinancialDetails )

Финансовая информация, которая применима независимо от используемого метода финансирования.

leasingSavings

object ( LeasingSavings )

Стоимость и выгода аренды солнечных панелей.

cashPurchaseSavings

object ( CashPurchaseSavings )

Стоимость и выгода покупки солнечных панелей за наличные.

financedPurchaseSavings

object ( FinancedPurchaseSavings )

Стоимость и выгода от приобретения солнечных панелей путем финансирования покупки.

panelConfigIndex

integer

Индекс в solarPanelConfigs оптимальной схемы расположения солнечных панелей для данного размера счёта. Может быть равен -1, что указывает на отсутствие схемы. В этом случае остальные подсообщения будут пропущены.

Деньги

Представляет собой сумму денег с указанным типом валюты.

JSON-представление
{
  "currencyCode": string,
  "units": string,
  "nanos": integer
}
Поля
currencyCode

string

Трехбуквенный код валюты, определенный в ISO 4217.

units

string ( int64 format)

Целые единицы суммы. Например, если currencyCode"USD" , то 1 единица равна одному доллару США.

nanos

integer

Количество единиц нано (10^-9) от суммы. Значение должно быть в диапазоне от -999 999 999 до +999 999 999 включительно. Если units положительная, nanos должно быть положительным или нулевым. Если units равна нулю, nanos может быть положительным, нулевым или отрицательным. Если units отрицательная, nanos должно быть отрицательным или нулевым. Например, $-1,75 представляется как units = -1, а nanos = -750 000 000.

ФинансовыеДетали

Подробная информация о финансовом анализе. Некоторые из этих данных уже хранятся на более высоких уровнях (например, фактические расходы). Общие суммы указаны за весь срок службы, определяемый полем panelLifetimeYears в SolarPotential . Примечание: фактические расходы на приобретение панелей указаны в поле outOfPocketCost в CashPurchaseSavings .

JSON-представление
{
  "initialAcKwhPerYear": number,
  "remainingLifetimeUtilityBill": {
    object (Money)
  },
  "federalIncentive": {
    object (Money)
  },
  "stateIncentive": {
    object (Money)
  },
  "utilityIncentive": {
    object (Money)
  },
  "lifetimeSrecTotal": {
    object (Money)
  },
  "costOfElectricityWithoutSolar": {
    object (Money)
  },
  "netMeteringAllowed": boolean,
  "solarPercentage": number,
  "percentageExportedToGrid": number
}
Поля
initialAcKwhPerYear

number

Сколько кВт/ч переменного тока, по нашему мнению, солнечные панели будут генерировать в первый год работы?

remainingLifetimeUtilityBill

object ( Money )

Счет за электроэнергию, не произведенную солнечными панелями, за весь срок службы панелей.

federalIncentive

object ( Money )

Сумма денег, доступная в виде федеральных стимулов; это применяется, если пользователь покупает панели (с кредитом или без него).

stateIncentive

object ( Money )

Сумма денег, доступная в виде государственных стимулов; это применяется, если пользователь покупает панели (с кредитом или без него).

utilityIncentive

object ( Money )

Сумма денег, доступная в качестве стимулов для коммунальных служб; это применяется, если пользователь покупает панели (с кредитом или без него).

lifetimeSrecTotal

object ( Money )

Сумма денег, которую пользователь получит в виде кредитов на возобновляемую солнечную энергию в течение срока службы панелей; это применяется, если пользователь покупает панели (с кредитом или без него).

costOfElectricityWithoutSolar

object ( Money )

Общая стоимость электроэнергии, которую пользователь заплатил бы за весь период, если бы не установил солнечную батарею.

netMeteringAllowed

boolean

Разрешены ли чистые измерения.

solarPercentage

number

Процент (0–100) электроэнергии, вырабатываемой солнечными батареями. Действительно для первого года, но приблизительно верно и для последующих лет.

percentageExportedToGrid

number

Процент (0-100) произведенной солнечной электроэнергии, который, как мы предположили, был экспортирован в сеть, исходя из данных за первый квартал производства. Это влияет на расчёты, если нет возможности чистого учёта.

ЛизингЭкономия

Стоимость и выгода аренды определенной конфигурации солнечных панелей с определенным потреблением электроэнергии.

JSON-представление
{
  "leasesAllowed": boolean,
  "leasesSupported": boolean,
  "annualLeasingCost": {
    object (Money)
  },
  "savings": {
    object (SavingsOverTime)
  }
}
Поля
leasesAllowed

boolean

Разрешена ли аренда в данной юрисдикции (в некоторых штатах аренда не разрешена). Если это поле имеет значение false, то значения в этом сообщении, вероятно, следует игнорировать.

leasesSupported

boolean

Поддерживает ли система финансовых расчётов аренду в данной юрисдикции? Если это поле имеет значение false, то значения в этом сообщении, вероятно, следует игнорировать. Это не зависит от leasesAllowed : в некоторых регионах аренда разрешена, но при условиях, которые не учитываются финансовыми моделями.

annualLeasingCost

object ( Money )

Предполагаемая годовая стоимость лизинга.

savings

object ( SavingsOverTime )

Сколько сэкономлено (или нет) за весь период жизни.

ЭкономияСверхурочная работа

Финансовая информация, которая используется совместно при использовании различных методов финансирования.

JSON-представление
{
  "savingsYear1": {
    object (Money)
  },
  "savingsYear20": {
    object (Money)
  },
  "presentValueOfSavingsYear20": {
    object (Money)
  },
  "savingsLifetime": {
    object (Money)
  },
  "presentValueOfSavingsLifetime": {
    object (Money)
  },
  "financiallyViable": boolean
}
Поля
savingsYear1

object ( Money )

Экономия в первый год после установки панелей.

savingsYear20

object ( Money )

Экономия в первые двадцать лет после установки панелей.

presentValueOfSavingsYear20

object ( Money )

Используя предполагаемую ставку дисконтирования, какова текущая стоимость совокупной экономии за 20 лет?

savingsLifetime

object ( Money )

Экономия в течение всего срока службы панели.

presentValueOfSavingsLifetime

object ( Money )

Используя предполагаемую ставку дисконтирования, какова текущая стоимость совокупной экономии за всю жизнь?

financiallyViable

boolean

Указывает, является ли данный сценарий финансово жизнеспособным. Значение будет ложным для сценариев с низкой финансовой жизнеспособностью (например, убыточных).

Покупка наличныхЭкономия

Стоимость и выгода от прямой покупки определенной конфигурации солнечных панелей с определенным потреблением электроэнергии.

JSON-представление
{
  "outOfPocketCost": {
    object (Money)
  },
  "upfrontCost": {
    object (Money)
  },
  "rebateValue": {
    object (Money)
  },
  "savings": {
    object (SavingsOverTime)
  },
  "paybackYears": number
}
Поля
outOfPocketCost

object ( Money )

Первоначальная стоимость до вычета налоговых льгот: сумма, которую необходимо выплатить из собственного кармана. Сравните с upfrontCost , которая рассчитывается после вычета налоговых льгот.

upfrontCost

object ( Money )

Первоначальная стоимость после вычета налоговых льгот: это сумма, которую необходимо выплатить в течение первого года. В отличие от outOfPocketCost , которая рассчитывается до вычета налоговых льгот.

rebateValue

object ( Money )

Стоимость всех налоговых вычетов.

savings

object ( SavingsOverTime )

Сколько сэкономлено (или нет) за весь период жизни.

paybackYears

number

Количество лет до окупаемости. Отрицательное значение означает, что окупаемость не наступит в течение всего срока службы.

Финансируемая покупкаЭкономия

Стоимость и выгода от использования кредита для покупки определенной конфигурации солнечных панелей с определенным потреблением электроэнергии.

JSON-представление
{
  "annualLoanPayment": {
    object (Money)
  },
  "rebateValue": {
    object (Money)
  },
  "loanInterestRate": number,
  "savings": {
    object (SavingsOverTime)
  }
}
Поля
annualLoanPayment

object ( Money )

Ежегодные платежи по кредиту.

rebateValue

object ( Money )

Стоимость всех налоговых льгот (включая Федеральный инвестиционный налоговый кредит (ITC)).

loanInterestRate

number

Процентная ставка по кредитам, принятая в данном наборе расчетов.

savings

object ( SavingsOverTime )

Сколько сэкономлено (или нет) за весь период жизни.