vue+cesium案例:智慧城市多种可视化特效(附源码下载)
基于vue和cesium实现的智慧城市,集成了多种可视化特效,包括建筑物高亮渲染、动态光锥、区域流光飞线、道路飞线、雷达扫描、光波扩散、光墙特效以及粒子烟花等。项目展示了现代智慧城市的数字孪生可视化效果,适合学习Cesium与前端框架结合开发3D可视化项目。
demo源码运行环境以及配置
- 运行环境:依赖Node安装环境,demo本地Node版本:推荐v16+。
- 运行工具:vscode或者其他工具。
- 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令:
(1)下载demo环境依赖包命令:npm i
(2)启动demo命令:npm run dev
(3)打包demo命令: npm run build
技术栈
- Vue 3.5.13
- Vite 4.4.5
- Cesium 1.93.0
- cesium-navigation-es6 3.0.8
- GSAP 3.12.2
- Turf.js 6.5.0
示例效果

核心源码
<template>
<div id="cesiumContainer"></div>
</template>
<script>
import * as Cesium from "cesium";
import CesiumNavigaion from "cesium-navigation-es6";
import "./Widgets/widgets.css";
import initViewer from "./cesium/initViewer";
import modifyBuild from "./cesium/modeifyBuild";
import MousePosition from "./cesium/MousePosition";
import modifyMap from "./cesium/modifyMap";
import LightCone from "./cesium/LightCone";
import RectFlyLight from "./cesium/RectFlyLight";
import RoadLightLine from "./cesium/RoadLightLine";
import RadarLight from "./cesium/RadarLight";
import LightSpread from "./cesium/LightSpread";
import LightWall from "./cesium/LightWall";
import ParticleLight from "./cesium/ParticleLight";
export default {
name: 'App',
mounted() {
// 初始化cesium
var viewer = initViewer();
// 创建建筑
modifyBuild(viewer);
// 根据鼠标位置生成经纬度值
let mousePosition = new MousePosition(viewer);
// 设置导航罗盘的配置
var options = {
// 启用罗盘
enableCompass: true,
// 是否启用缩放
enableZoomControls: false,
// 是否启用指南针外环
enableCompassOuterRing: true,
// 是否启用距离的图例
// enableDistanceLegend: false,
};
// 初始化导航罗盘
let navigation = new CesiumNavigaion(viewer, options);
// 修改地图的底色
modifyMap(viewer);
// 添加动态的光锥特效
let lightCone = new LightCone(viewer);
// 创建区域上升流光飞线
let rectFlyLight = new RectFlyLight(viewer);
// 创建道路飞线
let roadLightLine = new RoadLightLine(viewer);
// 创建雷达
let radarLight = new RadarLight(viewer);
// 6边形光波扩散特效
let lightSpread = new LightSpread(viewer);
// 光墙特效
let lightWall = new LightWall(viewer);
// particleLight,创建烟花粒子
let particleLight = new ParticleLight(viewer, Cesium.Color.RED);
let particleLight1 = new ParticleLight(viewer, Cesium.Color.AQUA);
let particleLight2 = new ParticleLight(viewer, Cesium.Color.GREEN);
}
}
</script>
<style>
#cesiumContainer {
width: 100%;
height: 100vh;
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
源码下载
GIS之家作品店铺:GIS之家作品店铺
GIS之家源码咨询:GIS之家webgis入门开发系列demo源代码咨询
扫码关注GIS之家微信公众号,回复“gis”可免费获取地图数据以及arcgis系列安装包等资源
GIS之家源码咨询:GIS之家webgis入门开发系列demo源代码咨询
扫码关注GIS之家微信公众号,回复“gis”可免费获取地图数据以及arcgis系列安装包等资源

浙公网安备 33010602011771号