BusineDataLayer

new mars3d.layer.BusineDataLayer(options)

业务数据(通过API接口获取)图层, 主要是为了封装后简化使用,或直接配置到config.json,也可以自行构造Graphic矢量对象加到GraphicLayer。

样式信息:通过symbol配置graphic类型和样式
坐标信息:建议接口返回中有规范的坐标字段lat\lng\alt或用formatPosition方法自定义解析

参数名称 类型 描述信息
options object 可选

参数对象,包括以下:

参数名称 类型 默认值 描述信息
url string 可选

geojson文件或服务url地址

data object 可选

geojson格式规范数据对象,与url二选一即可。

dataColumn string 可选

接口返回数据中,对应的业务数据数组所在的读取字段名称,支持多级(用.分割);如果数据直接返回数组时可以不配置。

formatData function 可选

可以对加载的数据进行格式化或转换操作

lngColumn string "lng" 可选

点坐标时,经度值对应的字段名称

latColumn string "lat" 可选

点坐标时,纬度值对应的字段名称

altColumn string "alt" 可选

点坐标时,高度值对应的字段名称

formatPosition function 可选

可以对加载的坐标进行格式化或转换操作

onCreateGraphic function 可选

解析geojson后,外部自定义方法来创建Graphic对象

allowDrillPick boolean | function 可选

是否允许鼠标穿透拾取

opacity number 1.0 可选

透明度(部分图层),取值范围:0.0-1.0

zIndex number 可选

控制图层的叠加层次(部分图层),默认按加载的顺序进行叠加,但也可以自定义叠加顺序,数字大的在上面。

symbol object | function 可选

矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)

参数名称 类型 描述信息
type GraphicType | string 可选

标识数据类型,默认是根据数据生成 point、polyline、polygon

styleOptions object

Style样式,每种不同类型数据都有不同的样式,具体见各GraphicType矢量数据的style参数。

styleField string 可选

按 styleField 属性设置不同样式。

styleFieldOptions object 可选

按styleField值与对应style样式的键值对象。

merge boolean 可选

是否合并并覆盖json中已有的style,默认不合并。

callback function 可选

自定义判断处理返回style ,示例:callback: function (attr, styleOpt){ return { color: "#ff0000" }; }

graphicOptions object 可选

默认的graphic的构造参数,每种不同类型数据都有不同的属性,具体见各GraphicType矢量数据的构造参数。

clustering object 可选

设置聚合相关参数(仅对Label、Point、Billboard 3种对象有效):

参数名称 类型 默认值 描述信息
enabled boolean false 可选

是否开启聚合

pixelRange number 20 可选

多少像素矩形范围内聚合

minimumClusterSize number 2 可选

可以聚集的屏幕空间对象的最小数量

clampToGround boolean true 可选

是否贴地

style BillboardEntity.StyleOptions | PointEntity.StyleOptions | object 可选

聚合点的样式参数

radius number 26 可选

内置样式时,圆形图标的半径大小(单位:像素)

fontColor string '#ffffff' 可选

内置样式时,数字的颜色

color string 'rgba(181, 226, 140, 0.6)' 可选

内置样式时,圆形图标的背景颜色

opacity number 0.5 可选

内置样式时,圆形图标的透明度

borderWidth number 5 可选

圆形图标的边框宽度(单位:像素),0不显示

borderColor string 'rgba(110, 204, 57, 0.5)' 可选

内置样式时,圆形图标的边框颜色

borderOpacity number 0.6 可选

内置样式时,圆形图标边框的透明度

getImage function 可选

自定义聚合的图标样式,例如:getImage:function(count) { return image}

proxy string 可选

加载资源时要使用的代理服务url。

templateValues object 可选

一个对象,用于替换Url中的模板值的键/值对

queryParameters object 可选

一个对象,其中包含在检索资源时将发送的查询参数。比如:queryParameters: {'access_token': '123-435-456-000'}

headers object 可选

一个对象,将发送的其他HTTP标头。比如:headers: { 'X-My-Header': 'valueOfHeader' }

popup string | Array.<Globe.getTemplateHtml_template> | function 可选

绑定的popup弹窗值,也可以bindPopup方法绑定,支持:'all'、数组、字符串模板

popupOptions Popup.StyleOptions 可选

popup弹窗时的配置参数,也支持如pointerEvents等Popup构造参数,还包括:

参数名称 类型 描述信息
title string 可选

固定的标题名称

titleField string 可选

标题对应的属性字段名称

noTitle string 可选

不显示标题

tooltip string | Array.<Globe.getTemplateHtml_template> | function | object 可选

绑定的tooltip弹窗值,也可以bindTooltip方法绑定,参数与popup属性完全相同。

tooltipOptions Tooltip.StyleOptions 可选

tooltip弹窗时的配置参数,也支持如pointerEvents等Tooltip构造参数,还包括:

参数名称 类型 描述信息
title string 可选

固定的标题名称

titleField string 可选

标题对应的属性字段名称

noTitle string 可选

不显示标题

contextmenuItems object 可选

绑定的右键菜单值,也可以bindContextMenu方法绑定

id string | number createGuid() 可选

图层id标识

pid string | number -1 可选

图层父级的id,一般图层管理中使用

name string '' 可选

图层名称

show boolean true 可选

图层是否显示

eventParent BaseClass | boolean 可选

指定的事件冒泡对象,默认为map对象,false时不冒泡

center object 可选

图层自定义定位视角 Map#setCameraView

参数名称 类型 描述信息
lng number

经度值, 180 - 180

lat number

纬度值, -90 - 90

alt number 可选

高度值

heading number 可选

方向角度值,绕垂直于地心的轴旋转角度, 0至360

pitch number 可选

俯仰角度值,绕纬度线旋转角度, -90至90

roll number 可选

翻滚角度值,绕经度线旋转角度, -90至90

extent object 可选

图层自定义定位的矩形区域,与center二选一即可。 Map#flyToExtent

参数名称 类型 默认值 描述信息
xmin number

最小经度值, -180 至 180

xmax number

最大经度值, -180 至 180

ymin number

最小纬度值, -90 至 90

ymax number

最大纬度值, -90 至 90

height number 0 可选

矩形高度值

flyTo boolean 可选

加载完成数据后是否自动飞行定位到数据所在的区域。

flyToOptions object 可选

加载完成数据后是否自动飞行定位到数据所在的区域的对应 BaseLayer#flyTo方法参数。

参考:
  • 支持的事件类型

继承

成员(属性)

allowDrillPick : boolean|function

是否允许鼠标穿透拾取

继承自:

clustering : boolean

是否聚合(点数据时)

继承自:

readonly container : HTMLDivElement

当加载 DivGraphic 数据的内部DOM容器 DivGraphic

继承自:

readonly dataSource : Cesium.CustomDataSource

当加载Entity类型数据的内部Cesium容器 BaseEntity

继承自:

readonly graphics : Array.<BaseGraphic>|Array

图层内的Graphic集合对象

继承自:

hasEdit : boolean

是否自动激活编辑(true时,单击后自动激活编辑)

继承自:

readonly hasZIndex : boolean

是否可以调整图层顺序(在同类型图层间)

继承自:

isAutoEditing : boolean

完成标绘时是否自动启动编辑(需要hasEdit:true时)

继承自:

isContinued : boolean

是否连续标绘

继承自:

readonly isDrawing : boolean

是否正在编辑状态

继承自:

readonly isEditing : boolean

是否正在编辑状态

继承自:

readonly length : number

图层内的Graphic矢量数据个数

继承自:

readonly objectsToExclude : Array.<object>|undefined

获取当前图层中所有对象,用于贴模型分析时,排除的不进行贴模型计算的模型对象

继承自:

pointerEvents : boolean

当加载 DivGraphic 数据的DIV是否可以鼠标交互,为false时可以穿透操作及缩放地图,但无法进行鼠标交互及触发相关事件。

继承自:

primitiveCollection : Cesium.PrimitiveCollection

当加载普通 primitive类型数据的内部Cesium容器 BasePrimitive

继承自:

zIndex : number

图层顺序,数字大的在上面。
只对 同类型(Entity/Primitive) + 贴地(clampToGround: true) 矢量对象间有效

继承自:

方法

activateEdit()GraphicLayer

激活编辑,绑定相关处理,同 hasEdit=true

返回值:

当前对象本身,可以链式调用

继承自:

addGraphic(graphic)BaseGraphic|Array.<BaseGraphic>

添加Graphic矢量数据

参数名称 类型 描述信息
graphic BaseGraphic | Array.<BaseGraphic> | *

矢量数据

返回值:

添加后的Graphic对象

继承自:

autoSurfaceHeight(options)Promise.<(BaseGraphic|*)>

异步计算更新坐标进行贴地(或贴模型)

参数名称 类型 默认值 描述信息
options object {} 可选

参数对象:

参数名称 类型 默认值 描述信息
has3dtiles boolean auto 可选

是否在3dtiles模型上分析(模型分析较慢,按需开启),默认内部根据点的位置自动判断(但可能不准)

objectsToExclude Array.<object> 可选

贴模型分析时,排除的不进行贴模型计算的模型对象,可以是: primitives, entities, 或 3D Tiles features

exact boolean false 可选

是否进行精确计算, 传false时是否快速概略计算方式,该方式计算精度较低,但计算速度快,仅能计算在当前视域内坐标的高度

endItem function

每计算完成1个graphic高度后 的回调方法

end function

异步计算高度完成所有graphic后 的回调方法

返回值:

绘制创建完成的Promise

继承自:

clear(hasDestroy)void

清除图层内所有矢量数据

参数名称 类型 默认值 描述信息
hasDestroy boolean true 可选

是否释放矢量对象

返回值:

继承自:

clearDrawing()boolean

清除正在绘制的对象

返回值:

是否清除了对象

继承自:

disableEdit()GraphicLayer

释放编辑,解除绑定相关事件,同 hasEdit=false

返回值:

当前对象本身,可以链式调用

继承自:

eachGraphic(method, context, reverse)GraphicLayer

遍历所有矢量数据并将其作为参数传递给回调函数

参数名称 类型 描述信息
method function

回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

reverse boolean 可选

是否倒序执行

返回值:

当前对象本身,可以链式调用。

继承自:

endDraw()boolean

完成绘制和编辑,如有未完成的绘制会自动完成。 在移动端需要调用此方法来类似PC端双击结束。

返回值:

是否正常结束了矢量对象绘制

继承自:

getClusterList()Array

获取当前图层聚合点列表

返回值:

聚合点列表

继承自:

getGraphicByAttr(attrValue, attrName)BaseGraphic|*

根据 指定属性 获取 单个矢量数据对象(多个匹配时取首个)

参数名称 类型 默认值 描述信息
attrValue string | number

属性值

attrName string 'id' 可选

属性键

返回值:

矢量数据对象

继承自:

getGraphicById(id)BaseGraphic|*

根据id或uuid取矢量数据对象

参数名称 类型 描述信息
id string | number

矢量数据id或uuid

返回值:

矢量数据对象

继承自:

getGraphics(hasPrivate)Array.<BaseGraphic>|Array

获取图层内 所有矢量数据

参数名称 类型 默认值 描述信息
hasPrivate boolean false 可选

是否取私有的graphic

返回值:

矢量数据数组

继承自:

getGraphicsByAttr(attrValue, attrName)Array.<BaseGraphic>

根据 指定属性 获取 矢量数据对象 数组

参数名称 类型 默认值 描述信息
attrValue string | number

属性值

attrName string 'id' 可选

属性键

返回值:

矢量数据对象

继承自:

getGraphicsByStyle(styleName, styleVal)Array.<BaseGraphic>

根据 指定style样式 获取 矢量数据对象 数组

参数名称 类型 描述信息
styleName string

style内的字段名称

styleVal string | number | boolean | *

属性值

返回值:

矢量数据对象

继承自:

getMaxHeight()number

获取图层内所有数据的 最大高度

返回值:

高度

继承自:

getRectangle(isFormat)Cesium.Rectangle|object

获取图层内所有数据的 矩形边界值

参数名称 类型 默认值 描述信息
isFormat boolean false 可选

是否格式化,格式化时示例: { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }

返回值:

isFormat:true时,返回格式化对象,isFormat:false时返回Cesium.Rectangle对象

继承自:

load(newOptions)BusineDataLayer

加载新数据 或 刷新数据

参数名称 类型 描述信息
newOptions object 可选

新设定的参数,会与类的构造参数合并。

参数名称 类型 描述信息
url string 可选

API接口url地址

data object 可选

API接口对应的数据对象,与url二选一即可。

类参数 object 可选

包含当前类支持的所有参数

返回值:

当前对象本身,可以链式调用

loadGeoJSON(geojson, options)Array.<BaseGraphic>

加载转换GeoJSON格式规范数据为Graphic后加载到图层中。

参数名称 类型 描述信息
geojson string | object

GeoJSON格式规范数据

options object 可选

加载控制参数,包含:

参数名称 类型 默认值 描述信息
clear boolean false 可选

是否清除图层已有数据

flyTo boolean false 可选

是否加载完成后进行飞行到数据区域

type GraphicType | string 可选

转为指定的类型

style object 可选

可以设置指定style样式,每种不同类型数据都有不同的样式,具体见各矢量数据的style参数。GraphicType // * @param {boolean} [options.style.merge] 是否合并并覆盖json中已有的style,默认不合并,仅适用style配置。

crs string 可选

原始数据的坐标系,如'EPSG:3857' (可以从 http://epsg.io查询)

simplify object 可选

是否简化坐标点位,为空时不简化

参数名称 类型 默认值 描述信息
tolerance number 0.0001 可选

简化的程度,传值是经纬度的小数位

highQuality boolean true 可选

是否花更多的时间用不同的算法创建更高质量的简化

mutate boolean true 可选

是否允许对输入进行变异(如果为true,则显著提高性能)

onEachFeature function 可选

创建每个Graphic前的回调

返回值:

转换后的Graphic对象数组

继承自:

removeGraphic(graphic, hasDestroy)GraphicLayer

移除Graphic矢量数据

参数名称 类型 默认值 描述信息
graphic BaseGraphic | *

矢量数据

hasDestroy boolean false 可选

是否释放矢量对象

返回值:

当前对象本身,可以链式调用

继承自:

setOpacity(value)void

设置透明度 , 非全部矢量数据都支持,具体需要对应Graphic支持才有效

参数名称 类型 描述信息
value number

透明度

返回值:

继承自:

startDraw(options)Promise.<(BaseGraphic|*)>

开始绘制矢量数据,绘制的数据会加载在当前图层。

参数名称 类型 描述信息
options object | *

绘制参数,包含:

参数名称 类型 默认值 描述信息
type GraphicType | string

类型

style object 可选

矢量数据样式,具体参考支持 GraphicType查询对应type的类

attr object 可选

矢量数据的 属性信息,可以任意附加属性。

success function 可选

绘制创建完成的回调方法,同drawCreated事件,例如: success: function (graphic){ } //以下为Entity支持的构造参数

name string 可选

矢量数据名称

minPointNum number 可选

线面数据时限定的最小坐标个数

maxPointNum number 可选

线面数据时限定的最大坐标个数

validDrawPosition function 可选

外部自定义校验坐标,比如判断限定在指定区域内绘制。

drawShow boolean true 可选

绘制时,是否自动隐藏entity,可避免拾取坐标存在问题。

addHeight number 可选

在绘制时,在绘制点的基础上增加的高度值

availability Cesium.TimeIntervalCollection | Cesium.TimeInterval | Array | object 可选

指定时间范围内显示该对象

description Cesium.Property | string 可选

指定此实体的HTML描述的字符串属性(infoBox中展示)。

返回值:

绘制创建完成的Promise,等价于success参数

继承自:
使用示例:
//写法一,使用Promise
    graphicLayer.startDraw({
      type: "point",
      style: { pixelSize: 12, color: "#3388ff" },
    })
    .then(function (graphic) {
      console.log("绘制矢量对象完成", graphic);
    });

    //写法二,使用success回调方法参数
    graphicLayer.startDraw({
      type: "point",
      style: { pixelSize: 12, color: "#3388ff" },
      success: function (graphic){
        console.log("绘制矢量对象完成", graphic);
      }
    })

    //写法三,在图层全局监听完成事件
    graphicLayer.on(mars3d.EventType.drawCreated, function (e) {
      console.log("绘制矢量对象完成", e);
    });
    graphicLayer.startDraw({
      type: "point",
      style: { pixelSize: 12, color: "#3388ff" }
    })

startEditing(graphic, event)GraphicLayer

激活编辑指定的矢量数据

参数名称 类型 描述信息
graphic BaseGraphic | *

需要激活编辑的矢量数据

event object 可选

内部使用,传递事件

返回值:

当前对象本身,可以链式调用

继承自:

stopDraw()boolean

停止绘制。 线面对象:未完成的绘制会自动删除,已绘制的会完成在最后一个点位; 点状对象:会结束停留在最后一个点位,未完成的绘制会自动删除 如果需要清除正在绘制的对象,请用 clearDrawing() 方法

返回值:

是否清除了未完成的对象

继承自:

stopEditing()GraphicLayer

停止编辑,释放正在编辑的对象。

返回值:

当前对象本身,可以链式调用

继承自:

toBottom()void

将当前图层在map中层级进行 置底 (只对同类型图层间+贴地对象 有效)。

返回值:

继承自:

toGeoJSON(options)object

将图层数据导出为GeoJSON格式规范对象。

参数名称 类型 描述信息
options object 可选

参数对象:

参数名称 类型 默认值 描述信息
noAlt boolean 可选

不导出高度值

stopEdit boolean false 可选

是否停止绘制或编辑

返回值:

GeoJSON格式规范对象

继承自:

toTop()void

将当前图层在map中层级进行 置顶 (只对同类型图层间+贴地对象 有效)。

返回值:

继承自: