ConservationMetrics / mapgl-tile-renderer

Headless Node.js Maplibre-GL renderer for generating MBTiles with styled raster tiles.
MIT License
6 stars 3 forks source link

Add an optional OSM vector overlay for satellite imagery sources #36

Closed rudokemper closed 4 months ago

rudokemper commented 4 months ago

Feature Request

For satellite imagery styles such as mapbox-satellite, planet, bing, and esri, it could be helpful to add some OSM vector data (such as point of interest labels, admin boundaries, hydrology) on top of the imagery for context. The easiest way to do this would be to download OSM data intersecting with the bounds provided as GeoJSON, and to provide a minimal style that works (e.g. will look good) with most satellite imagery sources. We could use Mapbox satellite-streets style as an example of how to do this right.

To extract OSM data within chosen bounds, we could use the Overpass API, and a library like osmtogeojson to convert the data from Overpass into GeoJSON.

The parameter to use this feature for a tile rendering job can be a boolean called openstreetmap (or a different name).

User Stories & Acceptance Criteria

As a user, I can provide a openstreetmap: true parameter (e.g. via the CLI, Github template, Azure Storage Queue). The tool will then render tiles that overlay styled OSM vector data on top of my chosen satellite imagery style.

Implementation Plan

(may be added later, before work begins)

Open to suggestions, but as a first attempt at this, we can first consume all OSM data layers wholesale to ensure the flow will work. We probably don't need all of the OSM data, and so a follow-on PR can then filter to get the layers that will actually be worthwhile to layer on top of imagery (e.g. as satellite-street does).