Skip to content

多边形缓冲区(BufferPolygonLayer)

支持拖拽改变位置,拖拽改变大小,实时显示面积等功能

示例

示例源码
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-polygon-layer
        :polygon="polygon"
        border-color="red"
        :border-opacity="0.5"
        background-color="red"
        center-color="red"
        resizer-color="blue"
        :background-opacity="0.1"
        :closable="true"
        :countable="true"
        :draggable="true"
        :resizable="true"
      />
    </mb-map>
  </div>
</template>
<script setup lang="ts">
const center = [116.17381, 39.92155464]
const polygon = [
  [116.17381, 39.92155464],
  [116.25105956968257, 40.02398993628292],
  [116.31591012802686, 39.96769599504311],
  [116.3234327392287, 39.892836286211754],
]
</script>

手工模式示例

  • 单击地图画点
  • Esc,Del,Backspace键,删除前一个点
  • 双击或者Enter结束手工模式
  • 手工模式下,polygon数据无效
  • 不支持动态改变manual参数值
示例源码
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-polygon-layer
        :manual="true"
        border-color="red"
        :border-opacity="0.5"
        background-color="red"
        center-color="red"
        resizer-color="blue"
        :background-opacity="0.1"
        :closable="true"
        :countable="true"
        :draggable="true"
        :resizable="true"
      />
    </mb-map>
  </div>
</template>
<script setup lang="ts">
const center = [116.17381, 39.92155464]
</script>

API

PROPS

名称描述类型默认值
id图层idstring-
polygon坐标数组,第一个点需要全等于最后一个点Array<number[]>[]
manual是在地图上手工选点。设置为true时,polygon数据无效booleanfalse
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字体设置array['Open Sans Regular']
text-colorcountable字体颜色string#000000
text-sizecountable字体大小number16
formattercountable文字格式化器function(area) => string
close-size关闭Icon放大倍数number0.7
close-offset关闭Icon偏移number[][65, -20]
close-icon-url自定义关闭Icon URLstring-

EVENTS

名称描述参数
update改变缓冲区时触发事件参数:{polygon}
complete手工模式,缓冲区完成时触发事件参数:{polygon}
close点击关闭操作MapMouseEvent
mouseenter鼠标滑入缓冲区-
mouseleave鼠标滑出缓冲区-

SLOTS

名称描述

METHODS

名称描述定义