Skip to content

gabriel-russo/Leaflet.BetterFileLayer

 
 

Repository files navigation

Leaflet.BetterFileLayer

Load your spatialized files into Leaflet the way it should be.

npm downloads license GitHub Workflow Status


This is a Leaflet plugin for loading your spatialized data into leaflet based on leaflet-omnivore and Leaflet.FileLayer plugins. This plugin was made looking for a convenient and easy to use plugin for loading external spatial files to leaflet.

It currently supports:

Installation

For Leaflet 2.x

npm install leaflet-better-filelayer

For Leaflet 1.x

npm install leaflet-better-filelayer@1.0.1

Demo

Checkout the Demo

Checkout the Demo with external button

Below gif show an example of loading a separated shapefile using drag and drop.

Note: Internally, the plugin groups .shp, .dbf, .shx and .prj with the same name.

example

Usage

import { BetterFileLayer } from "leaflet-better-filelayer";

const map = new Map('map');

const bfl = new BetterFileLayer();

map.addControl(bfl);

Documentation

For Leaflet 2.x

Go to Wiki page

For Leaflet 1.x

Go to Wiki page

And

Go to 1.0.1 tag

Typescript support

event_types event_types event_types

Custom html button

If you are developing a web application and you want to use your own html button outside the map container, you can use the following code:

// Note: The input have to be type "file"
// Example: <input type="file" accept=".gpx,.kml,.geojson,.json" multiple />
const options = {
  button: document.getElementById('my-button'), // Your input HTML reference
}

const bfl = new BetterFileLayer(options).addTo(map);

After that, the plugin will bind an "on change" event on this button, waiting for files.

You can see the example here

Note: The Drag and Drop event listener will bind it self automatically

Development

Install the development dependencies

npm install --save-dev

Start Vite development mode

npm run dev

Open localhost:3000 in your browser and start editing index.html.

Test

To run unity tests:

npm run test

Linting & Code Style

npm run style && npm run lint

Contributors

License

  • Copyright (c) 2026, Gabriel Russo
  • Copyright (c) 2014, Mapbox
  • Copyright (c) 2012, Michael Bostock
  • Copyright (c) 2012 Makina Corpus

See License for more details

About

The definitive plugin to load your spatialized files into leaflet.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 60.2%
  • HTML 24.3%
  • CSS 13.0%
  • JavaScript 2.5%