vue2-leaflet-polyline-measure
This is a Vue2Leaflet plugin to provide the
Leaflet.PolylineMeasure control
on Leaflet maps in Vue applications.
Installation
npm install --save vue2-leaflet-polyline-measure
Local demo
git clone git@github.com:mikeu/vue2-leaflet-polyline-measure.git
cd vue2-leaflet-polyline-measure
npm install
npm run example
You should then be able to visit http://localhost:4000 to see a leaflet map with the polyline
measurement tool. Events fired by the tool will be logged beneath the map as you interact with it.
Usage
Adding the component to a map
With the LControlPolylineMeasure
component loaded into Vue (see below), simply add the
l-control-poyline-measure
element inside an l-map
, optionally providing it with an
options
object to specify any of the
Leaflet.PolylineMeasure options
to be set when the control is created, or the
Leaflet Control position
in which to display the control.
For example,
<l-map>
<l-control-polyline-measure :options="{ showUnitControl: true }" position="bottomright"/>
</l-map>
Polyline measurement events
The polyline measurement control fires events from the map to which it has been added. In Vue, these
can be listened for in the standard fashion, by adding event handlers the the LMap
control within
which the LControlPolylineMeasure
is being used:
<l-map
@polylinemeasure:toggle="handleToggle"
@polylinemeasure:start="handleStart"
@polylinemeasure:resume="handleResume"
@polylinemeasure:finish="handleFinish"
@polylinemeasure:clear="handleClear"
@polylinemeasure:add="handleAdd"
@polylinemeasure:insert="handleInsert"
@polylinemeasure:move="handleMove"
@polylinemeasure:remove="handleRemove"
>
<l-control-polyline-measure :options="{ showUnitControl: true }" position="bottomright"/>
</l-map>
Of course, the handleToggle
, handleStart
, etc., methods must be defined within the Vue component
that is calling them.
See the Events section of the
Leaflet.PolylineMeasure documentation for more details about the arguments passed to each event
handler.
Loading the Vue component
You can either install the control globally within your application at the point where you initially
configure Vue, or import the control only within the components that require it.
Option 1: Global install
Where you load and configure your Vue environment,
import Vue from 'vue';
import LControlPolylineMeasure from 'vue2-leaflet-polyline-measure';
Vue.component('l-control-polyline-measure', LControlPolylineMeasure);
Option 2: Local import
In the <script>
of a Vue component,
import LControlPolylineMeasure from 'vue2-leaflet-polyline-measure';
export default {
components: {
LControlPolylineMeasure,
},
};
Credit
The majority of the credit for this plugin goes to the author of and contributors to the underlying
Leaflet.PolylineMeasure control, and of course
the plugin wouldn't be possible without Vue, Leaflet, and Vue2Leaflet.
Plugin author
Michael Underwood
License
This project is licensed under the MIT License - see the LICENSE file for details.