Svelte Maplibre

Raster Source

This map shows how to use raster sources on the map. Data from UK-AIR.

Pollution layer
<script lang="ts">
  import MapLibre from 'svelte-maplibre/MapLibre.svelte';
  import RasterTileSource from 'svelte-maplibre/RasterTileSource.svelte';
  import RasterLayer from 'svelte-maplibre/RasterLayer.svelte';
  import { mapClasses } from '../styles.js';
  import code from './+page.svelte?raw';
  import CodeSample from '$site/CodeSample.svelte';
  import LineLayer from 'svelte-maplibre/LineLayer.svelte';

  let pollutant = $state('PM25_viridis');
  let url = $derived(
    `https://ukair.maps.rcdo.co.uk/ukairserver/services/aq_amb_2021/${pollutant}/MapServer/WMSServer?bbox={bbox-epsg-3857}&request=GetMap&version=1.3.0&format=image%2Fpng&crs=EPSG%3A3857&width=256&height=256&styles=&layers=20`
  );
</script>

<p>
  This map shows how to use raster sources on the map. Data from <a
    href="https://uk-air.defra.gov.uk/data/wms-services"
    target="_blank">UK-AIR</a
  >.
</p>

<fieldset class="flex gap-x-4">
  <legend>Pollution layer</legend>
  <label><input type="radio" bind:group={pollutant} value="PM25_viridis" /> PM2.5</label>
  <label><input type="radio" bind:group={pollutant} value="PM10_viridis" /> PM10</label>
  <label><input type="radio" bind:group={pollutant} value="NOx_viridis" /> NO2</label>
</fieldset>

<MapLibre
  style="https://basemaps.cartocdn.com/gl/positron-gl-style/style.json"
  class={mapClasses}
  standardControls
  bounds={[-5.96, 49.89, 2.31, 55.94]}
>
  <RasterTileSource tiles={[url]} tileSize={256}>
    <RasterLayer
      paint={{
        'raster-opacity': 0.5,
      }}
    />
  </RasterTileSource>
</MapLibre>

Back to Examples

Github