JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 89
  • Score
    100M100P100Q65071F
  • License MIT

This is a svelte component to add measure control plugin to maplibre.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@watergis/svelte-maplibre-measure) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    svelte-maplibre-measure

    GitHub npm npm npm bundle size (scoped)

    This is a svelte component to add measure control for maplibre-gl

    Install

    npm i @watergis/svelte-maplibre-measure

    or

    yarn add @watergis/svelte-maplibre-measure

    vite configuration

    Add following settings in your vite.config.ts

    import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'
    
    const config: UserConfig = {
        optimizeDeps: {
            esbuildOptions: {
                // Node.js global to browser globalThis
                define: {
                    global: 'globalThis'
                },
                // Enable esbuild polyfill plugins
                plugins: [
                    NodeGlobalsPolyfillPlugin({
                        buffer: true
                    })
                ]
            }
        }
    };

    Usage

    See Example.

    <script lang="ts">
    import { MeasurePanel, type MeasureOption} from '$lib';
    
    // create maplibre.Map object
    let map = new Map();
    
    // set URL for your terrain RGB
    let terrainRgbUrl = 'https://narwassco.github.io/narok-terrain/tiles/{z}/{x}/{y}.png'
    
    // set Options
    let measureOption: MeasureOption = {
        tileSize: 512,
        font: ['Roboto Medium'],
        fontSize: 12,
        fontHalo: 1,
        mainColor: '#263238',
        haloColor: '#fff',
    };
    </script>
    
    <!-- You can skip terrainRgbUrl if you don't have terrain RGB data -->
    <MeasurePanel bind:map={$map} bind:measureOption bind:terrainRgbUrl />

    create-svelte

    Everything you need to build a Svelte project, powered by create-svelte.

    Creating a project

    If you're seeing this, you've probably already done this step. Congrats!

    # create a new project in the current directory
    npm create svelte@latest
    
    # create a new project in my-app
    npm create svelte@latest my-app

    Developing

    Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:

    npm run dev
    
    # or start the server and open the app in a new browser tab
    npm run dev -- --open

    Building

    To create a production version of your app:

    npm run build

    You can preview the production build with npm run preview.

    To deploy your app, you may need to install an adapter for your target environment.