---
title: "<ScriptMapLibreAttributionControl>"
description: "移动或重新设置地图的署名样式。可用它更改署名位置、强制使用紧凑模式，或添加您自己的鸣谢信息。"
canonical_url: "https://nuxt-scripts.zhcndoc.com/scripts/maplibre/api/attribution-control"
last_updated: "2026-09-23T10:33:14.036Z"
---

移动或重新设置地图的署名样式。可用它更改署名位置、强制使用紧凑模式，或添加您自己的鸣谢信息。

```vue
<template>
  <ScriptMapLibreMap map-style="https://tiles.openfreemap.org/styles/liberty" :center="[147.33, -42.88]">
    <ScriptMapLibreAttributionControl
      position="bottom-left"
      :options="{ compact: false, customAttribution: 'Data: Hobart City Council' }"
    />
  </ScriptMapLibreMap>
</template>
```

::callout{color="amber"}
大多数瓦片提供商都要求标注署名。OpenFreeMap 和 OpenStreetMap 要求标注署名。每个显示其瓦片的地图上都应保留署名控件。
::

## 默认署名控件的工作方式

MapLibre 默认会为每个地图添加署名控件。两个控件会导致署名显示两次。此组件会避免这种情况：

- 组件挂载时，会移除地图的署名控件并添加自己的控件。
- 组件卸载时，会重新添加地图的控件。如果您的代码先移除了组件的控件，也会重新添加地图的控件。

当不存在其他署名控件时，地图只会显示一次署名。卸载组件不会移除默认署名。

如果您在地图的 `options` 中设置了 `attributionControl: false`，地图就没有可恢复的控件。此时组件会添加自己的控件，卸载时则会将其移除。

此组件只会替换 `<ScriptMapLibreMap>`{lang="html"} 添加的控件。如果您的代码使用 `map.addControl()`{lang="ts"} 添加了署名控件，该控件会保留在地图上。

每个地图使用一个 `<ScriptMapLibreAttributionControl>`{lang="html"}。组件卸载时，地图控件会恢复到默认位置，即右下角。

## 署名文本

控件始终会显示样式源中的署名，例如 OpenFreeMap 和 OpenStreetMap。`options` 无法将其移除。

组件的 `options` 会覆盖地图署名控件的选项。未指定的选项会保留地图的原有值。

如果您省略 `options.customAttribution`，地图控件中的鸣谢信息会保留，包括 MapLibre 默认的“MapLibre”链接。如果您设置了该选项，您的值将替换这些鸣谢信息。

`new maplibregl.AttributionControl()`{lang="ts"} 创建控件时只会读取一次 `options` 和 `position`。若要应用更改，请更改组件的 `key`。

::script-types{script-key="maplibre" filter="ScriptMapLibreAttributionControl"}
::

## Sitemap

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