自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(356)
  • 资源 (8)
  • 问答 (2)
  • 收藏
  • 关注

原创 python制作云词图

云词图

2022-11-09 16:26:24 574 1

原创 meteor项目部署-

以 semantic-segmentation-editor 开源项目为例curl -sL https://deb.nodesource.com/setup_13.x | sudo bash -sudo apt install nodejsnpm config set registry https://registry.npm.taobao.orgcurl https://install.meteor.com > install.meteor.sh更改为本机下载地址https://static-meteor

2022-06-01 19:07:57 347 1

原创 cesium for unreal加载WMTS服务

主体逻辑参照TMS类,稍加改造即可;3D Tiles的渲染调度逻辑TMSLayer的渲染调度逻辑加载arcigs暗黑风格效果

2022-04-08 21:00:34 3104 11

原创 cesium for unreal源码编译学习(三)完整步骤

折腾了两周,总算是编译出来;参照官方文档:​​​​​​https://github.com/CesiumGS/cesium-unreal/blob/main/Documentation/developer-setup-windows.md1 尝试过使用vs2017和2019分别编译,但都未成功;最后一次卸载掉vs2017,再安装2019进行编译(有vs2017也不要卸载,保留,后续会用到);cmake -B build -S . -G "Visual Studio 16 2019" -A x

2022-04-01 14:05:05 3546 3

原创 马走日最短路径-js解法

function Node(x,y,step) { this.x = x; this.y = y; this.step =step;}function inBound(x,y,m,n) { return (x<m &&x>=0 && y>=0 && y<n)}function findMinStep(x0,y0,x1,y1,m,n) { let node = new Node(x0,.

2022-03-22 12:36:36 652

原创 cesium for unreal源码编译学习(二)

源码中可以看到包含两个工程一个是cesium for unreal ,一个是cesium-native;cesium for unreal的工程中分两个文件夹CesiumEditor和CesiumRuntime顾名思义,跟UE的编辑模式和运行模型类似;先随便看看CesiumEditor中的内容,无论是editor还是runtime都有一个build.cs;很容易才想到这个是UE4和cesium通信的桥梁;查看大致的内容就是会把cesium-native中的大量类include进来

2022-03-09 10:39:24 1618

原创 cesium for unreal源码编译学习(一)

对于n年没碰过C++,unreal也不怎么熟悉的人来说,编译操作一脸懵逼,但还是想弄清楚编译过程中在做啥,所以耐着性子慢慢查了下;编译的步骤官方仓库readme有,但不够详细本文参照 用源码编译Cesium for Unreal - 知乎一文做;...

2022-03-07 09:59:42 1993

原创 函数内部获取函数名称,webpack配置非严格模式打包

网上文章很多,但是最终都未实现;经个人实践,解决几个问题一般的解决方案都是在.babelrc中增加plugins的处理,但我配置的无这个文件直接在根目录新建即可,有些工程

2022-03-03 14:29:23 838

原创 indexBD可使用空间查询

if (navigator.storage && navigator.storage.estimate) { const quota = await navigator.storage.estimate(); // quota.usage -> 已用字节数。 // quota.quota -> 最大可用字节数。 const percentageUsed = (quota.usage / quota.quota) * 100; console.log(`您已使.

2022-01-20 10:49:12 1062

原创 cesium渲染半透明物体无效

先看神庙的测试对比图正常webgl渲染半透明物体需要执行OIT但是查看model.js中的isTranslucent 值为false,scene.js中的PASS.Translucent drawcommond.length=0,可以肯定的是该物体未走OIT渲染;实际上cesium源码在处理半透明物体时,会通过alpha测试丢弃掉小于阈值的片元,我所用的工程集成了three.js的pbr源码,源码中需要宏定义ALPHATEST才会生效导致cesium一直无法正..

2022-01-05 17:23:00 1679

原创 下载cesium ION资源

有两种方式,一种是遍历全量下载另一种是根据已经请求到的下载需要在Cesium3DTile.prototype.requestContent函数中将请求到的arrabuffer下载function downloadFile(name,blob){ const url = window.URL.createObjectURL(new Blob([blob])) const link = document.createElement('a') link.style.display = '

2022-01-04 15:23:20 1222

原创 ./cesium/source/thirdparty/zip.js 6365:57

cesium185之后使用webpack启动会报modul parse failed:unexpected token错误解决方法在webpackmodules中增加对worker的解析逻辑package.json中增加配置并安装 "@open-wc/webpack-import-meta-loader": "0.4.7"

2021-12-09 11:54:52 328

原创 webpack打包 模块名称大小写更改

某些项目类库和ui工程在一块儿,长江的类库名称为小写,但类库模块名称为大写导致引用错误js文件配置css配置,需要注意的是MiniCssExtractPlugin低版本不支持函数传入最新版本打包会有weakmap的报错,我试了一个1.2.1的版本可以兼容...

2021-11-25 16:08:11 756

原创 nodejs将多个模块合并为一个模块打包

项目是基于库上二次开发,打包的时候需按版本输出,将新建的功能按需打入commonjs规范不是很熟,按下述方法可以把基本版和中级版新加的内容添加进去export * from '../basic/index.js';import Popup from '../../extend/Popup'export { Popup}...

2021-11-19 12:00:06 1196

原创 cesium水波纹

涟漪原理参考

2021-10-20 11:17:18 1026 3

原创 cesium 自定义地形 heightmap无法获取最大层级高层

使用该函数 sampleTerrainMostDetailed(terrainProvider, positions),只能获取第一级高层。官方地形服务使用的是STK地形QuantizedMeshTerrainData会为节点创建子节点,sampleTerrainMostDetailed时,会向下寻找最高精度的地形瓦片,但是高度图没有,导致该函数不生效,整理源码发现STK接收terrain数据buffer的逻辑太过复杂,使用sampleTerrain,获取指定层级的高程更加简单。im...

2021-10-12 11:42:46 976

原创 echarts 图例文字添加背景

大屏有个需求是在图例每一项中添加背景色查了一下echarts的API只支持配置全局的背景色,没办法实现就采取了添加canvas再绘制的方式 let parentDiv = chartDom.firstElementChild; let initCanvas = parentDiv.firstChild let canvas = document.createElement('canvas'); canvas.width = in

2021-06-30 17:56:10 1814 2

原创 vue background 图片打包后引用错误

网上有很多文章写build路径改为相对uitls.js增加publicPath: '../../'的,实际上打包后都无用正确是使用require引入<div class="img" :style="{backgroundImage:`url(${require('../../../static/image/'+input.imgName+'.png')})`}"></div>...

2021-06-22 09:25:38 290

原创 webgl2 实现msaa

官网上的示例加了许多新东西,不太利于理解,因此自己重新实现了一遍主要就是renderbuffer后进行blit的操作。直接替换掉 webgl指南源码中的framebufferObject中的代码即可,将context改为webgl2// HelloQuad.js (c) 2012 matsuda// Vertex shader program//顶点坐标,纹理坐标,模型视图矩阵,将顶点着色器中的纹理坐标传递给片元v_TexCoord纹理坐标var m_VSHADER_SOURCE =

2021-05-15 18:30:53 851

原创 模板字符串 元素增加事件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="http://at.alicdn.com/t/font_2090302_3rtv8f729nq.js"></script> <styl.

2021-05-06 20:58:15 872

原创 h5 推流rstp

网上关于该需求的博客很多,但能直接用的很少,经个人实践后提供一个最简版本;思路是基于B站的开源播放器flv.js和后台 ffffmpeg转换express工程package.json{ "name": "express", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" &...

2021-05-06 10:12:14 838 3

原创 webgl draw_buffers mrt

主题逻辑与framebuffer的实现没有什么区别,主要的区别在于初始化frameuffer时,要调用draw_buffers,着色器中使用gl_fragData数组开启扩展,渲染流程如下:shader部分初始化帧缓冲区部分使用texture部分原始代码 (本文所用的代码均截至webgl指南源码的framebufferObjects中,可以用下面代码直接替换原书中的代码即可)// HelloQuad.js (c) 2012 matsuda//...

2021-04-16 16:42:05 655

原创 化繁为简 -webgl -framebuffer的使用

fbo在webgl中很常见,但在cesium的开发工作中基本用不到,而源码修改时,这又是必经的一条道,因此,转头回去学习了一下fbo的使用;由于原文的fbo使用了贴图,相对复杂,不利于理解,本人在理解的时候就移除了部分内容;fbo一词尝与离屏渲染相关联,webgl系统默认绑定的是窗口缓冲区,即绑定的shaderprogram会把对应的数据直接绘制到屏幕上,但是很多时候,绘制的直接结果不是我们想要的,因此可以使用fbo即帧缓冲区。渲染流程图,实际上渲染到fbo与渲染到屏幕上的流程没有任何差异...

2021-04-16 14:45:08 1502 1

原创 cesium drillPick实现原理

首先谈谈webgl的pick实现原理:即给每一个渲染的物体绑定一个唯一的id,在内存中这个是很容易做到,但是GPU只有渲染的图像,没有像内存一样的东西(这也是为何调试shader只能通过颜色来判断)因此要绑定这个id,则需要用相应的颜色来记录这个id,颜色的表示方法为rgba(1,1,1,1),每个分量的取值范围为0-255,因此cesium可记录的最大的pickid entity限制为256*256*256*256 =2的32次方,刚好是一个Uint32的记录长度。_nextPickColor会依次递

2021-03-31 17:08:54 1405

原创 react big data Tree组件

项目需求遇到一个需渲染超大树结构数据,antd官方提供的tree组件并不能满足,因此通过网上资料自己写了一个big tree的组件;主要参照:https://github.com/Bowiezhang/vue-bigDataTree,但原文是基于vue的组件,且对于数据格式没有说明,因此写下本博客方便后人使用;核心原理:div下属两个div,一个div (real-tree-wrapper)代表真实的树高度,该树仅起支撑div的作用;另一个div (virtual-tree-wr..

2021-03-09 15:08:52 639

原创 react 函数式组件使用ref

子组件const FancyInput = React.forwardRef((props, ref) => { let [searchRes,setSearchRes] = useState([]); useImperativeHandle(ref, () => ({ searchRes })) return <input ref={inputRef} type="text" />});父组件 let SystemTree = us

2021-03-09 13:32:30 462

原创 gjc02转wgs84 基于postgis

其实各种方法网上都有现成的代码;实践过的主要是两种一个是基于nodejs的coordTransfromhttps://github.com/xinkuan-jack/CoordTransfrom另一个是基于postGIS来实现源代码参见,也放一份至文末https://blog.csdn.net/qq_28459505/article/details/91969514使用postgis的好处是几乎不用编写代码,不仅可以完成坐标转换,也支持线面图形的整体转换,也可应用于服务端...

2021-02-02 15:02:42 1073

原创 monaco编辑器,资源引用路径

示例中的代码路径最终会打包到editor.js中,而该文件是相对于index.html路径的,因此书写相对于index.html的资源路径即可

2021-01-13 15:46:46 386

原创 monaco 编辑器 键盘事件冲突

其实本质问题是iframe的事件传递问题this.container为iframe,由于componentDidMount无法表征ifram的渲染状态,采用延时执行,起始iframe本身是具有函数可用的;函数内主要做两个操作;1点击iframe时,进行focus,使得事件可以传入iframe,并将monaco的编辑状态置为false当mouseup时,开启编辑状态componentDidMount(){ setTimeout( () => { let ..

2021-01-12 19:12:21 591

原创 gltf数据结构

2020-12-30 18:44:14 314

原创 react 父组件调用自组件方法,forwardRef与connect联合使用

简单的调用网上很多,主要这两个联合https://www.jianshu.com/p/9a41f3dc8468父组件let Draw = (props) => { let {headername,addCancelTools} = props; let [selIndex,setIndex] = useState(0); const childRef=useRef(); console.log(childRef) if(childRef.current){ c

2020-10-22 10:32:50 1499

原创 .webpackrc文件配置项目

https://www.npmjs.com/package/roadhog

2020-10-16 09:38:06 1856

原创 css 小于10像素字体

原理是利用css的transform元素的font-size和宽高都要先翻倍,然后设置transform-origin: left;属 .gravityTip{ font-size: 20px; transform: scale(0.5); margin:4px 11px; width: 204px; line-height: 28px; transform-origin: l.

2020-10-15 09:36:54 1798

原创 react 动态添加类名

classnames的模式并不是特别好用..<span className = {['icon','iconfont',v.className].join(' ')}></span>

2020-10-13 11:16:19 1365

原创 webpack-dev-server 浏览器中显示原始代码

阅读源码时,webpack会将引入的路径添加到代码中,影响阅读只需要加这个配置即可

2020-10-10 11:33:59 461

原创 根据经纬度范围爬取底图-以mapbox黑色底图为例

智慧城市项目中经常会涉及到离线部署的问题,底图就是不得不解决的一个问题点了。此前写过的底图爬虫适用于全球底图的爬取,但实际上很多时候做的只是一个范围的,不需要那么大的数据量,因此写了一个根据经纬度范围爬取的脚本。mapbox底图需要自己申请tokenimport mathimport osimport urllib.request#起始经纬度startCoor=[119.2,35.2]#终止经纬度endCoor=[121.1,37.2]#下载目录rootDir=r"D:\cs

2020-10-09 10:39:53 1201 1

原创 webgl导出视频,cesium导出为视频

主要是基于MediaStreamRecorder来实现https://github.com/streamproc/MediaStreamRecordervar MediaStreamRecorder = require('msr');const chunks = new Set()let mediaRecordfunction createRecord () { const mediaStream = viewer.canvas.captureStream(10) // 设置帧频率

2020-09-22 16:23:49 1720 1

原创 react 可拖动组件 嵌套iframe bug

可拖动组件react-draggable再结合iframe时鼠标事件会失效,因此在iframe上面嵌套一层div即可。 <Container> <LeftContent width={leftBoxWidth}> <div className="editor-col dragleft"> <Tabs ...

2020-09-15 13:02:06 592

原创 element动态合并列

在合并列的时候,需要处理不合并的逻辑,否则会导致列值列表样式混乱原来是这么写的,有问题

2020-08-17 10:04:59 241

原创 element实现纵向表头

主要是基于element提供的行列合并入口,并对列样式进行设置合并函数:table

2020-08-14 17:59:56 3760 2

瓦片地图资源样例.zip

放一个样例在csdn上,方便了解瓦片地图的加载。

2020-07-15

postgresql+postgis.zip

postgresql11.2和postgis2.5.1安装包。官网下载太慢,放一个在csdn上。 安装过程中可能出现Problem running post-install step. Installation may not complete correctly. The database cluster initialisation failed.错误 只需要 1.找到安装目录下data文件夹,右键属性,把只读勾掉,先不要只读; 2.再运行安装程序,进行update安装,database locale要选C。就可以了

2019-08-07

loadMVT.zip

cesium加载pbf矢量切片,主要是在文件中添加时间线图片。第二个是修改cesium.js中的一行源码,使得代码能够正确运行

2019-08-05

numpy,pandas,matplot常用函数

很多方法都只列出了一个目录,详细的内容需要去对应的API文档看,本文档的作用是对于初学可以感受到numpy,pandas可以做哪些数据分析,而不用自己一步一步敲代码,整体感知。

2019-02-25

基于arcgis的python编程秘籍

由于国外站比较慢,因此分享一个在csdn上。

2019-01-05

高仿饿了么/vue2.0学习笔记

由于高仿饿了么视频教程是基于vue1.0的,在学习过程中遇到不少坑。本文档记录了在学习中遇到的很多问题,也记录了许多vue的常用功能,如出组件通信,props传值,v-for的使用,等适合初学者学习,现在共享出来方便后来者学习。

2018-10-02

postgis jar包

postgis的官网上不去,希望给有需要的朋友。可以后台连接数据库。

2017-10-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除