Vue3+vite+cesium环境搭建

引言

目前有不少vue3+cesium的配置教学,存在以下两个问题:

(1)vue3+cli方式,随着项目的迭代,npm run serve 启动调试很慢;

(2)vue3+vite 确实能将调试启动提升不少的,但是提供的cesium配置方式在调用例如3dtiles位置调整等api时存在问题。

例如:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'then')
 

尝试了很多方式,总结了vue3+vite+cesium的配置方法。

1、前置准备

(如已有环境跳过)

(1)确保电脑已安装nodejs 16以上版本

版本查看方式

node -v

(2)安装npm

npm install npm@latest -g

2、创建工程

npm create vite@latest

3、进入工程

cd test_cesium

4、安装依赖

npm install 

5、启动工程

npm run dev

6、安装cesium

(1)这里先采用vite插件方式安装cesium

npm i cesium vite-plugin-cesium vite -D

(2)此时修改vite.config.js配置(见7章)再引入cesium即可使用很方便,但存在开头存在的问题,无法使用cesium的createWorldTerrain、3dtiles矩阵调整等功能,这里可能是版本问题(不确定)。

(3)因为也没找到vite升级cesium的说明,尝试使用如下命令升级cesium版本

npm install cesium@1.95.0 -s

版本建议锁定,防止一些版本差异引起的项目错误

7、代码

HelloWorld.app

<script setup>
import { onMounted } from 'vue'
import * as Cesium from 'cesium';

onMounted(() => {
  Initmap()
})

//初始化地图
function Initmap() {
  Cesium.Ion.defaultAccessToken = '你的token'

  const esri = new Cesium.ArcGisMapServerImageryProvider({
    url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
  });
  const viewer = new Cesium.Viewer("cesiumContainer", {

    infoBox: false,//是否显示信息框,默认true

    baseLayerPicker: false,
    imageryProvider: esri,
    terrainProvider: Cesium.createWorldTerrain({
      requestWaterMask: true,
      requestVertexNormals: true
    })
  });

}

另一种写法

<script >
import * as Cesium from 'cesium';
import { onMounted, } from 'vue'
export default {
    setup() {

        onMounted(() => {
            Initmap()

            return {

                Initmap
            }

            //初始化地图
            function Initmap() {
                Cesium.Ion.defaultAccessToken = '你的token'

                const esri = new Cesium.ArcGisMapServerImageryProvider({
                    url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
                });
                const viewer = new Cesium.Viewer("cesiumContainer", {
                    infoBox: false,//是否显示信息框,默认true
                    baseLayerPicker: false,
                    imageryProvider: esri,
                    terrainProvider: Cesium.createWorldTerrain({
                        requestWaterMask: true,
                        requestVertexNormals: true
                    })
                });

            }
        })
    }
}
#cesiumContainer {
  width: 100%;
  height: 100%;
  overflow: hidden;

}

vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import cesium from 'vite-plugin-cesium';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(),cesium()],
})

App.vue

<script setup>
import HelloWorld from './components/HelloWorld.vue'

</script>

<template>

  <HelloWorld />
</template>

<style >
html,body,#app{
  width: 100%;
  height: 100%;
  overflow: hidden;
  margin: 0px;
  padding: 0px;
}
</style>

8、效果

解决了cesium一些api无法使用的问题,可以调整地形、水体以及3dtiles矩阵调整等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

万宾科技智能井盖监测仪器助力建设数字化城市

市政公共设施建设在近几年来发展迅速&#xff0c;市政设备的更新换代&#xff0c;资产管理等也成为其中的重要一项。在市政设施建设过程中&#xff0c;井盖也是不可忽视的&#xff0c;一方面&#xff0c;根据传统的管理井盖模式来讲&#xff0c;缺乏有效的远程监控管理方法和手…

zookeeper:启动原理

主类&#xff1a; QuorumPeerMain, 其中调用了main对象的initializeAndRun方法&#xff0c; 首先定义了QuorumPeerConfig对象&#xff0c;然后调用了parse方法&#xff0c;parse方法代码如下&#xff1a; 其中调用的parseProperties方法的代码如下&#xff1a; 可以看到&am…

Docker实战

一、Docker安装 以下均以CentOS 7为例 1、安装Docker yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 2、启动和校验 # 启动Docker systemctl start docker# 停止Docker systemctl stop docker# 重启 systemctl resta…

【GEE】7、利用GEE进行遥感影像分类【随机森林分类】

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 监督和非监督图像分类之间的区别。Google Earth Engine 提供的各种分类算法的定义和应用。如何使用 randomForest 设置和运行分类&#xff0c;以 aspen 存在和不存在作为示例数据集。 2背景 图像分类 人类自然倾向…

kubernetes集群编排(7)

目录 k8s认证授权 pod绑定sa 认证 授权 k8s认证授权 pod绑定sa [rootk8s2 ~]# kubectl create sa admin //在当前 Kubernetes 集群中创建一个名为 "admin" 的新服务账户[rootk8s2 secret]# vim pod3.yaml apiVersion: v1 kind: Pod metadata:name: mypod spec…

Leetcode—剑指OfferII LCR 044.在每个树行中找最大值【中等】

2023每日刷题&#xff08;二十三&#xff09; Leetcode—LCR 044.在每个树行中找最大值 DFS实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned …

单应用多语言切换(语言国际化)

目录 编写语言管理类 编写Activity 的父类 DEMO 实验界面--首页Activity DEMO 实验界面--设置语言Activity Demo 语言资源文件 参考连接 编写语言管理类 package com.example.languageapplicationimport android.content.Context import android.content.ContextWrapper i…

Oracle Primavera Unifier 23.10 新特征

根据官方的说法&#xff0c;Unifier 23.7 ~ 23.9 更多为对功能bug的修复&#xff0c;以下将对23.10进行重点介绍 Cost Sheets Cost Sheets Support Conditional Formatting Conditional formatting of table data is now supported in cost sheets with features such as ce…

Excel下拉填充时,如何使得数字不递增?

问题描述&#xff1a;Excel下拉填充时&#xff0c;如何使得数字不递增&#xff1f; 解决办法&#xff1a;先下拉填充数据之后&#xff0c;看到最后一个单元格的右下角有个填充设置的符号&#xff0c;右键选择复制单元格即可。其中这里的填充序列就是递增数字的操作。

高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论

文章目录 概述操作系统的限制因素文件句柄限制1. 进程限制2. 全局限制 端口号范围限制 概述 单台服务器可以支持的并发TCP连接数取决于多个因素&#xff0c;包括硬件性能、操作系统限制、网络带宽和应用程序设计。以下是一些影响并发TCP连接数的因素&#xff1a; 服务器硬件性…

split() 函数实现多条件转为数据为数组类型

使用 split() 函数并传递正则表达式 /[,;.-]/ 作为分隔符来将字符串按照逗号、分号和破折号进行拆分&#xff0c;并将结果赋值给 splitArray 数组。下面是一个示例代码&#xff1a; 在上面的示例中&#xff0c;我们使用 split() 函数将 inputString 字符串按照逗号、分号和破折…

低代码平台,业务开发的“银弹”

目录 一、为什么需要低代码平台 二、低代码平台的搭建能力 三、低代码其他能力 四、写在最后 随着互联网和信息技术的快速发展&#xff0c;各行各业都在积极拥抱数字化转型。在这个过程中&#xff0c;软件开发成为企业实现数字化转型的关键环节。然而&#xff0c;传统的软件开发…

IP协议,

文章目录 IP协议IP相当于OSI参考模型的第3层网络层与数据链路层的关系IP基础知识IP地址属于网络层地址路由控制数据链路的抽象化IP属于面向无连接型IP地址的基础知识IP地址的定义路由控制IPv6 IP协议 IP相当于OSI参考模型的第3层 IP&#xff08;IPv4、IPv6&#xff09;相当于…

70 内网安全-域横向内网漫游Socks代理隧道技术

目录 必要基础知识点:1.内外网简单知识2.内网1和内网2通信问题3.正向反向协议通信连接问题4.内网穿透代理隧道技术说明 演示案例:内网穿透Ngrok测试演示-两个内网通讯上线内网穿透Frp自建跳板测试-两个内网通讯上线CFS三层内网漫游安全测试演练-某CTF线下2019 涉及资源: 主要说…

el-table实现单选框+隐藏多选框+回显

0 效果 1 单选框 2 隐藏多选框 3 回显 回显数据要在el-table中添加两个属性

快速排序【2023年最新】

快速排序思想总结&#xff1a; 内附快排模版&#xff0c;可开袋即食。 学了一套快速排序的模版&#xff0c;接下来我说一下我的理解。 这套模板的思路是这样的&#xff0c;随机找到一个点&#xff0c;可以是数组中的左边界也可以是右边界&#xff0c;或者是数组中任何一个元…

Power Apps-“编辑“窗体组件

插入一个“编辑”窗体 连接数据源 在该组件的Item函数中编辑筛选符合条件的唯一记录 LookUp(表名,列名值) LookUp参考文档&#xff1a;Filter、Search 和 LookUp 函数&#xff08;包含视频&#xff09; - Power Platform | Microsoft Learn 数据表里的数据就一一对应出现在了组…

HarmonyOS开发:回调实现网络的拦截

前言 上一篇文章&#xff0c;分享了一个基于http封装的一个网络库&#xff0c;里面有一个知识点&#xff0c;在初始化的时候&#xff0c;可以设置请求头拦截和请求错误后的信息的拦截&#xff0c;具体案例如下&#xff1a; Net.getInstance().init({netErrorInterceptor: new M…

中国第二批,11个大模型备案获批

加上首批的 10 余个大模型&#xff0c;目前已有超过 20 个大模型获得审批。 据钛媒体独家报道&#xff0c;国内第二批通过备案的AI大模型包括11家公司&#xff0c;部分已面向全社会开放服务。加上首批的10余个大模型&#xff0c;目前已有超过20个大模型获得备案。 新一批备案…