rc-leaflet-drawing v1.0.4
React Map Drawing Component based on rc-leaflet
History Versions
Docs
Features
TypeScriptsupportsupported Component Modes:
Controlled Mode,Uncontrolled Modesupported Operation Modes:
None(default),Draw,Drag,Edit,Removesupported Drawing Shapes:
Marker(default),Circle,Line,Polygon,RectangleCutMode
Data Structure
Lang:enum Lang { en = 'en', de = 'de', it = 'it', ru = 'ru', ro = 'ro', es = 'es', fr = 'fr', nl = 'nl' }Translation:type TranslationTooltips = Partial<{ placeMarker: string firstVertex: string continueLine: string finishLine: string finishPoly: string finishRect: string startCircle: string finishCircle: string }> type TranslationActions = Partial<{ finish: string cancel: string removeLastVertex: string }> type TranslationButtonTitles = Partial<{ drawMarkerButton: string drawPolyButton: string drawLineButton: string drawCircleButton: string drawRectButton: string editButton: string dragButton: string cutButton: string deleteButton: string }> type Translation = Partial<{ tooltips: TranslationTooltips actions: TranslationActions buttonTitles: TranslationButtonTitles }>Mode:enum Mode { None = 'None', Draw = 'Draw', Drag = 'Drag', Edit = 'Edit', Remove = 'Remove' }Shape:enum Shape { Marker = 'Marker', Circle = 'Circle', Line = 'Line', Polygon = 'Polygon', Rectangle = 'Rectangle' }DrawOptions:type FinishOn = 'click' | 'dblclick' | 'mousedown' | 'mouseover' | 'mouseout' | 'contextmenu' | null type DrawOptions = Partial<{ snappable: boolean snapDistance: number snapMiddle: boolean tooltips: boolean allowSelfIntersection: boolean templineStyle: L.PathOptions hintlineStyle: L.PathOptions cursorMarker: boolean finishOn: FinishOn markerStyle: L.MarkerOptions pathOptions: L.PathOptions }>EditOptions:type EditOptions = Partial<{ draggable: boolean snappable: boolean snapDistance: number allowSelfIntersection: boolean preventMarkerRemoval: boolean hintlineStyle: L.PathOptions }>
Usage
Install
npm install rc-leaflet-drawing --saveExample
import React, { Component } from 'react'
import { RCMap } from 'rc-leaflet'
import Drawing, { Mode, Shape } from 'rc-leaflet-drawing'
class App extends Component {
state = {
layers: []
}
render () {
return (
<RCMap>
{/* Uncontrolled Mode */}
<Drawing Mode={Mode.Draw} shape={Shape.Marker} onDrawLayer onLayerChange onRemoveLayer />
{/* Controlled Mode, layers prop is passed */}
<Drawing Mode={Mode.Draw} shape={Shape.Marker} layers={this.state.layers} onDrawLayer onLayerChange onRemoveLayer />
</RCMap>
)
}
}Props
lang
type: Lang
required:
falsedefault:
Lang.enlanguage setting group of
DrawingComponent.
translation
type: Translation
required:
falselanguage settings used to override settings of
lang.
mode
type: Mode
required:
falsedefault:
Mode.Nonemode of
DrawingComponent.
shape
type: Shape
required:
falsedefault:
Shape.Markershape of
Drawmode.
drawOptions
type: DrawOptions
required:
falseoptions of
Drawmode.
editOptions
type: EditOptions
required:
falseoptions of
Editmode.
layers
type:
Array<L.Layer>required:
falselayers to display, if passed, controlled mode is enabled.
points
type:
Array<L.Marker>required:
falsepoints to display, if passed, controlled mode is enabled.
circles
type:
Array<L.Circle>required:
falsecircles to display, if passed, controlled mode is enabled.
polylines
type:
Array<L.Polyline>required:
falsepolylines to display, if passed, controlled mode is enabled.
polygons
type:
Array<L.Polygon>required:
falsepolygons to display, if passed, controlled mode is enabled.
rectangles
type:
Array<L.Rectangle>required:
falserectangles to display, if passed, controlled mode is enabled.
onDrawLayer
type:
(layer: L.Layer, layers: L.Layer[]): voidrequired:
falsefired when any type of layer is drawn during
Drawmode.
onDrawPoint
type:
(point: L.Marker, points: L.Marker[]): voidrequired:
falsefired when a point is drawn during
Drawmode.
onDrawCircle
type:
(circle: L.Circle, circles: L.Circle[]): voidrequired:
falsefired when a circle is drawn during
Drawmode.
onDrawPolyline
type:
(polyline: L.Polyline, polylines: L.Polyline[]): voidrequired:
falsefired when a polyline is drawn during
Drawmode.
onDrawPolygon
type:
(polygon: L.Polygon, polygons: L.Polygon[]): voidrequired:
falsefired when a polygon is drawn during
Drawmode.
onDrawRectangle
type:
(rectangle: L.Rectangle, rectangles: L.Rectangle[]): voidrequired:
falsefired when a rectangle is drawn during
Drawmode.
onLayerChange
type:
(layer: L.Layer, index: number, layers: L.Layer[]): voidrequired:
falsefired when any type of layer is changed during
DragorEditmode.
onPointChange
type:
(point: L.Marker, index: number, points: L.Marker[]): voidrequired:
falsefired when a point is changed during
DragorEditmode.
onCircleChange
type:
(circle: L.Circle, index: number, circles: L.Circle[]): voidrequired:
falsefired when a circle is changed during
DragorEditmode.
onPolylineChange
type:
(polyline: L.Polyline, index: number, polylines: L.Polyline[]): voidrequired:
falsefired when a polyline is changed during
DragorEditmode.
onPolygonChanges
type:
(polygon: L.Polygon, index: number, polygons: L.Polygon[]): voidrequired:
falsefired when a polygon is changed during
DragorEditmode.
onRectangleChange
type:
(rectangle: L.Rectangle, index: number, rectangles: L.Rectangle[]): voidrequired:
falsefired when a rectangle is changed during
DragorEditmode.
onRemoveLayer
type:
(layer: L.Layer, index: number, layers: L.Layer[]): voidrequired:
falsefired when any type of layer is removed during
Removemode.
onRemovePoint
type:
(point: L.Marker, index: number, points: L.Marker[]): voidrequired:
falsefired when a point is removed during
Removemode.
onRemoveCircle
type:
(circle: L.Circle, index: number, circles: L.Circle[]): voidrequired:
falsefired when a circle is removed during
Removemode.
onRemovePolyline
type:
(polyline: L.Polyline, index: number, polylines: L.Polyline[]): voidrequired:
falsefired when a polyline is removed during
Removemode.
onRemovePolygon
type:
(polygon: L.Polygon, index: number, polygons: L.Polygon[]): voidrequired:
falsefired when a polygon is removed during
Removemode.
onRemoveRectangle
type:
(rectangle: L.Rectangle, index: number, rectangles: L.Rectangle[]): voidrequired:
falsefired when a rectangle is removed during
Removemode.