vue中加载Cesium地图(天地图、高德地图)

news2025/6/7 17:44:35

目录

1、将下载的Cesium包移动至public下

2、首先需要将Cesium.js和widgets.css文件引入到

3、 新建Cesium.js文件,方便在全局使用

4、新建cesium.vue文件,展示三维地图


1、将下载的Cesium包移动至public下 

npm install cesium后​​​​​​​

2、首先需要将Cesium.js和widgets.css文件引入到

/* widgets.css */

<link rel="stylesheet" href="./Cesium/Widgets/widgets.css">

/* Cesium.js */

<script type="text/javascript" src="./Cesium/Cesium.js"></script>

3、 新建Cesium.js文件,方便在全局使用

首先获取到Cesium的token;没有的话先创建

获取Cesium的tokenhttps://ion.cesium.com/

加载天地图需要获取天地图Key天地图 登录https://console.tianditu.gov.cn/api/key

cesium.js文件

Cesium.Ion.defaultAccessToken = "自己的token"
// Cesium.Camera.DEFAULT_VIEW_FACTOR = 0 //摄像机视口远近参数,可设置地球大小,大于零会使它远离范围,而小于零会使它接近范围
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(
  90,
  -20,
  110,
  90
); //设置默认显示中国正上方

// 加载天地图需要天地图的Key
const TDTTK = "自己天地图的Key";

let viewer;

export function initCesiumMap(target) {
  // const Cartesian = Cesium.Cartesian3.fromDegrees(0, 0, 500.0)
  viewer = new Cesium.Viewer(target, {
    animation: false, // 是否显示动画控件
    shouldAnimate: false, // 是否初始时刻运动
    homeButton: false, // 是否显示Home按钮
    fullscreenButton: false, // 是否显示全屏按钮
    baseLayerPicker: false, // 是否显示图层选择控件 去掉自带的图层选择器
    geocoder: false, // 是否显示地名查找控件,设置为true,则无法查询
    timeline: false, // 是否显示时间线控件
    sceneModePicker: false, // 是否显示投影方式控件 三维/二维
    navigationHelpButton: false, // 是否显示帮助信息控件
    infoBox: false, // 是否显示点击要素之后显示的信息 信息框小部件
    baseLayerPicker: false, // 不显示底图选择器,如果你只想用默认底图的话
    requestRenderMode: false, // true启用请求渲染模式:更新实体需拖动地图 视图才更新[true 加载完entity后requestRender一下]
    scene3DOnly: false, // 每个几何实例将只能以3D渲染以节省GPU内存 如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
    sceneMode: 3, // 初始场景模式 1 2D模式 2 2D循环模式 3 3D模式  Cesium.SceneMode
    scene3DOnly: true, // 仅显示3D场景
    fullscreenElement: document.body, // 全屏时渲染的HTML元素
    selectionIndicator: false, // 是否显示选取指示器组件
  });
  viewer._cesiumWidget._creditContainer.style.display = "none"; // 隐藏版权信息
  const imageLayers = viewer.scene.imageryLayers;
  imageLayers.remove(imageLayers.get(0)); //移除默认影像图层

  // 设置中心点为特定的经纬度(例如:经度116.38,纬度39.9)
  // viewer.camera.setView({
  //     destination: Cesium.Rectangle.fromDegrees(90, -20, 110, 90)
  // });

  /*
   * 天地图
   */
  // // 天地图影像
  // const tdtLayer = new Cesium.WebMapTileServiceImageryProvider({
  //   url: `http://t0.tianditu.com/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={TileMatrix}&TILEROW={TileRow}&TILECOL={TileCol}&tk=${TDTTK}`,
  //   layer: "tdt",
  //   style: "default",
  //   format: "image/jpeg",
  //   tileMatrixSetID: "w",
  //   maximumLevel: 18,
  //   show: false,
  // });
  // viewer.imageryLayers.addImageryProvider(tdtLayer);
  // // 天地图注记
  // const tdtAnnotionLayer = new Cesium.WebMapTileServiceImageryProvider({
  //   url: `http://t0.tianditu.com/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={TileMatrix}&TILEROW={TileRow}&TILECOL={TileCol}&tk=${TDTTK}`,
  //   layer: "tdtAnno",
  //   style: "default",
  //   format: "image/jpeg",
  //   tileMatrixSetID: "w",
  //   maximumLevel: 18,
  //   show: false,
  // });
  // viewer.imageryLayers.addImageryProvider(tdtAnnotionLayer);

  /*
   * 高德地图
   */
  //高德矢量图
  // let tdtLayer1 = new Cesium.UrlTemplateImageryProvider({
  // 	url: "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
  // 	minimumLevel: 3,
  // 	maximumLevel: 18
  // })
  // viewer.imageryLayers.addImageryProvider(tdtLayer1)
  //高德影像
  let tdtLayer2 = new Cesium.UrlTemplateImageryProvider({
    url: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
    minimumLevel: 3,
    maximumLevel: 18,
  });
  viewer.imageryLayers.addImageryProvider(tdtLayer2);
  //高德路网中文注记
  let tdtLayer = new Cesium.UrlTemplateImageryProvider({
    url: "http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8",
    minimumLevel: 3,
    maximumLevel: 18,
  });
  viewer.imageryLayers.addImageryProvider(tdtLayer);
}

export function getViewerMap() {
  return viewer;
}

4、新建cesium.vue文件,展示三维地图

<template>
  <div id="cesiumContainer" class="cesiumContainer"></div>
</template>

<script>
// 刚才新建的Cesium.js文件
import * as viewerMap from "../components/cesium";
export default {
  data() {
    return {
      viewer: null,
    };
  },
  mounted() {
    this.$nextTick(() => {
      this.initCesium("cesiumContainer");
    });
  },
  methods: {
    initCesium() {
      viewerMap.initCesiumMap("cesiumContainer");

      // ==================== 使用 Entity API 添加点线面 ====================
      // 添加点
      // viewerMap.addEntityPoint()
      // 添加线
      // viewerMap.addEntityLine()
      // 添加半透明多边形
      // viewerMap.addEntityPolygonDiaphaneity()
      // 添加红色多边形(带洞)
      // viewerMap.addEntityPolygon()

      // ==================== 使用 Primitive API 添加点线面 ====================
      // 添加点
      // viewerMap.addPrimitivePoint()
      // 添加线
      // viewerMap.addPrimitiveLine()
      // 添加面
      // viewerMap.addPrimitivePolygon()

      //   添加图片标记点
      // viewerMap.addImgPoint()

      //   添加glb模型
    //   viewerMap.addGLB()

      // 添加使用glb模型进行实时轨迹
        // viewerMap.addGlbTrajectory()

      // 添加使用图片进行实时轨迹
    //   viewerMap.addImgTrajectory();
      this.viewer = viewerMap.getViewerMap();
    },
    clear(){
        viewerMap.clearIntervalEvent();
    }
  },
  beforeUnmount() {
    this.clear()
  },
};
</script>

<style lang="scss">
.cesiumContainer {
  width: 100%;
  height: 100%;
  background-color: black;
}
</style>

这样就可以完整展示出三维地球 

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

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

相关文章

SpringBoot整合RocketMQ与客户端注意事项

SpringBoot整合RocketMQ 引入依赖&#xff08;5.3.0比较稳定&#xff09; <dependencies><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.3.1</version&…

Mysql的卸载与安装

确保卸载干净mysql 不然在进行mysal安装时候会出现不一的页面和问题 1、卸载 在应用页面将查询到的mysql相关应用卸载 2、到c盘下将残留的软件包进行数据删除 3、删除programData下的mysql数据 4、检查系统中的mysql是否存在 cmd中执行 sc deleted mysql80 5、删除注册表中的…

Excel处理控件Aspose.Cells教程:使用 C# 在 Excel 中创建组合图表

可视化项目时间线对于有效规划和跟踪至关重要。在本篇教程中&#xff0c;您将学习如何使用 C# 在 Excel 中创建组合图。只需几行代码&#xff0c;即可自动生成动态、美观的组合图。无论您是在构建项目管理工具还是处理内部报告&#xff0c;本指南都将向您展示如何将任务数据转换…

【多线程初阶】阻塞队列 生产者消费者模型

文章目录 一、阻塞队列二、生产者消费者模型(一)概念(二)生产者消费者的两个重要优势(阻塞队列的运用)1) 解耦合(不一定是两个线程之间,也可以是两个服务器之间)2) 削峰填谷 (三)生产者消费者模型付出的代价 三、标准库中的阻塞队列(一)观察模型的运行效果(二)观察阻塞效果1) 队…

《100天精通Python——基础篇 2025 第5天:巩固核心知识,选择题实战演练基础语法》

目录 一、踏上Python之旅二、Python输入与输出三、变量与基本数据类型四、运算符五、流程控制 一、踏上Python之旅 1.想要输出 I Love Python,应该使用()函数。 A.printf() B.print() C.println() D.Print() 在Python中想要在屏幕中输出内容&#xff0c;应该使用print()函数…

机器人夹爪的选型与ROS通讯——机器人抓取系统基础系列(六)

文章目录 前言一、夹爪的选型1.1 任务需求分析1.2 软体夹爪的选型 二、夹爪的ROS通讯2.1 夹爪的通信方式介绍2.2 串口助手测试2.3 ROS通讯节点实现 总结Reference: 前言 本文将介绍夹爪的选型方法和通讯方式。以鞋子这类操作对象为例&#xff0c;将详细阐述了对应的夹爪选型过…

第二十八章 RTC——实时时钟

第二十八章 RTC——实时时钟​​​​​​​ 目录 第二十八章 RTC——实时时钟 1 RTC实时时钟简介 2 RTC外设框图剖析 3 UNIX时间戳 4 与RTC控制相关的库函数 4.1 等待时钟同步和操作完成 4.2 使能备份域涉及RTC配置 4.3 设置RTC时钟分频 4.4 设置、获取RTC计数器及闹钟 5 实时时…

使用 DuckLake 和 DuckDB 构建 S3 数据湖实战指南

本文介绍了由 DuckDB 和 DuckLake 组成的轻量级数据湖方案&#xff0c;旨在解决传统数据湖&#xff08;如HadoopHive&#xff09;元数据管理复杂、查询性能低及厂商锁定等问题。该方案为中小规模数据湖场景提供了简单、高性能且无厂商锁定的替代选择。 1. 什么是 DuckLake 和 D…

大语言模型提示词(LLM Prompt)工程系统性学习指南:从理论基础到实战应用的完整体系

文章目录 前言&#xff1a;为什么提示词工程成为AI时代的核心技能一、提示词的本质探源&#xff1a;认知科学与逻辑学的理论基础1.1 认知科学视角下的提示词本质信息处理理论的深层机制图式理论的实际应用认知负荷理论的优化策略 1.2 逻辑学框架下的提示词架构形式逻辑的三段论…

如何基于Mihomo Party http端口配置git与bash命令行代理

如何基于Mihomo Party http端口配置git与bash命令行代理 1. 确定Mihomo Party http端口配置 点击内核设置后即可查看 默认7892端口&#xff0c;开启允许局域网连接 2. 配置git代理 配置本机代理可以使用 127.0.0.1 配置局域网内其它机代理需要使用本机的非回环地址 IP&am…

埃文科技智能数据引擎产品入选《中国网络安全细分领域产品名录》

嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;埃文科技智能数据引擎产品成功入选数据分级分类产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解这一蓬勃发展的产业格局&#xff0c;嘶吼安全产业…

NLP学习路线图(二十六):自注意力机制

一、为何需要你&#xff1f;序列建模的困境 在你出现之前&#xff0c;循环神经网络&#xff08;RNN&#xff09;及其变种LSTM、GRU是处理序列数据&#xff08;如文本、语音、时间序列&#xff09;的主流工具。它们按顺序逐个处理输入元素&#xff0c;将历史信息压缩在一个隐藏…

Unity3D仿星露谷物语开发60之定制角色其他部位

1、目标 上一篇中定制了角色的衬衫、手臂。 本篇中将定制角色其他部位的图形&#xff0c;包括&#xff1a;裤子、发型、皮肤、帽子等。 2、定制裤子 &#xff08;1&#xff09;修改ApplyCharacterCustomisation.cs脚本 我们需要设置一个输入框选择裤子的颜色。 // Select …

Google机器学习实践指南(机器学习模型泛化能力)

&#x1f525; Google机器学习(14)-机器学习模型泛化能力解析 Google机器学习(14)-机器学习模型泛化原理与优化&#xff08;约10分钟&#xff09; 一、泛化问题引入 ▲ 模型表现对比&#xff1a; 假设森林中树木健康状况预测模型&#xff1a; 图1&#xff1a;初始模型表现 …

MySQL性能调优:Mysql8高频面试题汇总

1&#xff0c;主键和唯一键有什么区别&#xff1f; 主键不能重复&#xff0c;不能为空&#xff0c;唯一键不能重复&#xff0c;可以为空。 建立主键的目的是让外键来引用。 一个表最多只有一个主键&#xff0c;但可以有很多唯一键 2&#xff0c;MySQL常用的存储引擎有哪些&…

vue+elementUI+springboot实现文件合并前端展示文件类型

项目场景&#xff1a; element的table上传文件并渲染出文件名称点击所属行可以查看文件,并且可以导出合并文件,此文章是记录合并文档前端展示的帖子 解决方案&#xff1a; 后端定义三个工具类 分别是pdf,doc和word的excle的目前我没整 word的工具类 package com.sc.modules…

高效绘制业务流程图!专业模板免费下载

在复杂的业务流程管理中&#xff0c;可视化工具已成为提升效能的核心基础设施。为助力开发者、项目经理及业务架构师高效落地流程标准化&#xff0c;本文将为你精选5套开箱即用的专业流程图模板。这些模板覆盖跨部门协作、电商订单、客户服务等高频场景&#xff0c;具备以下核心…

Spring Boot + Prometheus 实现应用监控(基于 Actuator 和 Micrometer)

文章目录 Spring Boot Prometheus 实现应用监控&#xff08;基于 Actuator 和 Micrometer&#xff09;环境准备示例结构启动和验证验证 Spring Boot 应用Prometheus 抓取配置&#xff08;静态方式&#xff09;Grafana 面板配置总结 Spring Boot Prometheus 实现应用监控&…

PowerBI企业运营分析—列互换式中国式报表分析

PowerBI企业运营分析—列互换式中国式报表分析 欢迎来到Powerbi小课堂&#xff0c;在竞争激烈的市场环境中&#xff0c;企业运营分析平台成为提升竞争力的核心工具。 该平台通过高效整合多源数据&#xff0c;并实时监控关键指标&#xff0c;能够迅速揭示业务表现的全貌&#…

BugKu Web渗透之需要管理员

启动场景&#xff0c;打开网页&#xff0c;显示如下&#xff1a; 一般没有上面头绪的时候&#xff0c;就是两步&#xff1a;右键查看源代码 和 扫描网站目录。 步骤一&#xff1a; 右键查看源代码 和 扫描网站目录。 右键查看源代码没有发现异常。 于是扫描网站目录&…