圆形缓冲区(BufferCircleLayer)
支持拖拽改变位置,拖拽改变大小,实时显示半径等功能
TIP
MbBufferCircleLayerV2组件,使用平面像素算法画圆,用以解决4490,4326等坐标系下圆变形问题。 MbBufferCircleLayer组件使用turf.circle画圆,在3857坐标系下,仍可使继续使用。
示例
示例源码
vue
<template>
<div style="height: 400px" class="vw-full vh-full">
<mb-map
:zoom="10"
:center="center"
:glyphs="__RESOURCE_URL__ + 'fonts/{fontstack}/{range}.pbf'"
>
<mb-tianditu-layer />
<mb-buffer-circle-layer
:center="center"
:radius="radius"
border-color="red"
:border-opacity="0.5"
background-color="red"
center-color="red"
resizer-color="blue"
:background-opacity="0.1"
text-color="blue"
:closable="true"
:countable="true"
:draggable="true"
:resizable="true"
/>
</mb-map>
</div>
</template>
<script setup lang="ts">
const center = [116.17381, 39.92155464]
const radius = 10
</script>EPSG:4490坐标系
示例源码
vue
<template>
<div style="height: 400px" class="vw-full vh-full">
<mb-map
crs="EPSG:4490"
:zoom="10"
:center="center"
:glyphs="__RESOURCE_URL__ + 'fonts/{fontstack}/{range}.pbf'"
>
<mb-tianditu-layer />
<mb-buffer-circle-layer
:center="center"
:radius="radius"
border-color="red"
:border-opacity="0.5"
background-color="red"
center-color="red"
resizer-color="blue"
:background-opacity="0.1"
text-color="blue"
:closable="true"
:countable="true"
:draggable="true"
:resizable="true"
/>
<mb-buffer-circle-layer-v2
:center="center"
:radius="radius"
border-color="red"
:border-opacity="0.5"
background-color="red"
center-color="red"
resizer-color="blue"
:background-opacity="0.1"
text-color="blue"
:closable="true"
:countable="true"
:draggable="true"
:resizable="true"
/>
</mb-map>
</div>
</template>
<script setup lang="ts">
const center = [116.17381, 39.92155464]
const radius = 10
</script>API
PROPS
| 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| id | 图层id | string | - |
| center | 缓冲区中心点 | number[] | - |
| radius | 缓冲区半径,单位千米 | number | 10 |
| border-color | 边框颜色 | string | blue |
| border-opacity | 边框透明度 | number | 0.5 |
| border-width | 边框宽度 | number | 5 |
| background-color | 背景色 | string | blue |
| background-opacity | 背景透明度 | number | 0.1 |
| resizer-color | 缩放器Icon颜色 | string | black |
| center-color | 中心点Icon颜色 | string | red |
| closable | 是否显示关闭Icon | boolean | false |
| countable | 是否显示半径数值文字,需要加载Mapbox字体文件 | boolean | false |
| resizable | 是否显示缩放器Icon | boolean | false |
| draggable | 是否可拖拽位置 | boolean | false |
| visible | 是否显示 | boolean | true |
| resizer-radius | 缩放器Icon圆圈半径 | number | 8 |
| center-radius | 中心点Icon圆圈半径 | number | 8 |
| text-fonts | countable字体设置 | string[] | ['Open Sans Regular'] |
| text-color | countable字体颜色 | string | #000000 |
| text-size | countable字体大小 | number | 16 |
| formatter | countable文字格式化器 | function | (radius) => string |
| close-size | 关闭Icon放大倍数 | number | 0.7 |
| close-offset | 关闭Icon偏移 | number[] | [70, 0] |
| close-icon-url | 自定义关闭Icon URL | string | - |
EVENTS
| 名称 | 描述 | 参数 |
|---|---|---|
| update | 改变缓冲区时触发事件 | 参数:{center,radius} |
| close | 点击关闭操作 | MapMouseEvent |
| mouseenter | 鼠标滑入缓冲区 | - |
| mouseleave | 鼠标滑出缓冲区 | - |
SLOTS
| 名称 | 描述 |
|---|
METHODS
| 名称 | 描述 | 定义 |
|---|
