GraphicsLayer

new Cesium.GraphicsLayer(viewer, options)

标绘管理图层
Name Type Description
viewer Viewer
options Object
Name Type Default Description
getGraphic function function optional 添加标绘对象成功后的回调函数。
revokeModel function function optional 撤销添加模型的回调函数。
revokePoint function function optional 撤销添加点,广告牌,文字框的回调函数。
clickGraphic function function optional 点击标绘对象的回调函数。
enableClickGraphic Boolean true optional 是否启用标绘对象的点击事件。
enableRightRevoke Boolean true optional 是否启用右键撤销绘制。
mouseMoveShowAt function function(position, tipDom, tittleDom, arrowDom) optional 重写鼠标移动时的提示函数,position:当前鼠标的屏幕像素坐标, tittleDom:提示内容的dom元素对象, arrowDom:提示左箭头的dom元素对象, tipDom:整个提示框的dom元素对象。
toolTipDom Object optional 重写整个提示框dom对象
enableToolTip Boolean true optional 是否显示提示框
Example:
---------------------------------------------------------------------
//初始化标绘图层
var graphicsLayer = new Cesium.GraphicsLayer(viewer, {
  //添加标绘对象成功后的回调函数
  getGraphic: function(e) {},
  //撤销添加模型的回调函数
  revokeModel: function(e) {},
  //撤销添加点,广告牌,文字框,div,marker的回调函数
  revokePoint: function(e) {},
  //点击标绘对象的回调函数
  clickGraphic: function(e) {},
  //是否启用标绘对象的点击事件
  enableClickGraphic: true,
  //是否启用右键撤销绘制
  enableRightRevoke: true,
  //重写鼠标移动提示事件
  mouseMoveShowAt: function(position, tipDom, tittleDom, arrowDom){
      tittleDom.innerHTML = "你的提示";
      tipDom.style.left = position.x + 10 + 'px';
      tipDom.style.top = position.y - tipDom.clientHeight / 2 + 'px';
  },
  //是否显示提示框
  enableToolTip: true
});
//添加标绘图层到图层管理器中
viewer.scene.layers.appendGraphicsLayer(graphicsLayer);
--------------------------------------------------------------------
//完全重写提示框对象
var graphicsLayer = new Cesium.GraphicsLayer(viewer, {
  //重写鼠标移动提示事件,当toolTipDom存在时,只有两个回调参数
  mouseMoveShowAt: function(position, tipDom){
     //你的提示事件
  },
  toolTipDom: "你的toolTipDom的DOM对象"
});

Members

图层编辑工具

readonly graphicList : HashMap

图形集合,包含该图层内所有图形对象的键值对

Methods

addGraphic(graphic, options)Graphic

添加绘制图形
Name Type Description
graphic Object 不同类型实体参考:参见Graphic.graphicType
options Object 额外参数
Returns:
放回回添加的图形
Example:
var graphicsLayer = new Cesium.GraphicsLayer(viewer);
var graphic = new Cesium.Graphic(type: 'label',style: {color: viewModel.color,text: 'hezihan',font: '50px Helvetica',pixelSize: 20,
                                  pixelOffsetScaleByDistance: false,
                                  horizontalOrigin: Cesium.HorizontalOrigin.right,
                                  fillColor: '#818518',
                                  isScaleByDistance: true, //是否远近缩放
                                  distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 50000)},
                                  name: 'box1',attributes: { key: 'www', map: 4645 },getGraphic: getGraphic);
graphicsLayer.addGraphic(graphic);

addModel(options)

添加模型
Name Type Description
options Object

calculateBoundingSphere()BoundingSphere

计算当前标绘图层的外包围球
Returns:
外包围球。
移除整个图层

exportToJson()String

整个图层导出为json文件
Returns:
json格式的字符串。
跳转到该图层
Name Type Description
options Object 跳转参数,参见Camera#flyToBoundingSphere

getAllGraphic()Array.<Object>

获取图层所有标绘图形
Returns:
返回所有图形对象

getGraphicByGroupName(name)Array.<Object>|Undefined

根据GroupName获取标绘图形对象
Name Type Description
name String 图形ID
Returns:
返回对象组

getGraphicByID(ID)Object|Undefined

根据ID获取标绘图形对象
Name Type Description
ID String 图形ID
Returns:
返回图层对象或者返回false查询失败

getGraphicByIndex(index)Object

根据序号获取标绘图形对象
Name Type Description
index String 图形序号
Returns:
返回图形对象

getGraphicByName(name, type)Array.<Object>|Undefined

根据name获取标绘图形对象
Name Type Description
name String 图形ID
type String 类型,equal、like
Returns:
返回对象组

getIndexByGraphic()Boolean

根据对象获取index
Returns:

getTransformEditor(Graphic, getViewModel)

获取标绘模型编辑器
Name Type Description
Graphic Object 模型对象
getViewModel function 模型编辑器回调函数
Returns:
Object 返回标绘模型编辑器
加载json文件
Name Type Description
json String json格式的字符串。

removeAllGraphic()Boolean

移除图层所有标绘图形
Returns:
移除是否成功

removeGraphicByGroupName(name)

根据GroupName移除一组标绘图形
Name Type Description
name String 组名

removeGraphicByID(id, noRemove)

根据ID移除标绘图形
Name Type Description
id String 图形ID
noRemove Boolean 不使用自带的remove

removeGraphicByIndex(index)

根据序号移除标绘图形
Name Type Description
index String 图形序号

removeLastGraphic()

移除最后一个标绘图形

removePickingGraphic()

移除选中标绘图形

startDrawing(options)

开始绘制图形 (注意:内部会开始地形深度检测功能)
Name Type Description
options Object
Name Type Default Description
type String 'none' optional 绘制类型:参照Graphic.graphicType
isContinued Boolean true optional 是否连续绘制
drawWithHeight Boolean false optional 是否绘制高度,当为true时使用鼠标绘制高度,当为false时使用参数设置的统一高度
style Object optional 图元样式信息 详情参见Style
editPointStyle Object optional 编辑点样式信息 详情参见Style.EditPointStyle
attributes Object optional 图元属性
name String optional 图元名称
show Boolean true optional 图元是否显示
asynchronous Boolean false optional 默认为阻塞式更新,true为异步更新,false为阻塞式更新。
heading Number 0.0 optional 偏航角,弧度。
pitch Number 0.0 optional 俯仰角,弧度。
roll Number 0.0 optional 翻滚角,弧度。
transformX Number 0.0 optional 局部坐标系X方向平移量,单位米,X方向为纬线方向
transformY Number 0.0 optional 局部坐标系Y方向平移量,单位米,Y方向为经线方向
transformZ Number 0.0 optional 局部坐标系Z方向平移量,单位米,Z方向为垂直地表方向
Example:
//初始化标绘图层
var graphicsLayer = new Cesium.GraphicsLayer(viewer, {});
viewer.scene.layers.appendGraphicsLayer(graphicsLayer);
//开始绘制Marker
graphicsLayer.startDrawing({
    type: 'marker',
    style: {
      //文字相对于图片方位
      labelPlaceType: 'topCenter',
      //文字相对于图片间距
      labelPadding: 20,
      //字体
      font: '30px sans-serif',
      //文字内容
      text: '这是Marker',
      //文字颜色
      fillColor: Cesium.Color.RED,
      //billboard图片链接
      image: 'http://webclient.smaryun.com:8200/NoneSpatialData/image/icon.png',
      //离地高度
      offsetHeight: 100
    }
});
-----------------------------------------------------------------------------------
//绘制div
graphicsLayer.startDrawing({
    //类型
    type: 'div',
    //样式
    style: {
       //html字符串或标签对象
       html: "你的html",
       //html相对原始位置的屏幕像素偏移
       pixelOffset: new Cesium.Cartesian2(0, 0),
       //额外抬升高度
       offsetHeight: 0
    },
    //开启时,当对象在模型内部时,会隐藏,开启此功能会有性能损耗
    enableVFC: false,
    //当div对象和主相机的距离超过20000000米时,隐藏div对象
    disappearByDistance: 20000000
});
开始编辑
移除所有鼠标事件,停止绘制
停止编辑