jekyll-streetview

August 20, 2026 · View on GitHub

A Jekyll plugin that adds a {% streetview %} Liquid tag for embedding Google Street View static images. No JavaScript required — just a responsive <img> tag powered by the Google Street View Static API.

Installation

Add the gem to your Jekyll site's Gemfile:

gem "jekyll-streetview", "~> 0.1"

Then add it to the plugins list in _config.yml:

plugins:
  - jekyll-streetview

Run bundle install to install the gem.

Configuration

Add a streetview: block to _config.yml with your Google API key:

streetview:
  key: AIzaSy...
  width: 800          # optional default width
  height: 400         # optional default height
  fov: 90             # optional default field of view
  pitch: 0            # optional default pitch

Your Google API key must have the Street View Static API enabled. If you use address strings, it also needs the Geocoding API enabled.

Usage

By latitude and longitude

{% streetview lat=33.248329 lng=-84.263336 %}

By address string

Pass a quoted address string and the plugin geocodes it at build time via the Google Geocoding API. Results are cached in _streetview_cache.json.

{% streetview "100 S Hill Street, Griffin, GA" %}

Commit _streetview_cache.json

Commit _streetview_cache.json to your repo so CI builds don't re-geocode addresses on every run.

Parameters

All parameters are optional and override values in _config.yml.

ParameterDefaultDescription
latLatitude (required if no address string)
lngLongitude (required if no address string)
width800Image width in pixels
height400Image height in pixels
headingautoCamera compass heading (0-360). If omitted, Google points toward the location.
fov90Horizontal field of view in degrees (10-120). Lower = more zoom.
pitch0Camera up/down angle (-90 to 90). Positive = up, negative = down.
radius50Search radius in meters for nearest panorama
sourceSet to outdoor to exclude indoor panoramas
alt"Street View"Alt text for the <img> tag

Examples

{% streetview lat=33.248329 lng=-84.263336 %}

{% streetview "100 S Hill Street, Griffin, GA" heading=180 %}

{% streetview lat=33.248329 lng=-84.263336 fov=60 pitch=10 heading=90 width=1200 height=500 %}

{% streetview "City Hall, Atlanta, GA" source=outdoor alt="Atlanta City Hall" %}

Output

The tag renders a single <img> element:

<img src="https://maps.googleapis.com/maps/api/streetview?location=33.248329%2C-84.263336&size=800x400&fov=90&pitch=0&radius=50&key=..." alt="Street View" width="800" height="400" class="jekyll-streetview" loading="lazy">

Add styles for .jekyll-streetview in your site's CSS:

.jekyll-streetview {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

Note on imagery availability

If Street View imagery is not available at the specified location, Google returns a gray placeholder image. Use a nearby address or adjust radius to find available coverage. You can check coverage in Google Maps Street View before embedding.

GitHub Pages compatibility

This plugin is compatible with Jekyll sites deployed to GitHub Pages when the site is built through a custom GitHub Actions workflow.

It is not compatible with the default GitHub Pages safe-mode build, because custom plugins are not loaded there.

License

MIT License. See LICENSE.txt.