Method: buildingInsights.findClosest

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

HTTP-запрос

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

URL имеет синтаксис gRPC Transcoding.

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

Параметры
location

object (LatLng)

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

requiredQuality

enum (ImageryQuality)

Необязательное поле. Минимальный уровень качества, допустимый в результатах. Результаты с более низким качеством возвращаться не будут. Если не указать это значение, то будет использоваться только высокое качество.

exactQualityRequired

boolean

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

experiments[]

enum (Experiment)

Необязательное поле. Указывает, какие предварительные эксперименты нужно включить. Запросы, в которых используется это поле, классифицируются как предварительное предложение в соответствии со Специальными условиями использования платформы Google Карт. Подробнее об этапах запуска…

additionalInsights[]

enum (AdditionalInsights)

Необязательное поле. Список объектов additionalInsights, которые будут включены в ответ.

Тело запроса

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

Тело ответа

Ответное сообщение для 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),
  "detectedArrays": {
    object (DetectedArrays)
  }
}
Поля
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)

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

detectedArrays

object (DetectedArrays)

Солнечные панели, обнаруженные на здании. Это поле заполняется, только если в параметре FindClosestBuildingInsightsRequest.additional_insights запроса указано значение DETECTED_ARRAYS.

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

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

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

AdditionalInsights

Дополнительная информация о здании, например геометрия крыши и массивы солнечных панелей, которые могут быть возвращены в BuildingInsights.

Перечисления
ADDITIONAL_INSIGHTS_UNSPECIFIED Значение по умолчанию. Будет возвращен объект BuildingInsights по умолчанию.
DETECTED_ARRAYS

Определяет, будет ли ответ содержать обнаруженные массивы.

Если указано, в ответе будет заполнено поле detectedArrays.

LatLngBox

Граничная рамка в координатах широты и долготы.

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

object (LatLng)

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

ne

object (LatLng)

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

SolarPotential

Информация о потенциале использования солнечной энергии в здании. Некоторые поля в этом файле определяются в терминах "панелей". Поля 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. Это поле заполняется, только если на крыше помещается не менее четырех панелей.

financialAnalyses[]

object (FinancialAnalysis)

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

SizeAndSunshineStats

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

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

number

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

sunshineQuantiles[]

number

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

groundAreaMeters2

number

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

RoofSegmentSizeAndSunshineStats

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

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

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, который соответствует сегменту крыши, на котором размещена эта панель.

SolarPanelOrientation

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

Перечисления
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-й сегмент крыши, включая его размер, ожидаемую выработку и ориентацию.

RoofSegmentSummary

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

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.

FinancialAnalysis

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

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", то одна единица равна одному доллару США.

nanos

integer

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

FinancialDetails

Подробные сведения о финансовом анализе. Некоторые из этих сведений уже хранятся на более высоких уровнях (например, личные расходы). Общие суммы денег указаны за период времени, определенный полем 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) выработки солнечной электроэнергии, которая, по нашим предположениям, была экспортирована в сеть, на основе первого квартала выработки. Это влияет на расчеты, если чистое измерение не разрешено.

LeasingSavings

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

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

boolean

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

leasesSupported

boolean

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

annualLeasingCost

object (Money)

Расчетная годовая стоимость лизинга.

savings

object (SavingsOverTime)

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

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)

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

presentValueOfSavingsYear20

object (Money)

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

savingsLifetime

object (Money)

Экономия за весь срок службы панелей.

presentValueOfSavingsLifetime

object (Money)

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

financiallyViable

boolean

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

CashPurchaseSavings

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

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

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

FinancedPurchaseSavings

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

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

object (Money)

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

rebateValue

object (Money)

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

loanInterestRate

number

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

savings

object (SavingsOverTime)

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

DetectedArrays

Информация о солнечных батареях, обнаруженных на здании.

JSON-представление
{
  "detectionStatus": enum (DetectionStatus),
  "arrays": [
    {
      object (SolarArray)
    }
  ],
  "latestCaptureDate": {
    object (Date)
  }
}
Поля
detectionStatus

enum (DetectionStatus)

Указывает статус обнаружения солнечных батарей для этого здания.

arrays[]

object (SolarArray)

Список солнечных панелей, обнаруженных на здании.

latestCaptureDate

object (Date)

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

DetectionStatus

Указывает статус обнаружения солнечных батарей для этого здания.

Перечисления
DETECTION_STATUS_UNSPECIFIED Статус не указан.
DETECTION_STATUS_DATA_UNAVAILABLE Данные об обнаруженных солнечных батареях для этого здания недоступны.
DETECTION_STATUS_ARRAYS_DETECTED Для этого здания обнаружена по крайней мере одна солнечная батарея.
DETECTION_STATUS_NO_ARRAYS_DETECTED Для этого здания не обнаружены солнечные батареи.

SolarArray

Сведения об одной обнаруженной солнечной батарее.

JSON-представление
{
  "polygonGeojson": {
    object
  }
}
Поля
polygonGeojson

object (Struct format)

Представление GeoJSON области здания, где были обнаружены солнечные панели.

Данные GeoJSON должны быть в формате RFC 7946 и представлять собой многоугольник для одной непрерывной области.

Если в многоугольнике есть отверстия, он будет представлен несколькими контурами.

Пример:

{ "type": "Polygon", "coordinates": [ [ [-1, -1], [-1, 0], [0, 0], [-1, -1] ] ] }