Cesium-Examples/examples/cesiumEx/4.1.5、缓冲分析.html
2025-05-29 10:59:44 +08:00

81 lines
3.3 KiB
HTML

<!--********************************************************************
* by jiawanlong
*********************************************************************-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="./../../libs/cesium/Cesium1.98/Widgets/widgets.css">
<script type="text/javascript" src="./../../libs/cesium/Cesium1.98/Cesium.js"></script>
<script src="./turf.min.js"></script>
<script src="./lodash.min.js"></script>
</head>
<body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
<div id="map" style="margin: 0 auto; width: 100%; height: 100%"></div>
<script type="text/javascript">
let aaa
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyNDMxOTA2NS1lY2Q3LTQ0YmUtOTE1Mi1iNWE2OGYwZjc0MjkiLCJpZCI6MjM1NjMwLCJpYXQiOjE3MzA3MjQzMTJ9.Xhu-9FyVEyqBKWEr0V9Sybt-elTCWHt9peL9-mNh-4E'
const viewer = new Cesium.Viewer('map', {
});
// 开启帧率
viewer.scene.debugShowFramesPerSecond = true;
// 深度监测
viewer.scene.globe.depthTestAgainstTerrain = true;
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(98.71707797694049, 27.677299704639537, 60000.0)
});
// 点缓冲
var point = turf.point([98.71707797694049, 27.677299704639537]);
var buffered = turf.buffer(point, 2, { units: 'kilometers' });
var pointBufferJson = buffered.geometry.coordinates[0];
console.log(pointBufferJson)
viewer.entities.add({
name: "最简单的贴地面",
polygon: { // lodash把二维数组压成一维数组
hierarchy: Cesium.Cartesian3.fromDegreesArray(_.flatten(pointBufferJson)),
material: Cesium.Color.RED.withAlpha(0.5),
},
});
// 贴地线
var hello = viewer.entities.add({
name: 'hello world',
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray([98.676842346815, 27.571578111198868,
98.86252156624968, 27.77444519911974,
98.76756234288729, 27.800244194152533]),
width: 3,
material: Cesium.Color.RED,
clampToGround: true,//贴地画线
}
});
// 线缓冲1
var line = turf.lineString([[98.676842346815, 27.571578111198868], [98.86252156624968, 27.77444519911974], [98.76756234288729, 27.800244194152533]]);
var buffered = turf.buffer(line, 0.5, { units: 'kilometers' });
var pointBufferJson = buffered.geometry.coordinates[0];
viewer.entities.add({
polygon: {
hierarchy: Cesium.Cartesian3.fromDegreesArray(_.flatten(pointBufferJson)),
material: Cesium.Color.BLUE.withAlpha(0.5),
},
});
// 线缓冲2
var buffered2 = turf.buffer(line, 0.7, { units: 'kilometers' });
var pointBufferJson = buffered2.geometry.coordinates[0];
viewer.entities.add({
polygon: {
hierarchy: Cesium.Cartesian3.fromDegreesArray(_.flatten(pointBufferJson)),
material: Cesium.Color.YELLOW.withAlpha(0.5),
},
});
</script>
</body>
</html>