Skip to content

圆形缓冲区(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图层idstring-
center缓冲区中心点number[]-
radius缓冲区半径,单位千米number10
border-color边框颜色stringblue
border-opacity边框透明度number0.5
border-width边框宽度number5
background-color背景色stringblue
background-opacity背景透明度number0.1
resizer-color缩放器Icon颜色stringblack
center-color中心点Icon颜色stringred
closable是否显示关闭Iconbooleanfalse
countable是否显示半径数值文字,需要加载Mapbox字体文件booleanfalse
resizable是否显示缩放器Iconbooleanfalse
draggable是否可拖拽位置booleanfalse
visible是否显示booleantrue
resizer-radius缩放器Icon圆圈半径number8
center-radius中心点Icon圆圈半径number8
text-fontscountable字体设置string[]['Open Sans Regular']
text-colorcountable字体颜色string#000000
text-sizecountable字体大小number16
formattercountable文字格式化器function(radius) => string
close-size关闭Icon放大倍数number0.7
close-offset关闭Icon偏移number[][70, 0]
close-icon-url自定义关闭Icon URLstring-

EVENTS

名称描述参数
update改变缓冲区时触发事件参数:{center,radius}
close点击关闭操作MapMouseEvent
mouseenter鼠标滑入缓冲区-
mouseleave鼠标滑出缓冲区-

SLOTS

名称描述

METHODS

名称描述定义