当前位置: 首页 > 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…...

Android10 recent键相关总结

目录 初始化流程 点击Recent键流程 RecentsActivity 显示流程 RecentsModel 获取数据管理类 RecentsActivity 布局 已处于Recent界面时 点击recent 空白区域 点击返回键 recent组件配置 Android10 Recent 功能由 System UI&#xff0c;Launcher共同实现。 初始化流程 …...

Ajax:原生ajax、使用FormData的细节问题,数据的载体

人生海海&#xff0c;山山而川&#xff0c;不过尔尔&#xff1b;空空而来&#xff0c;苦苦而过&#xff0c;了了而去 文章目录 原生ajax使用FormData的细节问题数据的载体 原生ajax 执行顺序 创建xhr对象 var xhr new XMLHttpRequest()调用xhr.open(请求方式, url)函数&#…...

【HuggingFace 如何上传数据集 (2) 】国内网络-稳定上传图片、文本等各种格式的数据

【HuggingFace 下载】diffusers 中的特定模型下载&#xff0c;access token 使用方法总结【HuggingFace 下载中断】Git LFS 如何下载指定文件、单个文件夹&#xff1f;【HuggingFace 如何上传数据集】快速上传图片、文本等各种格式的数据 上文的方法因为是 https 协议&#xf…...

GNOME桌面安装dock

Although GNOME Shell integration extension is running, native host connector is not detected. Refer documentation for instructions about installing connector. sudo yum -y install chrome-gnome-shell...

移动app测试有哪些测试类型?安徽软件测试中心分享

科技信息时代&#xff0c;移动app的出现为我们的生活及工作带来了极大的便利。一款app从生产到上线必不可少的就是测试阶段&#xff0c;app测试是保障产品质量和安全的有效手段&#xff0c;那么移动app测试有哪些测试类型呢?安徽软件测试中心又有哪些? 1、功能性测试   需…...

Android 10.0 截屏流程

通常未通过特殊定制的 Android 系统&#xff0c;截屏都是经过同时按住音量下键和电源键来截屏。本篇文章就只讨论使用这些特殊按键来进行截屏。 这里我们就要明白事件是在哪里进行分发拦截的。通过源码的分析&#xff0c;我们发现是在PhoneWindowManager.java 中。 PhoneWindow…...

Axure零基础深入浅出的讲解

在当今的互联网产品设计领域&#xff0c;原型设计已经成为了产品经理、设计师和开发者之间沟通的桥梁。而Axure作为一款功能强大、灵活易用的原型设计工具&#xff0c;正是很多产品经理的得力助手。无论你是产品经理新手&#xff0c;还是资深设计师&#xff0c;Axure都能帮助你…...

PyTorch求导相关

PyTorch是动态图&#xff0c;即计算图的搭建和运算是同时的&#xff0c;随时可以输出结果&#xff1b;而TensorFlow是静态图。 在pytorch的计算图里只有两种元素&#xff1a;数据&#xff08;tensor&#xff09;和 运算&#xff08;operation&#xff09; 运算包括了&#xf…...

Halcon基础-瓶盖带角度的OCR批量识别

Halcon基础-OCR识别 1、OCR识别素材2、创建路径文件3、Halcon代码实现4、运行效果5、资源获取 1、OCR识别素材 这里我准备了7张不同角度的OCR图片&#xff0c;如下所示&#xff1a; 2、创建路径文件 按照下图所示创建全部文件夹和文件&#xff1a; 01用来存放OCR识别原图 c…...

php语法学习

启动php 进入软件 打开文件&#xff1a;编写代码 $php true; $java false; var_dump($php);//输出变量细节 var_dump($java) 字符串 注意可以使用双引号也可以使用单引号 测试 $php "最好学web语言"; $java 脱胎于c语言; var_dump($php);//输出变量细节 var…...