Skip to content

EASYMOUNTAIN/Leaflet.GeojsonLayerSwitcher

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
December 19, 2018 10:00
January 30, 2023 08:54
src
January 30, 2023 08:54
December 19, 2018 10:00
December 19, 2018 10:00
December 19, 2018 10:00
January 30, 2023 08:56
December 19, 2018 10:00
December 19, 2018 10:00
January 30, 2023 08:56
January 30, 2023 08:56

Leaflet.GeojsonLayerSwitcher NPM version Build Status

This plugin is intended to be used for Polyline selection. Navigates between layers and switches the selection state.

Installation

npm

$ npm install --save leaflet-geojson-layer-switcher

browser

  • Download or clone this github project
  • Include dist/Leaflet.GeojsonLayerSwitcher.min.js and dist/Leaflet.GeojsonLayerSwitcher.min.css in your project

compile

  • Download or clone this github project
  • Run npm i in the project folder
  • Run npm run build

Demo

demo picture

Usage

es6 include

import L from 'leaflet';
import leafletGeojsonLayerSwitcher from 'leaflet-geojson-layer-switcher';
leafletGeojsonLayerSwitcher(L);

Don't forget to link the CSS file.

non-es6 include

<link rel="stylesheet" href="Leaflet.GeojsonLayerSwitcher.min.css" />
<script src="Leaflet.GeojsonLayerSwitcher.min.js"></script>
require('js/Leaflet.GeojsonLayerSwitcher.js').default(L);

Interaction

const map = L.map('map', {
    center: [45.1834782, 5.7831946],
    zoom: 13
});

L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);

const geojson = {
	type: "FeatureCollection",
	features: [
		{
			type: "Feature",
			properties: {
				enabled: true
			},
			geometry: {
				type: "LineString",
				coordinates: [[5.0,45.0],[5.1,45.1],[5.0,45.2]]
			}
		},
		{
			type: "Feature",
			properties: {
				enabled: false
			},
			geometry: {
				type: "LineString",
				coordinates: [[6.0,46.0],[6.1,46.1],[6.0,46.2]]
			}
		},
		{
			type: "Feature",
			properties: {},
			geometry: {
				type: "LineString",
				coordinates: [[7.0,47.0],[7.1,47.1],[7.0,47.2]]
			}
		}
	]
};

const handler = L.geoJSONLayerSwitcher(map, {
	propertyStateSelected: 'enabled'
});

handler.enable();
handler.addData(geojson);

// USER INTERACTS WITH PLUGIN

const selectedLayersArray = handler.getSelection();
handler.disable();

//Do whatever you want with your layers.

API

Factory L.geoJSONLayerSwitcher(<Map> map, <Object> options?)

Options

  • propertyStateSelected <String> : The feature's property name containing a boolean defining wether the layer is selected. If feature does not have this property, it will be initialized to false. Default property is 'selected'.
  • style <Object> : Customize style applied to polylines which are not selected. Default is dashed and red.
  • styleSelected <Object> : Customize style applied to selected polylines. Default is dashed and green.
  • completeButton <Boolean> : Add a complete button in the popup. When clicked, it will trigger a layerSwitcher.complete map event container the selected layers
  • popupAnchor <Array> : Allows you to change Leaflet.Dialog anchor. Defaults to [10, 60].
  • position <String> : Allows you to change Leaflet.Dialog position. Defaults to topright.

Note : style and styleSelected support PolylineDecorator. Just provide the patterns key any configuration needed from PolylineDecorator.

License

MIT © Easy-Mountain

About

Allows to navigate between GeoJSON layers, select some, and return selection.

Resources

License

Stars

Watchers

Forks

Packages

No packages published