Skip to main content

dash-openlayers

OpenLayers mapping components for Plotly Dash. Build maps declaratively in Python, use OpenLayers for rendering and editing, and receive map events and feature data in Dash callbacks.

Install

pip install dash-openlayers

Requires Python 3.10 or newer. Dash is installed as a package dependency.

Quick Example

import dash
from dash import Input, Output, html
import dash_openlayers as dol

app = dash.Dash(__name__)
app.layout = html.Div(
    [
        dol.Map(
            id="map",
            center=[10, 45],
            zoom=5,
            children=[
                dol.TileLayer(id="osm", source="OSM"),
                dol.VectorLayer(
                    id="places",
                    geojson={
                        "type": "FeatureCollection",
                        "features": [
                            {
                                "type": "Feature",
                                "geometry": {"type": "Point", "coordinates": [10, 45]},
                                "properties": {"name": "Sample place"},
                            }
                        ],
                    },
                ),
                dol.SelectInteraction(id="selection", layerId="places"),
                dol.LayerControl(id="layers"),
            ],
            style={"height": "600px"},
        ),
        html.Pre(id="selection-output"),
    ]
)


@app.callback(Output("selection-output", "children"), Input("selection", "selectedGeoJSON"))
def show_selection(selection):
    return str(selection or "Select a feature")


if __name__ == "__main__":
    app.run(debug=True)

Components

  • Maps, synchronized view state, custom Proj4 projections, and click events.
  • OSM/XYZ, GeoJSON vector, WMS, WMTS, MVT vector-tile, and WFS GeoJSON layers.
  • Draw, select, modify, snapping, per-feature topology validation, and undo/redo.
  • GeoJSON/WKT input and GeoJSON/WKT/TopoJSON edit output.
  • Point clustering, decluttering, and layer visibility/opacity/order controls.

WFS-T writes are not performed by WFSLayer; see the guarded example in tests/demos/wfs_demo.py for an application-owned transaction callback.

Documentation

Contributing

See CONTRIBUTING.md for development setup and workflow.

Metadata

Release files for dash-openlayers 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dash-openlayers 0.1.0
File Size Uploaded
dash_openlayers-0.1.0.tar.gz 898.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dash-openlayers 0.1.0
File Interpreter ABI Platform
dash_openlayers-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / dash_openlayers-0.1.0.tar.gz

Download URL dash_openlayers-0.1.0.tar.gz
Size 898.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a57300b91b6bcbe94dd6fad1276fe80b008b47c72d1097135ca4114bbecbf338
BLAKE2b-256 checksum
How to use checksums
9ff3238dfc3c7a2e29bbafdaec3bb0ecd5f05c3c5910a8f6d7865dec1ade4101
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / dash_openlayers-0.1.0-py3-none-any.whl

Download URL dash_openlayers-0.1.0-py3-none-any.whl
Size 919.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
531325092996e6f9f8c4d7a756e33815169b3897943b8432e5ad8ce5c8a63f32
BLAKE2b-256 checksum
How to use checksums
bff6f569499a4737ef6914686aac01ce5dde5632f04dc4859feb9602b5876131
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page