---
title: "MapboxNavigationControl"
description: "导航控件，提供缩放按钮与指北罗盘，position 控制停靠角，options 透传至 mapbox-gl。"
seo_title: "MapboxNavigationControl Component"
seo_description: "MapboxNavigationControl adds mapbox-gl zoom buttons and a compass, with a position prop for docking and options forwarded to the underlying NavigationControl."
canonical_url: "https://mapbox.mhaibaraai.cn/docs/controls/navigation"
---
# MapboxNavigationControl

> 导航控件，提供缩放按钮与指北罗盘，position 控制停靠角，options 透传至 mapbox-gl。

## 简介

`MapboxNavigationControl` 在地图上挂载缩放按钮与指北罗盘。`position` 指定停靠角（省略用地图默认位置），`options` 直通 mapbox-gl 的 `NavigationControl` 构造选项（`showZoom` / `showCompass` / `visualizePitch`）。控件在地图就绪后挂载，组件卸载时自动移除。

## 用法

调整 `position` 切换停靠角：

```vue [NavigationControlExample.vue]
<script setup lang="ts">
import type { ControlPosition } from 'mapbox-gl'

withDefaults(defineProps<{ position?: ControlPosition }>(), {
  position: 'top-right'
})
</script>

<template>
  <div class="h-115 w-full overflow-hidden rounded-(--ui-radius) border border-default">
    <MapboxMap :options="{ style: 'mapbox://styles/mapbox/light-v11', center: [116.39, 39.91], zoom: 10 }">
      <MapboxNavigationControl :position="position" />
    </MapboxMap>
  </div>
</template>
```

## 示例

### 可视化俯仰角

倾斜底图后开启 `visualizePitch`，罗盘随俯仰角倾斜以指示视角：

```vue [NavigationControlPitchExample.vue]
<template>
  <div class="h-115 w-full overflow-hidden rounded-(--ui-radius) border border-default">
    <MapboxMap
      :options="{
        style: 'mapbox://styles/mapbox/streets-v12',
        center: [116.39, 39.91],
        zoom: 11,
        pitch: 55,
        bearing: -25
      }"
    >
      <!-- visualizePitch 让罗盘随俯仰角倾斜，showZoom 保留缩放按钮 -->
      <MapboxNavigationControl
        position="top-right"
        :options="{ visualizePitch: true, showCompass: true, showZoom: true }"
      />
    </MapboxMap>
  </div>
</template>
```

## API

### Props

```ts
/**
 * Props for the MapboxNavigationControl component
 */
interface MapboxNavigationControlProps {
  /**
   * 控件停靠位置；省略用地图默认位置
   */
  position?: mapboxgl.ControlPosition | undefined;
  /**
   * NavigationControl 构造选项
   */
  options?: mapboxgl.NavigationControlOptions | undefined;
}
```

## Changelog

See commit history for [src/runtime/components/controls/NavigationControl.vue](https://github.com/mhaibaraai/movk-mapbox/commits/main/src/runtime/components/controls/NavigationControl.vue).


## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
