node package manager

leaflet-textpath

Shows a text (or a pattern) along a Polyline

Leaflet.TextPath

Shows a text along a Polyline.

Check out the demo !

The version on the gh-pages branch targets Leaflet 0.7.3.

Please use the leaflet0.8-dev branch to be compatible with the development version of Leaflet (0.8).

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)

    • {orientation: angle} - rotate to a specified angle (e.g. {orientation: 15})
    • {orientation: flip} - filps the text 180deg correction for upside down text placement on west -> east lines
    • {orientation: perpendicular} - places text at right angles to the line.
  • 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

  • Nothing changed yet.
  • Add the orientation option (#27, thanks @kirkau)
  • Allow HTTP and HTTPS to access the demo (#39, thanks @sonny89 and @leplatrem)
  • Fix text centering for vertical lines (#33, #34, #38, thanks @msgoloborodov)

Breaking changes

  • Text is now shown on top by default. Set option below to true to put the text below the layer.
  • Fix bug when removing layer whose text was removed (fixes #18) (thanks Victor Gomes)
  • Fix path width when using options.center (fixes #17) (thanks Brent Miller).
  • Fix layer order (fixes #5) (thanks Albin Larsson)
  • Stay on top after bringToFront
  • Clean-up and fix onAdd and onRemove
  • Fire mouse events from underlying text layer (thanks Lewis Christie)
  • Initial working version

Many thanks to all contributors !