GeoJsonLayer

new mars3d.layer.GeoJsonLayer(options)

加载展示 GeoJSON数据 的图层

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

参数对象,包括以下:

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

geojson文件或服务url地址

data object 可选

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

crs string 可选

原始数据的坐标系,如'EPSG:3857'

chinaCRS ChinaCRS 可选

标识数据的国内坐标系(用于自动纠偏或加偏)

format function 可选

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

onCreateGraphic function 可选

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

filter function 可选

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

mask boolean | object 可选

标识是否绘制区域边界的反选遮罩层,也可以传入object配置范围: { xmin: 73.0, xmax: 136.0, ymin: 3.0, ymax: 59.0 }

allowDrillPick boolean | function 可选

是否允许鼠标穿透拾取

toPrimitive boolean 可选

是否将entity类型转为primivate类型渲染(比如数据的point改为pointP展示)

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样式的键值对象。默认与styleOptions合并,可以设置merge:false不合并

merge boolean 可选

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

callback function 可选

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

graphicOptions object 可选

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

simplify object 可选

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

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

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

highQuality boolean true 可选

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

mutate boolean true 可选

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

buildings object 可选

标识当前图层为建筑物白膜类型数据

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

建筑物底部高度(如:0) 属性字段名称(如:{bottomHeight})

cloumn string 1 可选

层数,楼的实际高度 = height*cloumn

height string | number 3.5 可选

层高的 固定层高数值(如:10) 或 属性字段名称(如:{height})

proxy string 可选

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

templateValues object 可选

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

queryParameters object 可选

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

headers object 可选

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

cluster object 可选

聚合参数(Tip:不参与聚合的类型:合并渲染对象、处于标绘或编辑状态的对象):

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

是否开启聚合

pixelRange number 20 可选

多少像素矩形范围内聚合

minimumClusterSize number 2 可选

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

includePoly number true 可选

是否对线面对象进行聚合

image string | function | Globe.getCircleImageOptions 可选

聚合点的图标样式,支持:string时直接传图片; object时定义内置样式; function时传:getImage:function(count) { return image}

style BillboardEntity.StyleOptions | object 可选

聚合点的样式参数

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

图层父级的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

是否允许鼠标穿透拾取

继承自:

clusterEnabled : boolean

是否开启聚合(点数据时) ,如果修改属性请调用setOptions方法

继承自:

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取矢量数据对象

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

矢量数据id

返回值:

矢量数据对象

继承自:

getGraphics(hasPrivate)Array.<BaseGraphic>|Array

获取图层内 所有矢量数据

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

是否取私有的graphic

返回值:

矢量数据数组

继承自:

getGraphicsByAttr(attrValue, attrName)Array.<BaseGraphic>

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

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

属性值

attrName string 'id' 可选

属性键

返回值:

矢量数据对象

继承自:

getGraphicsByIds(ids)Array.<BaseGraphic>

根据 id集合列表 取 矢量数据对象列表

参数名称 类型 描述信息
ids Array.<string> | Array.<number>

矢量数据id列表

返回值:

矢量数据对象列表

继承自:

getGraphicsByStyle(styleName, styleVal)Array.<BaseGraphic>

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

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

style内的字段名称

styleVal string | number | boolean | *

属性值

返回值:

矢量数据对象

继承自:

getGraphicsTree(options)object

获取所有矢量数据的配置信息,通常用于配置 数据列表树

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

参数对象,包括以下:

参数名称 类型 描述信息
filter function 可选

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

forEach function 可选

递归调用对象配置信息,可以对导出的对象数据进行格式化或转换键值操作

autoGroup function | string 可选

自动分组处理方法(string时指定属性进行分组,比如传 autoGroup:"type"),注意:如果图层内有group对象时,该参数无效。

返回值:

返回值包括 { list: [id与pid关联的原始数组], tree: [按children组织好的上下级树数组]}

继承自:

getMaxHeight()number

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

返回值:

高度

继承自:

getNoClusterGraphics(options)Array

获取当前图层未聚合的grpahic对象列表

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

参数

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

是否判断是否在屏幕内,默认不计算判断,可以按需开启

返回值:

未聚合的grpahic对象列表

继承自:

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)GeoJsonLayer

加载新数据 或 刷新数据

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

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

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

geojson文件或服务url地址

data object 可选

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

类参数 object 可选

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

返回值:

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

loadGeoJSON(geojson, options)Array.<BaseGraphic>

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

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

GeoJSON格式规范数据

options object 可选

加载控制参数,包含:

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

是否清除图层已有数据

flyTo boolean false 可选

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

type GraphicType | string 可选

转为指定的类型

toPrimitive boolean 可选

是否将entity类型转为primivate类型渲染(比如数据的point改为pointP展示,同类型大于10条时自动改为合并渲染类型展示)

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对象数组

继承自:

async loadJSON(json, options)Promise.<(Array.<BaseGraphic>|*)>

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

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

矢量数据构造参数,可以用toJSON方法导出的值; 传string时对应的值存放的json路径地址。

options object 可选

加载控制参数,包含:

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

是否清除图层已有数据

flyTo boolean false 可选

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

toPrimitive boolean 可选

是否将entity类型转为primivate类型渲染(比如数据的point改为pointP展示,同类型大于10条时自动改为合并渲染类型展示)

onEachFeature function 可选

创建每个Graphic前的回调

返回值:

绘制创建完成的Promise 添加后的Graphic对象

继承自:

removeGraphic(graphic, hasDestroy)GraphicLayer

移除Graphic矢量数据

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

矢量数据

hasDestroy boolean true 可选

是否释放矢量对象

返回值:

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

继承自:

setOpacity(value)void

设置整体透明度(globalAlpha值) , 非全部矢量数据都支持,具体需要对应Graphic支持才有效 对象本身透明度请修改 graphic.setStyle({ opacity: value })

参数名称 类型 描述信息
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 可选

不导出高度值

noStyle boolean 可选

不导出style样式,后期使用时在图层配置symbol

standard boolean 可选

不导出options等mars3d属性,仅导出坐标和attr属性的标准简洁GeoJSON

stopEdit boolean false 可选

是否停止绘制或编辑

返回值:

GeoJSON格式规范对象

继承自:

toTop()void

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

返回值:

继承自:

定义的类型

mars3d.layer.GeoJsonLayer.EventType

当前类支持的EventType事件类型

属性:
属性名称 类型 描述信息
load string

完成加载,执行所有内部处理后

add string

添加对象

remove string

移除对象

show string

显示了对象

hide string

隐藏了对象

click string

左键单击 鼠标事件

rightClick string

右键单击 鼠标事件

mouseOver string

鼠标移入 鼠标事件

mouseOut string

鼠标移出 鼠标事件

popupOpen string

popup弹窗打开后

popupClose string

popup弹窗关闭

tooltipOpen string

tooltip弹窗打开后

tooltipClose string

tooltip弹窗关闭

contextMenuOpen string

右键菜单 打开后

contextMenuClose string

右键菜单 关闭

contextMenuClick string

右键菜单 单击某一项后

drawStart string

开始绘制 标绘事件

drawMouseMove string

正在移动鼠标中,绘制过程中鼠标移动了点 标绘事件

drawAddPoint string

绘制过程中增加了点 标绘事件

drawRemovePoint string

绘制过程中删除了最后一个点 标绘事件

drawCreated string

创建完成 标绘事件

editStart string

开始编辑 标绘事件

editMouseDown string

移动鼠标按下左键(LEFT_DOWN)标绘事件

editMouseMove string

正在移动鼠标中,正在编辑拖拽修改点中(MOUSE_MOVE) 标绘事件

editMovePoint string

编辑修改了点(LEFT_UP)标绘事件

editRemovePoint string

编辑删除了点 标绘事件

editStyle string

图上编辑修改了相关style属性 标绘事件

editStop string

停止编辑 标绘事件

使用示例:
//绑定监听事件
layer.on(mars3d.EventType.load, function (event) {
  console.log('矢量数据对象加载完成', event)
})
参考: