1. LayerManager
1.1. 初始化 new LayerManager(geomap)
图层管理类,用于图层分组,点、线、面、模型、地形、影像、GeoJson、WFS、Shapefile、KML、HTML2CANVAS、CLUSTER等类型图层的创建、获取和删除等操作。
Param | Type | Description |
---|---|---|
geomap | GeoMap | GeoMap对象 |
Example
var geomap = new BOSGeo.GeoMap('container', {
requestRenderMode: true //是否实时渲染
});
var layerManager = geomap.layerManager;
1.2. 方法
1.2.1. layerManager.createLayer(layerType, name, options)
创建图层
Returns : Layer -
返回创建的图层对象
Param | Type | Default | Description |
---|---|---|---|
layerType | LayerType |
图层类型; |
|
name | String |
图层名称; |
|
options | Object |
其他配置: |
|
[options.customGroupId] | String |
自定义分组的ID值; |
|
[options.initialShow] | Boolean |
true |
创建时图层是否可见。 |
[options.force] | Boolean |
false |
是否强制添加,如果强制会添加到图层列表的根目录 |
[options.order] | Number |
new Date().getTime() |
用于标识图层添加顺序的时间,时间越新越排后 |
Example
//Example1.创建模型图层,并将该图层添加到图层组id为model1的图层组中
let modelLayer = layerManager.createLayer(BOSGeo.LayerType.MODEL, '建筑BIM',{customGroupId:'model1'});
//Example2.创建影像图层,并将该图层添加到图层列表的根目录中
let imageryLayer = layerManager.createLayer(BOSGeo.LayerType.IMAGERY, '谷歌影像-20210505',{force: true});
1.2.2. layerManager.createGroup(group, parentGroupId) ⇒ Object
创建图层分组
Returns : Object
-
返回新建的分组对象
Param | Type | Description |
---|---|---|
group | Object |
分组数据 |
group.title | String |
分组名称, 默认为未命名分组 |
group.id | String |
分组id 不能为空 |
group.children | Array |
分组的子节点数据 |
parentGroupId | String |
把新建的组放在哪个组下, 如果为空则放到第一级下 |
Example
let customGroup = {title: "zz年", id: 'zzYear', children: [{title: '1月', id: '1Month'}, {title: 'zz月', id: 'zzMonth'}]}
let group = layerManager.createGroup(customGroup, parentGroupId)
1.2.3. layerManager.getLayer(layerType, name)
根据图层类型与名称获取对应的图层
Param | Type | Description |
---|---|---|
layerType | layerType |
图层类型 |
name | String |
图层名称 |
Example
var modelLayer = layerManager.getLayer(BOSGeo.LayerType.MODEL, 'testModelLayer');
1.2.4. layerManager.getLayerGroup(layerType)
获取某种类型的所有图层
Returns : Object
-
以图层名称与图层对象构成的键值对对象
Param | Type | Description |
---|---|---|
layerType | LayerType | 图层类型 |
Example
var modelLayers = layerManager.getLayerGroup(BOSGeo.LayerType.MODEL)
1.2.5. layerManager.getLayerTree([exceptDefaultGroup]) ⇒ Object
获取图层树
Kind : instance method of LayerManager
Returns : Object
-
返回图层树对象,包含已创建的图层组和已加载的所有图层信息
Param | Type | Default | Description |
---|---|---|---|
[exceptDefaultGroup] | Boolean |
false |
获取默认图层组之外的图层信息 |
Example
layerManager.getLayerTree();
1.2.6. layerManager.on(eventType, callBack)
绑定事件
Param | Type | Description |
---|---|---|
eventType | String | LayerManagerEventType |
图层管理器事件类型 |
callBack | function |
回调函数 |
1.2.7. layerManager.fire(eventType, value)
触发事件
Param | Type | Description |
---|---|---|
eventType | String |
监听事件 |
value | * |
触发事件时可传入任意值 |
1.2.8. layerManager.hasOn(eventType, callBack)
判断该函数是否已绑定该事件
Param | Type | Description |
---|---|---|
eventType | String |
监听事件 |
callBack | function |
回调函数 |
1.2.9. layerManager.renameLayerById(layerId, newName)
根据图层id修改图层名称
Param | Type | Description |
---|---|---|
layerId | String |
图层id |
newName | String |
新图层名称 |
Example
var modelLayer = layerManager.getLayer(modelLayer.id, 'testModelLayer');
layerManager.renameLayer(layerId, 'newTestModelLayer');
1.2.10. layerManager.renameGroupById(groupId, newTitle)
修改分组名称
Param | Type | Description |
---|---|---|
groupId | String |
重命名的分组id, 不能为空 |
newTitle | String |
分组新名称 |
Example
layerManager.renameGroupById(groupId, 'newTitle');
1.2.11. layerManager.removeLayer(layerType, name)
删除图层
Param | Type | Description |
---|---|---|
layerType | LayerType | 图层类型 |
name | String |
需要删除的图层名 |
Example
layerManager.removeLayer(BOSGeo.LayerType.MODEL, 'testModelLayer');
1.2.12. layerManager.remove(layer)
删除图层
Param | Type | Description |
---|---|---|
layer | Layer | 需要删除的图层 |
Example
var modelLayer = layerManager.getLayer(BOSGeo.LayerType.MODEL, 'testModelLayer');
layerManager.remove(modelLayer);
1.2.13. layerManager.removeAll()
删除所有图层
1.2.14. layerManager.removeCustomLayerGroup(groupId)
移除图层组,并移除所有改图层组下的图层和组
Param | Type | Description |
---|---|---|
groupId | String |
图层组ID |
Example
const customLayerGroup = [
{
title:'模型',
id:'model',
children:[]
},
{
title:'矢量图层组',
id:'vector'
},{
title:'栅格图层组',
id:'raster'
}
{
title:'底图',
id:'map',
children:[{title:'本地服务',id:'map1'},{title:'地形',id:'map4'}]
}];
//初始化三维引擎
const geomap = new BOSGeo.GeoMap("bosgeoContainer",{
customLayerGroup, // 设置默认的自定义图层组
// baseMap: BOSGeo.ImageryMapType.ARCGIS_IMAGERY,
// date:"2019/10/04 19:00:00"
// token: tokenStr,
});
//layerManager.initCustomLayerTree(customLayerGroup);//该方法已私有化,在GeoMap类实例化时调用
setTimeout(() => {
geomap.layerManager.removeCustomLayerGroup('map');
}, 30000);