Socket
Socket
Sign inDemoInstall

@nora-soderlund/google-maps-solar-api

Package Overview
Dependencies
1
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @nora-soderlund/google-maps-solar-api

A TypeScript implementation of Google Maps Solar API endpoints.


Version published
Weekly downloads
328
increased by12.71%
Maintainers
1
Install size
207 kB
Created
Weekly downloads
 

Readme

Source

google-maps-solar-api

This is a TypeScript package for calling the new Solar API endpoints, including full types for all query inputs and body responses.

Get started

npm install @nora-soderlund/google-maps-solar-api

Getting building insights from a coordinate

import { findClosestBuildingInsights } from "@nora-soderlund/google-maps-solar-api";

const buildingInsights = await findClosestBuildingInsights("API_KEY", {
  location: {
    latitude: 57.70936,
    longitude: 11.97345
  }
});

Getting data layers from a coordinate

import { getDataLayers } from "@nora-soderlund/google-maps-solar-api";

const dataLayers = await getDataLayers("API_KEY", {
  location: coordinate,
  radiusMeters: 100,
  view: "IMAGERY_AND_ANNUAL_FLUX_LAYERS"
});

Using a proxy URL instead of API key

You can use your own Solar API proxy to implement this package in your clients and apply rate limiting or session authentication on your end.

Simply pass a URL object instead of a string in replacement of the API key. Only the host will be used, the protocol must be HTTPS.

import { findClosestBuildingInsights } from "@nora-soderlund/google-maps-solar-api";

const proxyUrl = new URL("https://my-solar-api-proxy.com");

const buildingInsights = await findClosestBuildingInsights(proxyUrl, {
  location: {
    latitude: 57.70936,
    longitude: 11.97345
  }
});

Subsequent request will be sent to e.g. https://my-solar-api-proxy.com/v1/buildingInsights:findClosest?....

Implementation examples

See my developer blog article for an example of using the Solar API data layers with a dynamic Google Maps instance:

https://nora-soderlund.com/articles/integrating-the-new-solar-api-in-google-maps

Another example of visualizing potential solar panel placements in dynamic maps:

https://nora-soderlund.com/articles/visualizing-potential-solar-panel-placements-in-google-maps

References

Building Insights

findClosestBuildingInsights
findClosestBuildingInsights(apiKeyOrProxyUrl: string | URL, query: FindClosestBuildingInsightsParameters): Promise<BuildingInsights>

Returns a BuildingInsights object or throws a generic Error if the request failed.

See buildingInsights.findClosest on the Solar API reference.


Data Layers

getDataLayers
getDataLayers(apiKeyOrProxyUrl: string | URL, query: GetDataLayersParameters): Promise<DataLayers>

Returns a DataLayers object or throws a generic Error if the request failed.

See dataLayers.get on the Solar API reference.


getGeoTiff(apiKeyOrProxyUrl: string | URL, url: string): Promise<ArrayBuffer>

Returns a raw ArrayBuffer object of the GeoTIFF file or throws a generic Error if the request failed.

See geoTiff.get on the Solar API reference.


Helpers

getDataLayersForBounds
getDataLayersForBounds(bounds: LatLngBox, pixelSizeMeters: number, paddingMeters: number = 0): DataLayerBounds

Used for getting a connected area coverage. Does not perform any asynchronous requests. Returns a DataLayerBounds object.


DataLayerBounds
dataLayerView: DataLayerView;

The highest supported data layer view, for radius meters over 175m, the DataLayerView in the request must not include monthly flux or hourly shade.

tiles
tiles: LatLng[];

The tiles that make up the generated bounds, use with radiusMetersPerTile

radiusMetersPerTile
radiusMetersPerTile: number;

The radius in meters for each tile.

bounds
bounds: LatLngBox;

The generated bounds for the new tiles.

horizontalTiles
horizontalTiles: number;
verticalTiles
verticalTiles: number;

The horizontal and vertical tiles count.

FAQs

Last updated on 24 Dec 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc