Skip to main content
Ctrl+K

JupyterGIS documentation

  • Overview
  • User guide
  • Contributor guide
  • Changelog
  • GitHub
  • Overview
  • User guide
  • Contributor guide
  • Changelog
  • GitHub

Section Navigation

  • Development setup
  • How-tos
    • Add a command
    • Add a keybinding
    • Add a processing operation
    • Add to the layer gallery
    • Build JupyterGIS documentation locally
    • Check code quality
    • Release JupyterGIS packages
    • Test JupyterGIS
    • UI tests: Debug failures
    • UI tests: Update snapshots
    • Write tutorials
  • Explanation
    • Architecture overview
    • Code generation
    • Form system
    • Security & NPM dependencies
    • UI testing
  • Troubleshooting
  • Contributor guide
  • How-tos
  • Add to the layer gallery

Add to the layer gallery#

Add a new entry to the config file#

First, edit packages/base/layer_gallery.json to add a new entry.

The top level keys are layer provider IDs (shown as tabs at the top of the gallery), and the 2nd level keys are the ids of the layers.

Layers are represented as objects, values of the 2nd-level keys. E.g. OpenStreetmap.Mapnik:

{
  "OpenStreetMap": {
    "Mapnik": {
      "thumbnailPath": "layer_gallery/OpenStreetMap-Mapnik.png",
      "name": "OpenStreetMap.Mapnik",
      "layerType": "RasterLayer",
      "sourceType": "RasterSource",
      "sourceParameters": {
        "url": "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
        "attribution": "(C) OpenStreetMap contributors",
        "maxZoom": 19,
        "minZoom": 0,
        "urlParameters": {}
      },
      "layerParameters": { "opacity": 1 },
      "description": "(C) OpenStreetMap contributors"
    },
    // ...

Follow established conventions in this file, and if it makes sense, start by copying an existing entry.

xyzservices#

xyzservices is used under the hood for thumbnail generation. For simplicity, if your layer exists in xyzservices ensure the provider and layer name match what’s in xyzservices.

If it’s not in xyzservices you may need to edit layer_gallery_generator.py and extend custom_providers following the existing examples in that file.

Add a thumbnail#

Generate#

The packages/base/layer_gallery_generator.py script can automatically generate thumbnails for you.

You’ll first need to configure the packages/base/layer_gallery/thumbnail_config.json. This is arranged similarly to the layer_gallery.json file but exclusively includes thumbnail config. It may be easiest to start by copying an existing thumbnail configuration.

Finally you can execute:

python packages/base/layer_gallery_generator.py

Once this is done, you’ll need to resize the thumbnail(s), as the script outputs in 512x512, but we want 256x256:

mogrify -resize 50% /path/to/thumbnail.png

Don’t forget to optimize! Read on.

Manual#

You have the option to manually create a thumbnail.

Take a screenshot and crop or otherwise resize it to 256x256 pixels and save as a PNG.

Don’t forget to optimize! Read on.

Optimizing#

Whether you generate thumbnails automatically or create them manually, we’ll need to optimize them for filesize before committing.

optipng "/path/to/thumbnail.png"

previous

Add a processing operation

next

Build JupyterGIS documentation locally

On this page
  • Add a new entry to the config file
    • xyzservices
  • Add a thumbnail
    • Generate
    • Manual
    • Optimizing
Show Source

© Copyright 2024, The JupyterGIS Development Team.

Created using Sphinx 9.1.0.

Built with the PyData Sphinx Theme 0.17.0.