Skip to content

定义

1、具有可自定义弹窗,鼠标点击、鼠标移动时触发 2、可增加同类型的图形 3、可根据 id 删除指定的图形

构造函数

new ShapeLayer(id, symbol)

调用方式 gis.createShapeLayer(id,symbol)

Parameter 入参

名称类型说明示例
idString图层 ID
symbolSymbol图形样式

属性

名称说明类型可选值默认值
graphics所有图形Collection
highlight启用关闭高亮Boolean

方法

add addMany removeAll remove

方法名说明入参
add增加图形[geometry,attrs?,symbol?]
addMany增加多个图形geometryList
update?-
delete根据 id 删除图形图形 id()
clear清空图层-
active-
withMove添加鼠标经过时弹窗(关键字, 标题, DOM)
withClick添加点击时弹窗(关键字, 标题, DOM)

事件列表

事件名称说明回调参数
effect点击图形或经过图形时[类型, graphic, graphics]

Collection

ts
const symbol = gis.createSymbol(2, 'solid', '#f00', '#cfc')
const layer = gis.createShapeLayer('temp', symbol)


//  id 于 geo格式数据同级,可以用来删除图形
layer.add(geo, 'uid')
layer.add({ rings: rings, id: 'v2' })


// 面
const list = [{ rings: [], id: 'uid' }]
// 线
const list = [{ paths: [], id: 'uid' }]
// 点
const list = [{ x: '', y: '', id: 'uid' }]


layer.addMany(list)


layer.delete('uid')

D - 1

ts
var symbol = gis.createSymbol(2, 'cross-cross', '#2e4e7e', '#c93756')
var layer = gis.createShapeLayer('temp', symbol)
data.forEach(function (x) {
  return layer.add(x.geometry, x.txBsm)
})
layer.goTo()

demo

ts
// 面
export const __polygon = (gis, layer) => {
  Array.from([
    'none',
    'solid',
    'backward-diagonal',
    'cross-cross',
    'diagonal-cross',
    'forward-diagonal',
    'horizontal',
    'vertical'
  ]).forEach((item) => {
    let attrs = {
      title: +new Date(),
      key1: 'value2'
    }


let g = layer.add({ rings }, attrs)


g.symbol = gis.createSymbol(2, item, '#f00', '#cfc')


rings[0].forEach((x) => {
      x[0] += 0.016
    })
  })
}