npm install mapbox-gl-controls
<link href="mapbox-gl-controls/theme.css" rel="stylesheet">
import RulerControl from 'mapbox-gl-controls/lib/ruler';
map.addControl(new RulerControl(), 'top-right');
map.on('ruler.on', () => console.log('ruler: on'));
map.on('ruler.off', () => console.log('ruler: off'));
// with miles:
map.addControl(new RulerControl({
units: 'miles',
labelFormat: n => `${n.toFixed(2)} ml`,
}), 'top-right');
import StylesControl from 'mapbox-gl-controls/lib/styles';
// with default styles:
map.addControl(new StylesControl(), 'top-left');
// with custom styles:
map.addControl(new StylesControl({
styles: [
{
label: 'Streets',
styleName: 'Mapbox Streets',
styleUrl: 'mapbox://styles/mapbox/streets-v9',
}, {
label: 'Satellite',
styleName: 'Satellite',
styleUrl: 'mapbox://styles/mapbox/satellite-v9',
},
],
onChange: (style) => console.log(style),
}), 'top-left');
import CompassControl from 'mapbox-gl-controls/lib/compass';
map.addControl(new CompassControl(), 'top-right');
import ZoomControl from 'mapbox-gl-controls/lib/zoom';
map.addControl(new ZoomControl(), 'top-right');
import LanguageControl from 'mapbox-gl-controls/lib/language';
// with browser detect:
map.addControl(new LanguageControl());
// with custom language:
const languageControl = new LanguageControl({
language: 'ru',
});
map.addControl(languageControl);
// change language to multi language after control has been added:
languageControl.setLanguage('mul');
import InspectControl from 'mapbox-gl-controls/lib/inspect';
map.addControl(new InspectControl(), 'bottom-right');
import TooltipControl from 'mapbox-gl-controls/lib/tooltip';
map.addControl(new TooltipControl({ layer: '$fill' }));
Simple compass
options
Object (optional, default{}
)options.instant
Boolean Show compass if bearing is 0 (optional, defaulttrue
)
Inspect control to debug style layers and source
Localize map. Language can be set dynamically with .setLanguage(lang)
method.
options
Object (optional, default{}
)options.supportedLanguages
Array? (Supported languages)[https://docs.mapbox.com/help/troubleshooting/change-language/]options.language
String? One of the supported languages to applyoptions.excludedLayerIds
Array Array of layer id to exclude from localization (optional, default[]
)options.getLanguageField
Function? Accepts language and returns language field By default fields arename_LANGUAGE
andname
for multi language (mul)
Fires map ruler.on
and ruler.off
events at the beginning and at the end of measuring.
options
Object (optional, default{}
)options.units
String Any units @turf/distance supports (optional, default'kilometers'
)options.labelFormat
Function? Accepts number and returns label. Can be used to convert value to any measuring unitsoptions.font
Array Array of fonts. (optional, default['Roboto Medium']
)options.mainColor
String Color of ruler lines. (optional, default'#263238'
)options.secondaryColor
String Color of halo and inner marker background. (optional, default'#fff'
)
Adds style switcher similar to Google Maps.
options
Object (optional, default{}
)
Shows tooltip on hover on some layer or whole map.
options
Object (optional, default{}
)
Simple zoom control