经纬志
首页 / MapLibre / API 文档

NavigationControl

先看结论

缩放、指南针与俯仰按钮,地图最基础的交互控件。

最后验证 2026-11-03 · MapLibre GL JS 4.x · 更新 2026-10-27 · 引用本文
new maplibregl.NavigationControl(options) → NavigationControl

构造参数

参数默认说明
showCompasstrue显示指南针,可点击复位或拖动旋转
showZoomtrue显示加号与减号按钮
visualizePitchfalse指南针随俯仰角变化形态,便于感知 3D 视角

添加与移除

var nav = new maplibregl.NavigationControl({
  showCompass: true,
  showZoom: true,
  visualizePitch: true
});

map.addControl(nav, 'top-right');   // 位置参数省略时默认 top-right

/* 需要隐藏按钮时移除控件,而不是用 CSS 去藏 */
map.removeControl(nav);

位置取值

取值说明
top-left适合与自定义品牌控件并排
top-right默认,右侧竖排
bottom-left与比例尺同侧时注意顺序
bottom-right版权信息默认在右下,可能重叠

同一位置添加多个控件时,按添加顺序堆叠。 版权信息默认占右下角,把导航控件放到那里会挤在一起。

与自定义按钮的分工

控件只做视角操作。需要「复位到初始视角」「定位到当前位置」这类按钮, 用自定义控件实现,类名沿用 maplibregl-ctrl maplibregl-ctrl-group, 外观就能与内置按钮一致。

map.addControl(new maplibregl.NavigationControl(), 'top-right');
map.addControl(new maplibregl.ScaleControl({ unit: 'metric' }), 'bottom-left');

不要用 CSS 隐藏控件。隐藏了视觉,按钮仍然占据布局并响应键盘焦点。 不需要的按钮通过构造参数关掉,整个控件不要时用 removeControl。

引用本文

经纬志(2026)。《NavigationControl》。https://www.jingweizhi.com/maplibre/api/navigation-control.html(访问日期 2026-11-03)。