cesium 添加可视域

2023-11-02 06:20
文章标签 cesium 视域

本文主要是介绍cesium 添加可视域,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引入cesium-viewshed.js 下载地址https://download.csdn.net/download/qq_34200979/14894299

<!DOCTYPE html>
<html lang="en"><head><!-- Use correct character set. --><meta charset="utf-8"><!-- Tell IE to use the latest, best version. --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- Make the application on mobile take up the full browser screen and disable user scaling. --><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"><title>Hello World!</title><script src="../Build/CesiumUnminified/Cesium.js"></script><script src="cesium-viewshed.js"></script><style>@import url(../Build/CesiumUnminified/Widgets/widgets.css);</style></head><body><div id="viewer-container"></div><div id="btn"><button onclick="setvisible('add')">添加可视域</button><button onclick="setvisible('remove')">删除可视域</button></div><script>var viewer = null;var arrViewField = [];var viewModel = {verticalAngle: 90,horizontalAngle: 120,distance: 10};// 开关function setvisible(value) {switch (value) {case 'add':addViewField();break;case 'remove':clearAllViewField();break;}}// 添加可视域function addViewField() {var e = new Cesium.ViewShed3D(viewer, {horizontalAngle: Number(viewModel.horizontalAngle),verticalAngle: Number(viewModel.verticalAngle),distance: Number(viewModel.distance),calback: function() {viewModel.distance = e.distance}});arrViewField.push(e)}// 清除可视域function clearAllViewField() {for (var e = 0, i = arrViewField.length; e < i; e++) {arrViewField[e].destroy()}arrViewField = []}// initfunction initPage() {viewer = new Cesium.Viewer("viewer-container", {});var tilesets = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({url: 'xian/tileset.json'}));viewer.flyTo(tilesets)}// window.onload = function() {initPage()}</script></body></html>

 

这篇关于cesium 添加可视域的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/328717

相关文章

我成功在本地打开了Cesium啦!

1首先下载Node.js,我是跟着这篇下载的,https://zhuanlan.zhihu.com/p/77594251,不过这后面的我没弄对Cesium环境配置也没影响。 另外:我看其他推文说,在终端写node -v和npm-v查node和npm的版本可以检测node和npm是否下载成功。 2然后我在CesiumB站官号看的教学视频,跟着下载Cesium源代码。 Cesium基础入门1-零

GIS圈大事件!Cesium被收购了,是好是坏?

大家好,我是日拱一卒的攻城师不浪,致力于技术与艺术的融合。这是2024年输出的第34/100篇文章。 Cesium开发交流群+V:brown_7778(备注来意) 一觉醒来,突然看到Cesium官方发的消息,宣布通过收购的方式加入Bentley软件公司。 可能小伙伴们对Bentley公司还不是很了解。 Bentley 是数字孪生领域的长期合作伙伴,也是开放生态系统的真正支持者。

Cesium 展示——实现昼夜交替

文章目录 需求分析1. 添加2. 移除 需求 Cesium 展示——实现昼夜交替 分析 1. 添加 <

cesium 使用异步函数 getHeightAtPoint,获取指定经纬度点的地形高度。

这个函数使用 CesiumJS 库的 sampleTerrain 方法来获取地形数据。下面是代码的详细解释: async getHeightAtPoint(LngLat) {// 将经纬度转为 Cartographic 对象let cartographics = [Cesium.Cartographic.fromDegrees(LngLat[0], LngLat[1])];// console.

Cesium中的pick

参考地址–cesium 中的cpupick 和 gpupick 总结: pick ray 射线是利用场景求交集,cpupick,所以可以每次把不需要的mesh 给排除scene pick 基于canvas 二维反算 三维世界坐标的是gpupick 效率会更高

Cesium 展示——绘制等值线图

文章目录 需求分析1. 在指定经纬度范围内进行绘制(两点之间的矩形)2. 在自定义范围内进行绘制(多点之间的不规则范围)升级版 资料 需求 分析 下载安装 引入 npm install cesiumnpm install @turf/turf import *

【GIS开发小课堂】vue3+Cesium.js三维WebGIS项目实战(一)

随着市场对数字孪生的需求日益增多,对于前端从业者的能力从对框架vue、react的要求,逐步扩展到2D、3D空间的交互,为用户提供更紧密的立体交互。近年来前端对GIS的需求日益增多。 本文档详细介绍了使用Vue3和Cesium.js构建三维WebGIS项目的步骤,涵盖Cesium的基础知识、项目搭建、坐标转换、相机系统、地图与地形加载、空间数据管理和交互等内容,旨在为前端开发者提供一个立体交互的

Cesium加载高速公路样式线图层和利用CSS撰写高速公路样式

在ArcGIS软件中是将多个线图层叠加(宽的叠加在下方防止遮盖其他图层)    依照此想法在Cesium中加载高速公路线图层时 在 Cesium 中,直接设置线(如 Polyline)的样式为“高速公路样式”并不直接支持,因为 Cesium 没有内置的特定于高速公路的样式选项。不过,你可以通过自定义线的样式来模拟高速公路的外观,包括在线的外边界添加黑色描边。 要在 Cesium 中实现

利用cesium模拟台风移动路径——以利奇马台风为例

根据cesium官网示例(https://sandcastle.cesium.com/?src=Interpolation.html)改造为台风移动轨迹,台风数据从台风路径实时发布系统获取。模拟台风移动路径从台风发生地开始,动态移动至台风消亡地,之后从起点又开始循环移动。采用实体ellipse模拟台风的旋转,给椭圆背景material贴图,使用CallbackProperty设置rotation和

cesium两种方式鼠标移入移出实体显示提示框

cesium两种方式鼠标移入移出实体显示提示框 第一种方式 采用cesium的label作为提示框 var labelEntity = viewer.entities.add({label : {show : false,showBackground : true,font : '14px monospace',horizontalOrigin : Cesium.HorizontalOrig