forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
  /**
 | 
						|
   * The 'MaplibreMap' maps various event sources onto MapLibre.
 | 
						|
   *
 | 
						|
   * As it replaces the old 'MinimapObj' onto MapLibre and the existing codebase, this is sometimes a bit awkward
 | 
						|
   */
 | 
						|
  import { onMount } from "svelte"
 | 
						|
  import { Map } from "@onsvisual/svelte-maps"
 | 
						|
  import type { Map as MaplibreMap } from "maplibre-gl"
 | 
						|
  import type {Readable, Writable} from "svelte/store"
 | 
						|
  import { AvailableRasterLayers } from "../../Models/RasterLayers"
 | 
						|
  import {writable} from "svelte/store";
 | 
						|
 | 
						|
  /**
 | 
						|
   * Beware: this map will _only_ be set by this component
 | 
						|
   * It should thus be treated as a 'store' by external parties
 | 
						|
   */
 | 
						|
  export let map: Writable<MaplibreMap>
 | 
						|
 | 
						|
  export let attribution = false
 | 
						|
  export let center: Readable<{ lng: number ,lat : number }> = writable({lng: 0, lat: 0})
 | 
						|
 | 
						|
  onMount(() => {
 | 
						|
    $map.on("load", function () {
 | 
						|
      $map.resize()
 | 
						|
    })
 | 
						|
  })
 | 
						|
  const styleUrl = AvailableRasterLayers.maplibre.properties.url
 | 
						|
</script>
 | 
						|
 | 
						|
<main>
 | 
						|
  <Map
 | 
						|
    bind:center
 | 
						|
    bind:map={$map}
 | 
						|
    {attribution}
 | 
						|
    css="./maplibre-gl.css"
 | 
						|
    id="map"
 | 
						|
    location={{ lng: 0, lat: 0, zoom: 0 }}
 | 
						|
    maxzoom="24"
 | 
						|
    style={styleUrl}
 | 
						|
  />
 | 
						|
</main>
 | 
						|
 | 
						|
<style>
 | 
						|
  main {
 | 
						|
    width: 100%;
 | 
						|
    height: 100%;
 | 
						|
    position: relative;
 | 
						|
  }
 | 
						|
</style>
 |