Shows a text along a Polyline.
Check out the demo !
install it via your favorite package manager:
npm i leaflet-textpath
The version on the github page (demo) currently targets Leaflet 1.3.1
.
For example, show path orientation on mouse over :
var layer = L.polyLine(...);
layer.on('mouseover', function () {
this.setText(' ► ', {repeat: true, attributes: {fill: 'red'}});
});
layer.on('mouseout', function () {
this.setText(null);
});
With a GeoJSON containing lines, it becomes:
L.geoJson(data, {
onEachFeature: function (feature, layer) {
layer.setText(feature.properties.label);
}
}).addTo(map);
repeat
Specifies if the text should be repeated along the polyline (Default: false
)
center
Centers the text according to the polyline's bounding box (Default: false
)
below
Show text below the path (Default: false)
offset
Set an offset to position text relative to the polyline (Default: 0)
orientation
Rotate text. (Default: 0)
attributes
Object containing the attributes applied to the text
tag. Check valid attributes here (Default: {}
)
The main idea comes from Tom Mac Wright's Getting serious about SVG
Many thanks to all contributors !