当前位置: 首页 > news >正文

可视化项目 gis 资源复用思路(cesium)

文章目录

  • 可视化项目 gis 资源复用思路
    • 底图、模型替换思路
    • 具体操作

可视化项目 gis 资源复用思路

请添加图片描述
背景: A项目的底图、模型 是现在在做的 B项目所需要的,现在要把 B项目的底图之类的替换成 A系统的

底图、模型替换思路

观察可访问系统的 gis 相关网络请求(找到瓦片底图图片、json 文件、3d模型文件的网络请求)

去代码中定位(关键路径,比如 myMapApi/CQKSHMAP,去搜到相关代码,进行两份代码对比)

分析关联代码,将地址路径拼接正确(目的是为了加载、访问同一份资源,即复用)

查看控制台相关报错,针对性解决报错(可能会缺少相关配置文件,复制过来直接使用)
请添加图片描述


具体操作

更改地图加载配置:src\views\components\common\myMap.vue

  • initMap 需要对比着两份文件去改

    • 更改资源请求路径

      • 大致就是配置请求 base路径

      • 瓦片加载地址(earth.sceneTree.root

      • 白模、精模加载地址(this.urls = '/api/myMapApi'

        • 精模、白模都是通过 this.add3DTiles(……) 加载的

        • this.add3DTiles('/CQKSHMAP/tileset.json', null, true) // ……白模
          this.add3DTiles('/CQKSHMAP/xiaolongkan/tileset.json', false, -225.4756439025631) // 小龙坎白模
          this.add3DTiles('/CQKSHMAP/ciqikou/tileset2.json', true, -187.74468302780863) // 磁器口精模
          this.add3DTiles('/CQKSHMAP/sanxia/tileset.json', false, -206.62957102924753) // 三峡精模
          

(↓ 这部分是基于项目做的额外处理)

  • 更改3D地球默认视角配置(flyToDeafultView()

  • 更改过滤点范围(超出范围的点位将不被渲染)

    • 基于 2024.4 自己优化修复的无效点位造成地图消失问题,需要配置
  • 更改加载的道路流光数据

    • 将新要到的道路数据放到 public\Data 目录下,并修改 common.getJson("../Data/spbroad.json") 为对应的路径
addLightLine () {let vm = this;common.getJson("../Data/spbroad.json").then(res => {var lines = [];res.data.features.forEach((item, index) => {var line = [];var coordinates = item.geometry.coordinates[0];for (var i in coordinates) {line.push(coordinates[i][0], coordinates[i][1]);}lines.push(line);});vm.createFlyLines(lines)}).catch()
},initMap () {//默认代理// var mapUrl = "/mapTile/{z}/{x}/{y}.png";if (process.env.NODE_ENV === 'development') {this.urls = '/api/myMapApi'this.modelurl = '/api/glbApi'} else {// mapUrl = "/ksh3Dfile/CQKSHMAP/{z}/{x}/{y}.png";this.urls = window.location.protocol + '//' + window.location.host}var Cesium = this.Cesiumvar earth = new window.XE.Earth('map', {timeline: false,animation: false,geocoder: false,canAnimate: false,homeButton: false,sceneModePicker: false,baseLayerPicker: false,infoBox: false,shouldAnimate: false,navigationHelpButton: false,sceneMode: Cesium.SceneMode.SCENE3D,//是否以二维的形式展现skyBox: new Cesium.SkyBox({sources: {positiveX: require('@/assets/sky/tycho2t3_80_px.jpg'),negativeX: require('@/assets/sky/tycho2t3_80_mx.jpg'),positiveY: require('@/assets/sky/tycho2t3_80_py.jpg'),negativeY: require('@/assets/sky/tycho2t3_80_my.jpg'),positiveZ: require('@/assets/sky/tycho2t3_80_pz.jpg'),negativeZ: require('@/assets/sky/tycho2t3_80_mz.jpg')}}),})this.initChildrenLength = earth.sceneTree.root.children.lengthconst bloom = earth.postProcess.bloom// 发光特效bloom.enabled = falsebloom.glowOnly = falsebloom.contrast = 128bloom.brightness = -1.2bloom.delta = 1bloom.sigma = 3bloom.stepSize = 5bloom.isSelected = falseconst shadow = earth.effect.shadowshadow.enabled = falseshadow.darkness = 0.32shadow.maximumDistance = 2900000shadow.terrainShadow = falseshadow.softShadows = trueshadow.normalOffset = truethis.viewer = earth.czm.viewerthis.viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK)earth.sceneTree.root = {'children': [{"czmObject": {"name": "百度地图","xbsjType": "Imagery","xbsjImageryProvider": {"XbsjImageryProvider": {"url": this.urls + '/CQKSHMAP/{z}/{x}/{y}.jpg',"srcCoordType": "BD09","dstCoordType": "WGS84"},}}}]}this.viewer.scene.fxaa = truethis.viewer.scene.postProcessStages.fxaa.enabled = truethis.viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#011124')// var CartographicCenter = Cesium.Cartesian3.fromDegrees(106.455139, 29.551507, 1000)// AddCircleScanPostStage(this.viewer, CartographicCenter, 800, scanColor, 1000)this.viewer.scene.globe.depthTestAgainstTerrain = truethis.viewer.scene.skyAtmosphere.show = false// 获取图层列表集合var imageryLayers = this.viewer.imageryLayersvar viewModel = {// 图层亮度,1.0使用未修改的图像颜色。小于1.0会使图像更暗,而大于1.0会使图像更亮brightness: 1.5,// 图层对比度,1.0使用未修改的图像颜色。小于1.0会降低对比度,大于1.0会增加对比度。contrast: 2.25,// 图层色调,单位为弧度,0表示使用未修改的图像颜色hue: 3.0,// 图层饱和度,1.0使用未修改的图像颜色。小于1.0会降低饱和度,大于1.0会增加饱和度。saturation: 3.0,// 应用于该图层的伽马校正,1.0使用未修改的图像颜色。gamma: 0.57}// ---修改地图基础色调var layer = imageryLayers.get(0) || {}layer.brightness = viewModel.brightness// 定义最大视野范围,渲染点位时传入参数启用,在此范围外的点位将被隐藏(每次换完地图记得改)this.visiableRectangle = {west: 106.2857926449792, // 最西边的经度坐标 // latitudeMineast: 106.66852453515835,// 最东边的经度坐标 // latitudeMaxnorth: 30.092818813389517, // 最北边的纬度坐标 // longitudeMinsouth: 29.646487489780533, // 最南边的纬度坐标 // longitudeMax}this.flyToDeafultView() // 封装成了方法,请在方法里更改参数 ↓this.add3DTiles('/CQKSHMAP/tileset.json', null, true) // ……白模this.add3DTiles('/CQKSHMAP/xiaolongkan/tileset.json', false, -225.4756439025631) // 小龙坎白模// this.add3DTiles('/CQKSHMAP/xizhan/tileset.json', -260.94252427098672)this.add3DTiles('/CQKSHMAP/ciqikou/tileset2.json', true, -187.74468302780863) // 磁器口精模this.add3DTiles('/CQKSHMAP/sanxia/tileset.json', false, -206.62957102924753) // 三峡精模},// 飞到默认的视角
flyToDeafultView () {this.viewer.camera.setView({destination: Cesium.Cartesian3.fromDegrees(106.4984112, 29.482837, 3513.312453442188),orientation: {heading: Cesium.Math.toRadians(-30),pitch: Cesium.Math.toRadians(-18),roll: Cesium.Math.toRadians(0)}})
},

更改本地代理(开发环境访问):vue.config.js

proxy: {glbApi: {target: 'https://www.xxx.com:33333', // 换成对应的地址myMapApi: {target: 'http://222.111.111.22:6666/', // 换成对应的地址

更换道路 json 文件:public\Data\spbroad.json

  • 问 负责gis数据这块的同事 要到最新/对应的道路数据 json 文件



------------- END 许愿区 -------------

最近想换工作,有没有大佬捞一下本人5年前端开发工作经验,函授本科学历,软件工程专业毕业,在校有专业竞赛经历并获奖
会做大屏驾驶舱、PC端业务系统、移动端H5应用、uniapp 多端应用开发、原生微信小程序开发(含简单的地图逻辑开发)
意向城市成都、重庆,川渝两省范围优先考虑

相关文章:

可视化项目 gis 资源复用思路(cesium)

文章目录 可视化项目 gis 资源复用思路底图、模型替换思路具体操作 可视化项目 gis 资源复用思路 背景: A项目的底图、模型 是现在在做的 B项目所需要的,现在要把 B项目的底图之类的替换成 A系统的 底图、模型替换思路 观察可访问系统的 gis 相关网络请…...

SQL实战测试

SQL实战测试 (请写下 SQL 查询语句,不需要展示结果) 表 a DateSalesCustomerRevenue2019/1/1张三A102019/1/5张三A18 1. **用一条 ** SQL 语句写出每个月,每个销售有多少个客户收入多少 输出结果表头为“月”,“销…...

Java 基础教学:基础语法-变量与常量

变量 变量是程序设计中的基本概念,它用于存储信息,这些信息可以在程序执行过程中被读取和修改。 变量的声明 在Java中,声明变量需要指定变量的数据类型以及变量的名称。数据类型定义了变量可以存储的数据种类(例如整数、浮点数…...

vue3使用element-plus手动更改url后is-active和菜单的focus颜色不同步问题

在实习,给了个需求做个新的ui界面,遇到了一个非常烦人的问题 如下,手动修改url时,is-active和focus颜色不同步 虽然可以直接让el-menu-item:focus为白色能解决这个问题,但是我就是想要有颜色哈哈哈,有些执…...

每天五分钟深度学习框架pytorch:从底层实现一元线性回归模型

本文重点 本节课程我们继续搭建一元线性回归模型,不同的是这里我们不使用pytorch框架已经封装好的一些东西,我们做这个目的是为了更加清楚的看到pytorch搭建模型的本质,为了更好的理解,当然实际中我们还是使用pytorch封装好的一些东西,不要重复造轮子。 模型搭建 #定义…...

编辑器加载与AB包加载组合

解释: 这个 ABResMgr 类是一个资源加载管理器,它用于整合 AB包(Asset Bundle)资源加载和 编辑器模式资源加载。通过这个管理器,可以根据开发环境选择资源加载方式,既支持 运行时使用Asset Bundle加载&…...

【c++】vector中的back()函数

nums.back() 是 C 中 std::vector 类的一个成员函数,用于获取数组(向量)中的最后一个元素。以下是一些关于 nums.back() 的详细解释和示例使用: 1. 功能 nums.back() 返回数组 nums 中的最后一个元素。如果数组为空,…...

[分享] SQL在线编辑工具(好用)

在线SQL编写工具(无广告) - 在线SQL编写工具 - Web SQL - SQL在线编辑格式化 - WGCLOUD...

element-ui隐藏表单必填星号

// 必填星号在前显示 去掉 .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before { content: !important; margin-right: 0px!important; } // 必填星号在结尾显示 .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__labe…...

自动驾驶系列—激光雷达点云数据在自动驾驶场景中的深度应用

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...

C#删除dataGridView 选中行

关键在于:从最后一行开始删除。 从前往后删只能删除其中一半,我理解是再remove行的时候dataGridView内部行序列发生了变化,包含在选中行中的特定行会被忽略,从后往前删就可避免这个问题,最后一行的行号影响不到前面的…...

K8S调度不平衡问题分析过程和解决方案

不平衡问题排查 问题描述: 1、业务部署大量pod(据反馈,基本为任务型进程)过程中,k8s node内存使用率表现不均衡,范围从80%到百分之几; 2、单个node内存使用率超过95%,仍未发生pod驱逐,存在node…...

Python中类、继承和方法重写的使用

😀前言 本篇博文将介绍如何定义类、创建类的实例、访问类的成员、使用属性、实现继承及方法重写,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以…...

【Neo4j】- 轻松入门图数据库

文章目录 前言-场景一、Neo4j概述二、软件安装部署1.软件下载2.软件部署3.软件使用4.语法学习 总结 前言-场景 这里用大家都了解的关系数据与图数据据库对比着说,更加方便大家理解图数据库的作用 图形数据库和关系数据库均存储信息并表示数据之间的关系。但是,关系…...

LeetCode 206 - 反转链表

解题思路 我们可以使用迭代的方法来实现链表的反转,这里我们先介绍迭代的方法。迭代的思路是:从头节点开始,依次将节点的next指针进行反转,使得当前节点的next指向其前一个节点,然后依次向后移动指针,直至…...

AI生成大片,Movie Gen 可以生成长视频并配上完美的音效,带给观众更好的观看体验。

之前的文章中已经给大家介绍了一些关于长视频生成相关的技术,AI生成大片已经越来越近了。感兴趣的小伙伴可以点击下面链接阅读~ Movie Gen 的工作原理可以简单理解为两个主要部分:一个是生成视频的模型,另一个是生成音频的模型。首先&#x…...

Flink on yarn模式下,JobManager异常退出问题

这个问题排除了很久,其中更换了Flink版本,也更换了Hadoop版本一直无法解决,JobManager跑着跑着就异常退出了。资源管理器上是提示运行结束,运行状态是被Kill掉。 网上搜了一圈,都说内存不足、资源不足,配置…...

面对AI算力需求激增,如何守护数据中心机房安全?

随着人工智能(AI)技术飞速发展,AI算力需求呈现爆发式增长,导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇,从提供稳定的电力供应、优化高密度的部署,到数据安全的隐私保护&…...

Connection --- 连接管理模块

目录 模块设计 模块实现 shared_from_this 模块测试纠错 模块设计 Connection模块是对通信连接也就是通信套接字的整体的管理模块,对连接的所有操作都是通过这个模块提供的接口来完成的。 那么他具体要进行哪些方面的管理呢? 首先每个通信连接都需…...

iconfont图标放置在某个元素的最右边

在网页设计中&#xff0c;如果你想要将iconfont图标放置在某个元素的最右边&#xff0c;你可以通过CSS来实现这个布局。以下是一些基本的CSS代码示例&#xff0c;它们可以帮助你根据不同的布局需求将图标放置在最右边&#xff1a; 内联元素&#xff08;如<span>&#xff…...

告别手动修改!用Env文件管理器一键配置Allegro SKILL加载路径(支持16.6/17.4)

告别手动修改&#xff01;用Env文件管理器一键配置Allegro SKILL加载路径&#xff08;支持16.6/17.4&#xff09; 在PCB设计领域&#xff0c;Allegro作为行业标杆工具&#xff0c;其强大的可扩展性离不开SKILL脚本的支持。然而&#xff0c;随着项目复杂度提升&#xff0c;SKILL…...

计算机网络 之 【网络套接字编程】(固定宽度整数类型、socket常见API、netstat)

目录 一.固定宽度整数类型&#xff08;C11引入&#xff09; 二、socket 常见API socket bind IP地址绑定类型 TCP 编程模型流程图 listen accept connect UDP编程模型流程图 recvfrom 函数 sendto 函数 常用 flags 选项 常用错误码 三、netstat Linux/Unix 选项…...

告别WoMic:用VB-Audio Virtual Cable和TCP Socket自建无线麦克风(含参数配置避坑指南)

无线音频传输方案重构&#xff1a;VB-Audio与TCP Socket的工程实践 在音频处理领域&#xff0c;虚拟麦克风技术一直是个既实用又有趣的话题。许多开发者最初接触这一领域是通过WoMic这样的解决方案&#xff0c;但随着项目复杂度提升&#xff0c;人们往往需要更灵活、更可控的自…...

MATLAB实战:用BEMD算法分解图像并提取特征(附完整代码)

MATLAB实战&#xff1a;二维经验模态分解(BEMD)在图像特征提取中的创新应用 当我们需要从一张X光片中识别微小病灶&#xff0c;或是从卫星图像中提取城市道路网络时&#xff0c;传统图像处理方法往往力不从心。二维经验模态分解(BEMD)就像给图像做"CT扫描"&#xff0…...

MATLAB实战:手把手教你实现FM调制解调(附完整代码与避坑指南)

MATLAB实战&#xff1a;从零构建FM通信系统的完整指南 在无线通信领域&#xff0c;频率调制(FM)技术因其出色的抗噪声性能&#xff0c;至今仍广泛应用于广播、对讲机等场景。对于通信工程学生和MATLAB初学者而言&#xff0c;亲手实现一个完整的FM调制解调系统&#xff0c;是理解…...

OpenOCD入门到精通:第23章 添加新的 JTAG 适配器驱动

第23章 添加新的 JTAG 适配器驱动 导读摘要:OpenOCD 支持 40 余种调试适配器,每种适配器背后都有一个遵循统一接口规范的驱动程序。本章从 adapter_driver 结构体出发,逐一解析其回调函数语义,介绍 libusb/HIDAPI 通信层封装,并通过一个完整的简易驱动实现示例,帮助读者掌…...

资源监控告警:OpenClaw+Qwen3-32B镜像守护个人服务器

资源监控告警&#xff1a;OpenClawQwen3-32B镜像守护个人服务器 1. 为什么需要智能化的个人服务器监控&#xff1f; 去年我的个人服务器连续宕机三次——第一次因为内存泄漏导致OOM崩溃&#xff0c;第二次被挖矿程序占用全部CPU资源&#xff0c;第三次则是磁盘写满后无人察觉…...

终极指南:如何使用Rainmeter构建内存使用趋势预测模型(ARIMA/SVM应用)

终极指南&#xff1a;如何使用Rainmeter构建内存使用趋势预测模型&#xff08;ARIMA/SVM应用&#xff09; 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter作为一款强大的Windows桌…...

基于 eBPF 与 Python 异步代理的嵌入式 OT 网络微隔离架构实战

前言与业务背景最近在主导一个船舶 OT 网络的底层加固项目&#xff0c;遇到了一个典型的边缘计算资源受限问题。根据最新的网络安全规范&#xff08;如 IACS UR E27&#xff09;&#xff0c;边缘节点必须具备跨区域流量的深度过滤以及审计日志的防篡改留存能力。如果照搬传统的…...

轻量级二维码工具性能优化:从加载到部署的全流程实践

轻量级二维码工具性能优化&#xff1a;从加载到部署的全流程实践 【免费下载链接】qrcodejs Cross-browser QRCode generator for javascript 项目地址: https://gitcode.com/gh_mirrors/qr/qrcodejs 二维码生成功能已成为现代Web应用的常见需求&#xff0c;但传统实现方…...