- 地图图层Layer
- 创建图层对象
- TilesetLayer 呈现更细节的三维场景">三维模型图层 TilesetLayer 呈现更细节的三维场景
地图图层Layer
- 平台的所有图层类都继承于 new mars3d.layer.BaseLayer(options)
- 图层类型列表 LayerType
创建图层对象
```javascript //用工厂方法,指定type来创建图层对象 var layer = mars3d.LayerUtil.create({ type: ‘xyz’, url: ‘https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png‘, subdomains: ‘abc’, }) map.addLayer(layer)
//直接创建具体类型的图层对象 var tileLayer = new mars3d.layer.XyzLayer({ url: ‘https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png‘, subdomains: ‘abc’, }) map.addLayer(tileLayer)
- 图层主要分以下几大类
1. 地形图层 [TerrainLayer](http://mars3d.cn/api/TerrainLayer.html) 三维地图场景 的 基石和骨骼
1. 栅格瓦片图层 [BaseTileLayer](http://mars3d.cn/api/BaseTileLayer.html)三维场景的皮肤
<a name="DOG7g"></a>
### 矢量数据图层 [GraphicLayer](http://mars3d.cn/api/GraphicLayer.html)
<a name="rtPm4"></a>
#### 创建图层
```javascript
if (this.siteLayer != undefined) {
this.siteLayer.remove();
}
//创建图层
this.siteLayer = new mars3d.layer.GraphicLayer();
this.map.addLayer(this.siteLayer);
//创建矢量图 mars3d.graphic.矢量图类型
const graphic = new mars3d.graphic.ModelEntity({
}}
//添加矢量图到图层
this.siteLayer.addGraphic(graphic)
图层循环
this.siteLayer.eachGraphic((graphic) => {
console.log('矢量图数据',graphic.attr)
})
矢量图设置数据和样式
graphic.setOptions({
attr: {
}
});
carGraphic.setStyle({
label: {
color: '#2BDBC3',
outlineColor: '#2BDBC3',
pixelOffsetY: -60,
},
})
三维模型图层 TilesetLayer 呈现更细节的三维场景
// 场景模型
this.senceModelLayer = new mars3d.layer.TilesetLayer({
hasZIndex: true,
zIndex: 100,
name: "建筑物",
url: "/platform/static/models/scene/tileset.json",
position: {lng: 119.90958479, lat: 30.54149118, alt: 0},
maximumScreenSpaceError: 1,
maximumMemoryUsage: 1024,
scale: 0.8506,
});
- 图层组 GroupLayer 方便组合管理
- 其他可视化图层