cesium-graphicBuffer/index.html

125 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>缓冲区示例</title>
<link href="src/Cesium1.70/Widgets/widgets.css" rel="stylesheet" />
<script src="src/Cesium1.70/Cesium.js"></script>
<!-- <script src="http://zhangticcc.gitee.io/d3kit/d3kit.js"></script> -->
<script src="src/turf.min.js"></script>
<script src="src/cesium-graphicBuffer.js"></script>
<style>
* {
margin: 0;
padding: 0;
}
html,
body,
#viewer-container {
width: 100%;
height: 100%;
overflow: hidden;
}
#btn {
position: absolute;
padding: 5px;
top: 5px;
left: 5px;
}
</style>
</head>
<body>
<div id="viewer-container"></div>
<div id="btn">
<button onclick="point()">创建点缓冲</button>
<button onclick="polyline()">创建线缓冲</button>
<button onclick="polygon()">创建面缓冲</button>
<button onclick="animation()">动画</button>
</div>
<script>
let radius = 3, bufferEntity = [];
// init
function initPage() {
// 切换自己的token
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYTQ2ZjdjNS1jM2E0LTQ1M2EtOWM0My1mODMzNzY3YjYzY2YiLCJpZCI6MjkzMjcsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1OTE5NDIzNjB9.RzKlVTVDTQ9r7cqCo-PDydgUh8Frgw0Erul_BVxiS9c';
// 初始化
let viewer = new Cesium.Viewer("viewer-container", {
infoBox: false,
shouldAnimate: true,
vrButton: true,
geocoder: false,
homeButton: false,
sceneModePicker: false,
baseLayerPicker: true,
navigationHelpButton: false,
animation: false,
timeline: false,
fullscreenButton: false,
});
window.point = function () {
// 绘制点 右键结束
Cesium.drawPointGraphics({ viewer: viewer }).then((point) => {
// 创建缓冲区范围
point = point[0]
let turfPositions = turf.point([point.lng, point.lat])
bufferEntity.push(Cesium.createGraphicsBuffer({
viewer: viewer,
animation:true,
turfPositions: turfPositions,
radius: Number(radius)
}))
})
}
window.polyline = function () {
// 绘制线 右键结束
Cesium.drawLineGraphics({ viewer: viewer }).then((lines) => {
// 创建缓冲区范围
let _lines = []
lines.forEach((line) => { let point = [line.lng, line.lat]; _lines.push(point) })
let turfPositions = turf.lineString(_lines)
bufferEntity.push(Cesium.createGraphicsBuffer({
viewer: viewer,
animation:true,
turfPositions: turfPositions,
radius: Number(radius)
}))
})
}
window.polygon = function () {
// 绘制面 右键结束
Cesium.drawPolygonGraphics({ viewer: viewer }).then((polygons) => {
// 创建缓冲区范围
let _polygons = []
polygons.forEach((polygon) => { let point = [polygon.lng, polygon.lat]; _polygons.push(point) })
let turfPositions = turf.polygon([_polygons])
bufferEntity.push(Cesium.createGraphicsBuffer({
viewer: viewer,
animation:true,
turfPositions: turfPositions,
radius: Number(radius)
}))
})
}
window.animation = function () {
bufferEntity && bufferEntity.forEach(entity => entity.animation = !entity.animation)
}
}
// load
window.onload = function () {
initPage()
}
</script>
</body>
</html>