# GraphicsLayer

#### new Cesium.GraphicsLayer(viewer, options)
MapGIS/GraphicsLayer.js 83

标绘管理图层

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 editTool : EditTool
MapGIS/GraphicsLayer.js 139

图层编辑工具

#### readonly graphicList : HashMap
MapGIS/GraphicsLayer.js 128

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

### Methods

#### addGraphic(graphic, options) → Graphic
MapGIS/GraphicsLayer.js 289

添加绘制图形

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)
MapGIS/GraphicsLayer.js 506

添加模型

Name | Type | Description
--- | --- | ---
`options` | Object |

#### calculateBoundingSphere() → BoundingSphere
MapGIS/GraphicsLayer.js 1353

计算当前标绘图层的外包围球

##### Returns:

外包围球。

#### destroy()
MapGIS/GraphicsLayer.js 1442

移除整个图层

#### exportToJson() → String
MapGIS/GraphicsLayer.js 1335

整个图层导出为json文件

##### Returns:

json格式的字符串。

#### flyTo(options)
MapGIS/GraphicsLayer.js 1379

跳转到该图层

Name | Type | Description
--- | --- | ---
`options` | Object | 跳转参数，参见`Camera#flyToBoundingSphere`

#### getAllGraphic() → Array.<Object>
MapGIS/GraphicsLayer.js 1210

获取图层所有标绘图形

##### Returns:

返回所有图形对象

#### getGraphicByGroupName(name) → Array.<Object>|Undefined
MapGIS/GraphicsLayer.js 1167

根据GroupName获取标绘图形对象

Name | Type | Description
--- | --- | ---
`name` | String | 图形ID

##### Returns:

返回对象组

#### getGraphicByID(ID) → Object|Undefined
MapGIS/GraphicsLayer.js 1113

根据ID获取标绘图形对象

Name | Type | Description
--- | --- | ---
`ID` | String | 图形ID

##### Returns:

返回图层对象或者返回false查询失败

#### getGraphicByIndex(index) → Object
MapGIS/GraphicsLayer.js 1185

根据序号获取标绘图形对象

Name | Type | Description
--- | --- | ---
`index` | String | 图形序号

##### Returns:

返回图形对象

#### getGraphicByName(name, type) → Array.<Object>|Undefined
MapGIS/GraphicsLayer.js 1135

根据name获取标绘图形对象

Name | Type | Description
--- | --- | ---
`name` | String | 图形ID
`type` | String | 类型，equal、like

##### Returns:

返回对象组

#### getIndexByGraphic() → Boolean
MapGIS/GraphicsLayer.js 1194

根据对象获取index

##### Returns:

#### getTransformEditor(Graphic, getViewModel)
MapGIS/GraphicsLayer.js 1220

获取标绘模型编辑器

Name | Type | Description
--- | --- | ---
`Graphic` | Object | 模型对象
`getViewModel` | function | 模型编辑器回调函数

##### Returns:

Object 返回标绘模型编辑器

#### loadJson(json)
MapGIS/GraphicsLayer.js 1388

加载json文件

Name | Type | Description
--- | --- | ---
`json` | String | json格式的字符串。

#### removeAllGraphic() → Boolean
MapGIS/GraphicsLayer.js 1306

移除图层所有标绘图形

##### Returns:

移除是否成功

#### removeGraphicByGroupName(name)
MapGIS/GraphicsLayer.js 1245

根据GroupName移除一组标绘图形

Name | Type | Description
--- | --- | ---
`name` | String | 组名

#### removeGraphicByID(id, noRemove)
MapGIS/GraphicsLayer.js 1231

根据ID移除标绘图形

Name | Type | Description
--- | --- | ---
`id` | String | 图形ID
`noRemove` | Boolean | 不使用自带的remove

#### removeGraphicByIndex(index)
MapGIS/GraphicsLayer.js 1269

根据序号移除标绘图形

Name | Type | Description
--- | --- | ---
`index` | String | 图形序号

#### removeLastGraphic()
MapGIS/GraphicsLayer.js 1289

移除最后一个标绘图形

#### removePickingGraphic()
MapGIS/GraphicsLayer.js 1297

移除选中标绘图形

#### startDrawing(options)
MapGIS/GraphicsLayer.js 216

开始绘制图形 (注意：内部会开始地形深度检测功能)

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
    });

#### startEdit()
MapGIS/GraphicsLayer.js 1094

开始编辑

#### stopDrawing()
MapGIS/GraphicsLayer.js 1022

移除所有鼠标事件，停止绘制

#### stopEdit()
MapGIS/GraphicsLayer.js 1101

停止编辑