在vite创建的vue3项目中加载Cesium世界街道地图的底图

news2024/11/26 15:23:46

在vite创建的vue3项目中加载Cesium世界街道地图的底图

  1. 使用vite创建vue3项目

    npm create vite@latest
    

    cd到创建的项目文件夹中

    npm install
    

    安装Cesium

    npm i cesium vite-plugin-cesium vite -D
    
  2. 配置

    1. vite.config.js文件

      import { defineConfig } from 'vite'
      import vue from '@vitejs/plugin-vue'
      import cesium from 'vite-plugin-cesium';
      export default defineConfig({
        plugins: [vue(), cesium()],
      });
      
    2. style.css(可选):修改#app样式

      #app {
      		  max-width: 100%;
      		  margin: 0 auto;
      		  padding: 2rem;
      		  text-align: center;
      		}
      
  3. 代码

    1. App.vue

      <template>
        <div id="cesiumContainer"></div>
      </template>
      
      <script setup>
      import * as Cesium from 'cesium';
      import { onMounted } from 'vue';
      onMounted(async () => {
        // 相当于密钥,申请使用下边链接中的数据时需要用到,
        // 需要你自己注册Cesium账号,https://ion.cesium.com/,获取自己的token数据
        Cesium.Ion.defaultAccessToken = '你的token'
        // 需要你自己注册账号,https://developers.arcgis.com/,获取自己的token数据
        Cesium.ArcGisMapService.defaultAccessToken = '你的token'
      
      
        let viewer = new Cesium.Viewer('cesiumContainer', {
          // 防止报错
          infoBox: false,
          // 去掉右上角的一个小选项卡
          baseLayerPicker: false,
          // 加载世界街道地图的底图
          baseLayer: Cesium.ImageryLayer.fromProviderAsync(
            Cesium.ArcGisMapServerImageryProvider.fromUrl("/ArcGIS/rest/services/World_Street_Map/MapServer")
          ),
          // 三维立体效果、水波纹
          terrainProvider: await Cesium.createWorldTerrainAsync({
            requestVertexNormals: true,
            requestWaterMask: true
          })
        })
      
      
        viewer.camera.setView({
          // 初始的相机的定位 定在纽约
          destination: new Cesium.Cartesian3(1332761, -4662399, 4137888),
          // 方向 俯仰
          orientation: {
            heading: 0.6,
            pitch: -0.66
          }
        })
      
      })
      </script>
      
      <style>
      html,
      body,
      #app,
      #cesiumContainer {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden;
      }
      </style>
      
      
    2. 解读

      1. token:需要自己注册Cesium和ArcGIS获取,以便使用地图数据信息

          Cesium.Ion.defaultAccessToken = '你的token'
          Cesium.ArcGisMapService.defaultAccessToken = '你的token'
        
      2. 加载世界街道地图的底图:可以在API文档中搜索不熟悉api的使用方法

        // 加载世界街道地图的底图
            baseLayer: Cesium.ImageryLayer.fromProviderAsync(
              Cesium.ArcGisMapServerImageryProvider.fromUrl("/ArcGIS/rest/services/World_Street_Map/MapServer")
            ),
        
      3. 三维立体效果、水波纹

        // 三维立体效果、水波纹
            terrainProvider: await Cesium.createWorldTerrainAsync({
              requestVertexNormals: true,
              requestWaterMask: true
            })
        
      4. 初始位置的定位

          viewer.camera.setView({
            // 初始的相机的定位 定在纽约
            destination: new Cesium.Cartesian3(1332761, -4662399, 4137888),
            // 方向 俯仰
            orientation: {
              heading: 0.6,
              pitch: -0.66
            }
          })
        
      5. 样式的简易设置;

        <style>
        html,
        body,
        #app,
        #cesiumContainer {
          width: 100%;
          height: 100%;
          margin: 0;
          padding: 0;
          overflow: hidden;
        }
        </style>
        
  4. 效果:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ETHERCAT转PROFINET协议网关连接ethercat网线接口定义

大家好&#xff0c;今天我要给大家介绍一款神奇的产品&#xff0c;YC-PN-ECT&#xff0c;它是一款 PROFINET 从站功能的通讯网关&#xff0c;可以将 PROFINET 网络和 ETHERCAT 网络连接起来&#xff0c;让不同厂家的 PLC 能够互相通信&#xff0c;真是太酷了&#xff01; PEO…

T100新增栏位,配置ACC作业并提供开窗作业维护

需求分析:将xxxx作业中的一个界面新增一个栏位,并提供开窗功能进行资料的维护。 一、ACC自适应配置文档开发 1.1 azzi650 注册应用分类码【ACC】 新增一个资料 应用分类码【数字】说明 填写文字说明作业编号:这个时候是空的作业名称:也是空的1.2 azzi910 作业基本维护 这个…

做爬虫如何选择Python和C语言

目录 优劣势分析 Python 进行爬虫的优势&#xff1a; Python 进行爬虫的劣势&#xff1a; C进行爬虫的优势&#xff1a; C进行爬虫的劣势&#xff1a; 示例代码说明 Python 示例代码&#xff1a; C语言 示例代码&#xff1a; 怎么选择 优劣势分析 Python 进行爬虫的优…

Java设计模式之创建型-原型模式(UML类图+案例分析)

一、基础概念 通过复制已有对象作为原型&#xff0c;通过复制该原型来返回一个新对象&#xff0c;而不是新建对象&#xff0c;说白了就是不断复制相同的对象罢了。 二、UML类图 三、角色分析 角色描述抽象原型类规定了具体的原型对象必须实现的clone()方法具体原型类实现抽象…

倒计时1天!LeaTech全球CTO领导力峰会TVP四周年庆典即将开幕

引言 3 月 4 日&#xff0c;上海扬子江丽笙精选酒店&#xff0c;LeaTech 全球 CTO 领导力峰会暨腾讯云 TVP 四周年、CTO 训练营校友联合庆典即将开幕。本次 LeaTech 全球 CTO 领导力峰会以“寻光之旅”为主题&#xff0c;腾讯云 TVP 携手 51CTO&#xff0c;联合邀请业内资深领袖…

C# winform界面显示3D点云图像(halcon+VTK)

前一段时间研究了下halcon里的3d算法&#xff0c;想着把3d图像显示在C#编写的软件界面上&#xff0c;试了下halcon的控件&#xff0c;没成功。后来学习了一点VTK的知识&#xff0c;实现了3d图像的显示&#xff0c;可旋转&#xff0c;平移&#xff0c;缩放观察&#xff0c;当然也…

为什么国内做不出好的3A游戏?

个人觉得原因如下&#xff1a; 主要原因&#xff1a; 市场需求和消费观念&#xff1a;国内游戏市场对游戏类型和风格有着自身的特点和需求。一些热门游戏类型&#xff0c;如多人在线游戏、手机游戏等&#xff0c;相对于传统的3A游戏更受国内玩家欢迎。这可能导致国内游戏公司…

QInputDialog 不显示ok或cancel按钮bug

今天遇到一个奇怪问题&#xff0c;就是调用 QInputDialog::getText去获取输入文本&#xff0c;但是无法显示系统ok和cancel按钮&#xff0c;我记得之前是可以的&#xff0c;于是我回退上一个版本是正常&#xff0c;于是对比两个版本代码&#xff0c;发现&#xff0c;自己重写 Q…

【人工智能】贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

文章目录 频率学派 vs. 贝叶斯学派贝叶斯学派Probability&#xff08;概率&#xff09;:独立性/条件独立性&#xff1a;Probability Theory&#xff08;概率论&#xff09;:Graphical models &#xff08;概率图模型&#xff09;什么是图模型&#xff08;Graphical Models&…

stm32(定时器和PWM知识点)

一、定时器介绍 软件定时 缺点&#xff1a;不精确、占用CPU资源 void Delay500ms() //11.0592MHz { unsigned char i, j, k; _nop_(); i 4; j 129; k 119; do { do { while (--k); } while (--j); } while (--i); }定时器工作原理&#xff1a; 使用精准的时基&#xff0c…

面试靠微服务扭转局面,知乎夸爆的微服务学习笔记到底有多牛?

我们现在的服务-微服务 我感觉微服务不是一个架构&#xff0c;而是像一个生态&#xff0c;应用与应用之间互相独立&#xff0c;却又彼此依赖。通过 DDD 的模型来设计一个地图&#xff0c;把合适的代码放到合适的地方去。实现微服务涉及的工具太多&#xff0c;以下我采用spring…

Python -- 多任务、进程、线程

文章目录 多任务的介绍多任务的执行方式 进程进程的概念进程的作用进程的使用多进程获取进程编号 进程执行带有参数的任务介绍args参数和kwargs的使用 进程注意点进程之间不共享全局变量主进程会等待所有子进程执行结束再结束 线程介绍概念 线程的作用多线程的使用线程执行有参…

在OpenCV中进行图像预处理

今天&#xff0c;我们进一步深入&#xff0c;并处理在图像处理中常用的形态学操作。形态学操作用于提取区域、边缘、形状等。 什么是形态学操作&#xff1f; 形态学操作是在二值图像上进行的。二值图像可能包含许多不完美之处。特别是由一些简单的阈值操作产生的二值图像&#…

2023-07-10 cmake管理的项目中使用vcpkg管理第三方库

一、安装 从Github上克隆Vcpkg仓库然后执行安装命令即可&#xff1a; git clone https://github.com/microsoft/vcpkg .\vcpkg\bootstrap-vcpkg.bat 安装自己需要的第三方库 .\vcpkg\vcpkg install [packages to install] 更多教学可参考&#xff1a; https://learn.microsoft…

kubenetes手动安装V1.22.4

kubenetes手动安装V1.22.4 1、主节点和工作节点需要的组件 提示&#xff1a;为了方便测试请关闭selinux、关闭防火墙、swap. SELinux防火墙的设置&#xff1a; [rootlocalhost]#getenforce Disabled # 修改/etc/selinux/config文件 vim /etc/selinux/config 将SELINUXenfor…

【python】Excel文件的读取操作

测试用例.xlsx文件内容 利用xlrd模块读取文件 import xlrdfilename 测试用例.xlsx # 读取Excel表文件 wb xlrd.open_workbook(filename) # 读取Excel表中的第一个工作表 sheet wb.sheet_by_index(0) # 读取有内容的表格行数 rows sheet.nrows # 读取有内容的表格列数 cols…

嵌入式系统之ADC采样

嵌入式系统往往会有模拟信号的采集&#xff0c;比如模拟传感器温度、压力、流量、速度、光强等模拟量&#xff0c;经过放大整形滤波电路后送给ADC芯片&#xff0c;将电信号转转变成离散的数字量这个过程称之为AD采样&#xff0c;AD采样应用广泛&#xff0c;普遍遵循采样率3倍于…

ES 知识体系

https://www.easyice.cn/archives/367

【力扣算法03】之正则表达式匹配- python

文章目录 问题描述示例 1示例2示例3提示 思路分析代码分析完整代码运行效果及示例代码示例代码1运行结果示例代码2运行结果示例代码3运行结果 完结 问题描述 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。 ‘.’ 匹配任意…

企业省时又省力:人工智能电话客服机器人的广泛应用

人工智能技术的崛起正深刻地改变着各个行业&#xff0c;其中之一便是客服领域。过去&#xff0c;人们常常在电话中与生硬的自动语音应答机打交道&#xff0c;这种体验常常令人沮丧。然而&#xff0c;随着人工智能电话客服机器人的广泛应用&#xff0c;企业不仅能够省时又省力&a…