Layer Slayer - It started simple, now it's a GIS solution
A static, server-less map viewer that stacks base maps and overlays from many kinds of map service and draws routes over them. For anyone who needs to combine layers no single viewer handles: a WMS next to a PMTiles archive next to a live OpenStreetMap query.
It runs at https://shagen.me/LayerSlayer, built with SolidJS and MapLibre GL JS. Nothing runs on a server; layers, routes, settings and imported files stay in the browser.
Features
- Many source kinds — each read the way it describes itself, then drawn with the MapLibre source that fits, rather than flattened to raster tiles by a proxy.
- Service library — about 150 ready-made services and files, by region and category, with search.
- Layer control — order, visibility, opacity, zoom range, colour, line style, labels, raster colour adjustments, and icons from about 7,900 symbols.
- OSM queries — build a layer of OpenStreetMap features in an area, from a preset list or typed tags.
- Routing — draw routes along roads (OSRM) or straight, with waypoints, undo/redo and GPX import and export.
- Spot details — right-click anywhere for what OpenStreetMap knows there, in plain words.
- 3D terrain — hillshaded relief from open worldwide elevation tiles.
- Focus area — a polygon that limits requests and dims the map around it, with precaching for later.
- Stays in the browser — tiles kept per layer, everything survives a restart, and a
whole setup travels as one
.lslayproject file. - Light and dark — follows the browser, or switch by hand.
Supported sources
| Source | Drawn as |
|---|---|
| WMS 1.1.1 / 1.3.0 | Raster tiles, one GetMap per tile |
| WMTS 1.0.0 | Raster tiles from a Web Mercator matrix set |
| ArcGIS MapServer | XYZ tiles, or export images per tile |
| ArcGIS FeatureServer | Vector tiles, queried per tile |
| WFS 2.0 / 1.1 | Vector tiles, a GetFeature per tile |
| OGC API – Features | Vector tiles, a bbox items request per tile |
| Vector tiles (MVT) | One layer per tile layer |
| PMTiles | Vector or raster tiles read from the archive |
| XYZ template | Raster tiles |
| GeoJSON | GeoJSON source |
| OSM query | GeoJSON from Postpass or Overpass |
| GPX / KML / KMZ | Tracks and placemarks as GeoJSON |
| MapLibre style | The style's own sources and layers |
| Cloud Optimized GeoTIFF | Raster tiles cut from the file |
| GeoPDF | The map area as an image placed by its corners |
Web Mercator only: a service that offers no Web Mercator is listed with the reason, never reprojected.
The CORS proxy
A WebGL map can only draw images from servers that send CORS headers. Most public services
do; some do not, and work only in viewers that draw tiles as plain <img> (Leaflet,
OpenLayers). For those, Settings takes the address of a CORS proxy you run, with {url}
where the target goes. Only the hosts you choose go through it. No proxy is built in.