Skip to content

A library to compute the best position to put labels on multiple routes between two points

Notifications You must be signed in to change notification settings

bbecquet/alt-route-labeller

Repository files navigation

alt-route-labeller

A library to compute the best position to put labels on multiple routes between two points.

Example use-cases

Installation

Depending on your package manager:

npm install --save alt-route-labeller

or

yarn add alt-route-labeller

Usage

The lib exposes the getLabelPositions function.

Parameters

  • routes: the multiple routes to apply the labelling to. Can be expressed as a GeoJSON FeatureCollection, an array of Feature objects, or an array of Geometry objects.

Return value

An array of label positions, one for each of the routes, in the same order as they where passed to the function.

Each label position has the following properties:

  • lngLat: the best position of the label on the route, put on a non-ambiguous section not shared with other routes (if one can be found, otherwise fallback on the route middle position).
  • anchor: a hint value to minimize collisions if we want to display labels. Possible values: top|bottom|left|right. Inspired by the anchor property of MapBox-GL-JS markers.

Example

import { getLabelPositions } from 'alt-route-labeller';

const routes = getGeoJSONRoutesFromSomewhere();
const labels = getLabelPositions(routes);
labels.forEach(label => {
  createMarkerOnMap(label.lngLat, { anchor: label.anchor });
});

About

A library to compute the best position to put labels on multiple routes between two points

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published