Skip to main content

基本使用

用法示例
//二维
const layer=new LGeoJSONLayer().setDataSource(provider).setDrawOptions(style);
layer.addTo(map);
//三维
const layer=new CGeoJSONLayer().setDataSource(provider).setDrawOptions(style);
view.markerLayers.add(layer);
构造函数

这里以二维为例,三维是类似的,具体可以参考API手册

类名 描述
LGeoJSONLayer(options?: ILGeoJSONLayerOptions) 二维矢量数据渲染图层
构建参数
ILGeoJSONLayerOptions
属性
类型
默认值
描述
cacheDrawOptions(可选) boolean true 是否缓存图层样式。如果是每次刷新都要更新样式,请设置为false。
checkFeatureBounds(可选) boolean false 是否对元素进行范围检测。当有大量图形可能处于屏幕外时,建议开启。
clipLine(可选) boolean false 是否开启对线条的框裁剪,当有大量线条可能处于视图外时,可以开启以加速渲染。
collisionDefaultFont(可选) string 16px Arial 用于碰撞检测的字体。
pickType(可选) "none" | "point" | "all" "none" 数据拾取的方式。none为不进行数据拾取
pickBufferSize(可选) { width: number, height: number } {width:10,height:10} 数据拾取的缓冲区大小
delayRendering(可选) boolean false 是否延迟渲染。leaflet默认是同步渲染完之后统一显示到屏幕上。开启后可以让渲染快的图层优先展示出来。
trackDataSource(可选) boolean false 是否监听数据源的更新消息,如果监听则更新后自动触发重绘。
allowPointCollisionDetect(可选) boolean false 是否允许开启点的碰撞检测,默认不允许,此时样式中点的avoidCollision失效(标签的仍然生效)。如果希望点本身也支持碰撞检测,请开启该选项,同时设置样式中的avoidCollision为true。

ILGeoJSONLayerOptions继承自ILCanvasLayerOptions

ILCanvasLayerOptions
属性
类型
默认值
描述
loop(可选) boolean false 是否开启不间断渲染
name(可选) string 图层名称,默认为系统唯一id
mask(可选) string | GeoJSON.GeoJsonObject 掩膜边界。可以是一个GeoJSON的多边形对象集合,也可以是保存这个集合的资源ID
maskType(可选) "polygon" | "polyline" | "all" "polygon" 掩膜类型。
debugShowPerformance(可选) boolean false 是否开启调试模式下的信息显示。如果为false,即使处于调试模式也不会显示相关调试信息。
ignoreRetina(可选) boolean 是否忽视全局的retina配置,retina生效需要全局配置启用,加上这里不设置或者设置为false,加上图层本身支持

ILCanvasLayerOptions继承自leaflet的L.LayerOptions,所以leaflet的L.LayerOptions中原有的参数(例如pane等),LGeoJSONLayer也都支持。

图层方法
方法
参数
返回
描述
setDataSource 数据源dataSource: IFeaturesProvider this 设置数据源
setDrawOptions 绘制样式drawOptions: FeatureStyle | IFeatureStyleOptions | string,
是否部分更新参数partialUpdate: boolean
this 设置渲染参数
setLayerOptions 参数options,
是否部分更新参数partialUpdate: boolean
重新设置图层构造参数,会触发重绘
setVisible 是否可见visible: boolean this 设置图层是否可见
事件
Event Data 描述
LGeoJSONLayer.EventTypes.picked L.LeafletEvent 拾取到矢量元素后触发
LGeoJSONLayer.EventTypes.beforeDraw L.LeafletEvent 绘制前触发
LGeoJSONLayer.EventTypes.afterDraw L.LeafletEvent 绘制后触发