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 可选

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

formatPosition function 可选

可以对加载的坐标进行格式化或转换操作,优先级高于lngColumn、latColumn、altColumn

lngColumn string "lng" 可选

点坐标时,经度值对应的字段名称, 如果数据内有position字段,position的优先级高于lngColumn

latColumn string "lat" 可选

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

altColumn string "alt" 可选

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

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 可选

不显示标题

showNull string false 可选

是否显示空值

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

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

tooltipOptions Tooltip.StyleOptions 可选

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

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

固定的标题名称

titleField string 可选

标题对应的属性字段名称

noTitle string 可选

不显示标题

showNull string false 可选

是否显示空值

contextmenuItems object 可选

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

id string | number mars3d.Util.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集合对象

继承自:

groundPrimitiveCollection : Cesium.PrimitiveCollection

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

继承自:

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

继承自:

splitDirection : Cesium.SplitDirection

卷帘对比时,设置所在的屏幕,NONE时不分屏[仅对Model小模型矢量数据有效]

继承自:

zIndex : number

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

继承自:

方法

activateEdit()GraphicLayer

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

返回值:

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

继承自:

addGraphic(graphic)BaseGraphic|Array.<BaseGraphic>

添加Graphic矢量数据

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

矢量数据 或 对应的构造参数对象(需要有type值)

返回值:

添加后的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前的回调

filter function 可选

数据筛选方法,方法体内返回false时排除数据 filter:function(feature){return true}

返回值:

转换后的Graphic对象数组

继承自:

loadJSON(json)BaseGraphic|Array.<BaseGraphic>

参数方式添加矢量对象, 同addGraphic

参数名称 类型 描述信息
json object | Array.<object>

矢量数据构造参数,可以用toJSON方法导出的值

返回值:

添加后的Graphic对象

继承自:

removeGraphic(graphic, hasDestroy)GraphicLayer

移除Graphic矢量数据

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

矢量数据

hasDestroy boolean true 可选

是否释放矢量对象

返回值:

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

继承自:

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 可选

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

updateDrawPosition 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中层级进行 置顶 (只对同类型图层间+贴地对象 有效)。

返回值:

继承自: