地图地表
在 SDK 中提供了一些修改地图地表的属性,可以达到地图透明、地图地形展示等一些效果。
地图地表
在 SDK 中提供了一些修改地图地表的属性,可以达到地图透明、地图地形展示等一些效果。
1.数据结构
在 viewingMode:'global' 模式下,即在地球场景下,可以通过设置场景配置的map属性中的ground属性来自定义地图地形的相关设置。其数据结构如下:
1.1 地图地表
interface MapGround{
//地图地形
elevation: string;
// 地图地表透明度
opacity: number;
// 地图地表颜色
surfaceColor: [number, number, number];
//导航约束,指定相对于地面的导航约束,即是否可以导航到地面以下和模型之内
navigationConstraint: NavigationConstraint;
}
注:opacity在global下默认值是1,local下默认值是0。
1.2 导航约束
//默认为 `none`,这时不对其做任何约束;当为"stay-above"时,模型或地面不能被穿透,即无碰撞检测。
type NavigationConstraint="stay-above" | "none"
注:ground 属性可以是 str 类型,也可以是 obj 类型。如果设置字符串,字符串就会被识别为 ground 对象中的 elevation 属性值,即会直接识别为地图地形。如果设置对象类型就会识别为上述数据结构。
2. 地图地形
要为地球场景添加地形图层也就是所谓高程,就需要在 map 对象中设置 ground 属性,可设置的值有 'world-elevation' 和 'world-topobathymetry' 。
代码
const scene = new ubm.Scene('app', {
viewingMode: 'global',
map: {
basemap: "satellite",
ground: "world-elevation"
},
camera: {
position: {
latitude: 23.523469098336386,
longitude: 113.4017664853119,
z: 600
},
tilt: 80
}
})
3. 地表透明
想要使地球达到一定的透明效果,可以设置 map 对象下 ground 中的 opacity 属性,opacity 属性的值的范围在0-1之间,0为完全透明,1为完全不透明。
代码
const scene = new ubm.Scene('app', {
viewingMode: 'global',
map: {
basemap: "satellite",
ground: {
opacity:0.2
}
}
})

BIMFlux AI
