可视化项目 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图标放置在某个元素的最右边
在网页设计中,如果你想要将iconfont图标放置在某个元素的最右边,你可以通过CSS来实现这个布局。以下是一些基本的CSS代码示例,它们可以帮助你根据不同的布局需求将图标放置在最右边: 内联元素(如<span>ÿ…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...