标绘管理图层
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
viewer |
Viewer | |||||||||||||||||||||||||||||||||||||||||
options |
Object |
|
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
图层编辑工具
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);
添加模型
Name | Type | Description |
---|---|---|
options |
Object |
calculateBoundingSphere() → BoundingSphere
计算当前标绘图层的外包围球
Returns:
外包围球。
移除整个图层
整个图层导出为json文件
Returns:
json格式的字符串。
跳转到该图层
Name | Type | Description |
---|---|---|
options |
Object |
跳转参数,参见Camera#flyToBoundingSphere |
获取图层所有标绘图形
Returns:
返回所有图形对象
根据GroupName获取标绘图形对象
Name | Type | Description |
---|---|---|
name |
String | 图形ID |
Returns:
返回对象组
根据ID获取标绘图形对象
Name | Type | Description |
---|---|---|
ID |
String | 图形ID |
Returns:
返回图层对象或者返回false查询失败
根据序号获取标绘图形对象
Name | Type | Description |
---|---|---|
index |
String | 图形序号 |
Returns:
返回图形对象
根据name获取标绘图形对象
Name | Type | Description |
---|---|---|
name |
String | 图形ID |
type |
String | 类型,equal、like |
Returns:
返回对象组
根据对象获取index
Returns:
获取标绘模型编辑器
Name | Type | Description |
---|---|---|
Graphic |
Object | 模型对象 |
getViewModel |
function | 模型编辑器回调函数 |
Returns:
Object 返回标绘模型编辑器
加载json文件
Name | Type | Description |
---|---|---|
json |
String | json格式的字符串。 |
移除图层所有标绘图形
Returns:
移除是否成功
根据GroupName移除一组标绘图形
Name | Type | Description |
---|---|---|
name |
String | 组名 |
根据ID移除标绘图形
Name | Type | Description |
---|---|---|
id |
String | 图形ID |
noRemove |
Boolean | 不使用自带的remove |
根据序号移除标绘图形
Name | Type | Description |
---|---|---|
index |
String | 图形序号 |
移除最后一个标绘图形
移除选中标绘图形
开始绘制图形 (注意:内部会开始地形深度检测功能)
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
|
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
});
开始编辑
移除所有鼠标事件,停止绘制
停止编辑