vue3.2+ts+cesium制作3DGIS效果的大屏(下)

这篇具有很好参考价值的文章主要介绍了vue3.2+ts+cesium制作3DGIS效果的大屏(下)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

cesium用于三维可视化,在城市场景 工业场景 巡航等场景用处多,接下来我们初始地址是图五的效果,我们镜头跟随视角函数flyto来到山西阳泉,定位其中的一个建筑并正射这个建筑,给这个建筑打上tip控制相机视角高度为2000,我们从图一的效果执行代码

viewer.camera.flyTo( {
  destination: Cesium.Cartesian3.fromDegrees(113.572642,37.86694,2000),//山西阳泉
  orientation: {
    heading: Cesium.Math.toRadians(0),
    pitch: Cesium.Math.toRadians(-90),
    roll: Cesium.Math.toRadians(0 ),
    range:10000
  }});

然后我们定位到了我们所需要的位置,然后我们设置tip,并给tip设置开启关闭气泡弹窗功能(tip的箭头太丑了没找到合适的),此后视角无论如何转动 弹窗都跟随你的镜头

vue3.2+ts+cesium制作3DGIS效果的大屏(下)

我们写一个tip实体类  里面inage属性可以放base64  我没有图片就用的自带的蓝色图标,总体代码如下  只需实列化一个对象,生产tip调用addEntity函数,参数传入弹窗所需要的数据

export default class DragEntity{
    constructor(val,Cesium){
        this.viewer = val.viewer
        this.Cesium = Cesium
    }
    addEntity(value){
        let pinBuilder = new this.Cesium.PinBuilder();
        let poin = this.viewer.entities.add({
            id:value.id,
            name: value.name,
            position: this.Cesium.Cartesian3.fromDegrees(parseFloat(value.position.x), parseFloat(value.position.y)),
            billboard: {
                image:  pinBuilder.fromColor(this.Cesium.Color.ROYALBLUE, 48).toDataURL(),
                verticalOrigin: this.Cesium.VerticalOrigin.BOTTOM,
            },
            monitoItems:{
                data:value
            },
        });
        return poin
    }

}

然后简单封装一个fetch对象函数作为我们接口的调用,大屏展示接口暂时只有get

export default function (url:string,method:string = "get",data?:Array<any>|Object) {
    let headers:{ Authorization: string; "tenant-id": string }={
        "Authorization": opener["filter"]["Authorization"],
        "tenant-id":  opener["filter"]["tenant-id"]+""
    }
    return fetch(url, {headers,method}).then(
        (response:Response)=>{
        if(response.status === 200){
            return response.json();
        }else{
            return {}
        }
    },(error)=>{
        return {}
    })
}

在setup后面我们定义一些数据和一些响应式数据文章来源地址https://www.toymoban.com/news/detail-416848.html

let viewer:any=null
let map:any=null
let citys:Array<number>=[]
let views:Array<any>=[]
let twinkles:Array<any>=[]
interface ttcObject { value?: boolean }
interface msgObject { value?: string|number }
interface videoP extends Object {switch: boolean; readonly type: string}
const alarmRankDataMax:number=232;
const devs: Array<any> = react

到了这里,关于vue3.2+ts+cesium制作3DGIS效果的大屏(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3 大屏数字滚动效果

     父组件: template   div class=\\\"homePage\\\"     NumRoll v-for=\\\"(v, i) in numberList\\\" :key=\\\"i\\\" :number=\\\"v\\\"/NumRoll   /div /template script setup import { onMounted, ref } from \\\'vue\\\' import NumRoll from \\\'@/views/components/numRoll.vue\\\' const numberList = ref([0]) const number = ref(1200) onMounted(() = {   numberList.value = number.value.toString().spl

    2024年02月13日
    浏览(47)
  • vue3+ts 绘制流程图 vueflow 附代码及效果图

    已完成渲染流程图,自定义模板内容(上下分级),自定义样式,新增节点addRandomNode,点击修改节点nodeClickHandler(从父组件传值) 官网:https://vueflow.dev/guide/node.html#node-template 文档比较复杂,很多想找的方法没法一下就找到需要注意 我装了三个,如果npm安装报错可以试试yarn add

    2024年02月12日
    浏览(37)
  • uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果

    要实现自定义的tabbar效果,可以使用自定义tab覆盖主tab来实现,当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件,然后在里面实现自定义的逻辑。 组件中所使用的组件api可以看:Tabbar 底部导航栏 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-

    2024年02月04日
    浏览(44)
  • uniapp+vue3+ts--编写微信小程序对接e签宝签署时跳转刷脸效果(人脸识别)中间页代码

    e签宝内嵌H5方式集成签署页的文档说明:https://open.esign.cn/doc/opendoc/case3/ahb0sg 签署时跳转刷脸效果示意图: 1. 在文件夹新建一个文件,路径为pages/middle/index,并在pages.json中注册。【ps这个路径要跟e签宝后台定义的中间页路径一致】 2.通过上面文档步骤进行相关代码编写,下面

    2024年01月25日
    浏览(59)
  • 运用pyecharts制作可视化大屏(代码展示及效果图-动图)

    一、Matplotlib绘图 折线图 import matplotlib.pyplot as plt # 调用画图库 plt.rcParams[\\\'font.sans-serif\\\'] = [\\\'SimHei\\\'] # 设置成可以显示中文,字体为黑体 plt.figure( figsize =(12,8)) # 调整图片尺寸 x = [\\\'周一\\\',\\\'周二\\\',\\\'周三\\\',\\\'周四\\\',\\\'周五\\\',\\\'周六\\\',\\\'周日\\\'] # 设置x轴数据 y = [401,632,453,894,775,646,1207] # 设置对应

    2024年02月05日
    浏览(50)
  • 【Vue基础-数字大屏】加载动漫效果

    一、需求描述 当网页正在加载而处于空白页面状态时,可以在该页面上显示加载动画提示。 二、步骤代码 1、全局下载npm install -g json-server 2、在src目录下新建文件夹mock,新建文件data.json存放模拟数据 3、在mock目录下启动json-server 4、下载数据请求内容npm install --save axios 如果

    2024年02月07日
    浏览(36)
  • vue3+cesium项目搭建

    最近需要在一个Vue3的项目中使用到cesium,对于一个cesium没有太多了解的人来说,还是比较麻烦的,本篇博文就将自己在这个过程踩的坑记录下来,有需要的可以看一下 1、vue+cesium框架搭建 2、项目运行起来后,球体不出现,只出现星空 持续ing… 1、初始化vue3项目框架 vue cre

    2024年02月15日
    浏览(46)
  • Cesium引入vite + vue3

    卸载命令 使用 vite.config.js 组件使用 加载高德地图 高德地图的加载方便很多,并不需要申请key,可以直接加载到我们的Cesium中。 加载ArcGISMap地图

    2024年02月14日
    浏览(37)
  • JavaScript、Vue实现大数据大屏展示3D旋转动画效果

    最近在写一些数据大屏的时候客户需要做个3D旋转动效的效果,简单整理之后写了一个小demo做下记录,先看一下效果: 当点击next的时候,整个模块旋转切换到下个菜单,点击prev的时候也可以切换到上一个菜单效果。 首先我们先构建一个大体的dom结构,如下: 编写基本的css样

    2024年02月11日
    浏览(41)
  • vite+vue3+cesium环境搭建

    1.创建一个Vite项目 npm create vite@latest 2.安装cesium插件:vite-plugin-cesium npm i cesium vite-plugin-cesium vite -D 3、配置vite.config.js import cesium from \\\'vite-plugin-cesium\\\'; export default defineConfig({ plugins: [vue(),cesium()] }) 4、清空style.css中的样式 5、配置App.vue 清空一切不需要的,设置样式使得全屏 6、配

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包