跳到主要内容
版本:9.14.1-beta

3DGS批量单体化

动态创建3DGS单体化区域的外包盒模型,实现外包围盒中3DGS单体化效果。

show
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8" />
<title>3DGS批量单体化</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<style>
body {
margin: 0;
padding: 0;
}

#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
<script src="https://delivery.mapmost.com/cdn/sdk/webgl/v9.14.1-beta/mapmost-webgl-min.js"></script>

</head>

<body>
<div id="map"></div>
<script>

var map = new mapmost.Map({
container: 'map',
style: "<your style url>",
center: [120.74449559193792, 31.30775326748954],
zoom: 15,
pitch: 60,
userId: "***", // 授权码
});

map.on('load', function () {

// 加载3DGS服务
map.addLayer({
id: "gs-3d-layer",
type: "MMGS",
url: "http://****/3dgs/yuanqu_100km/1/mmgs.json",
depthWrite: true,
});

// 批量单体化
const warmColors = [
"#FF0000", // 红色
"#00FF00", // 绿色
"#0000FF", // 蓝色
"#FFFF00", // 黄色
"#FF00FF", // 品红
"#00FFFF", // 青色
"#FF8000", // 橙色
"#8000FF", // 紫色
"#80FF00", // lime绿色
"#FF0080", // 粉红色
];

Promise.all([
fetch("./data.json").then((res) =>
res.json(),
),
]).then((results) => {
let analysis = new mapmost.ClassifyAnalysis(map);
let data = [];
data = data.concat(
results[0].map((item, index) => {
return {
coordinate: item.contour_4326,
color: warmColors[index % warmColors.length],
opacity: 0.1,
baseHeight: 0,
stretchHeight: item.max_z + 20,
};
}),
);
analysis.analyse(data);
});
})
</script>
</body>

</html>