- 博客(356)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 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
450
1
原创 cesium for unreal加载WMTS服务
主体逻辑参照TMS类,稍加改造即可;3D Tiles的渲染调度逻辑TMSLayer的渲染调度逻辑加载arcigs暗黑风格效果
2022-04-08 21:00:34
3525
10
原创 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
4111
4
原创 马走日最短路径-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
768
原创 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
1956
原创 cesium for unreal源码编译学习(一)
对于n年没碰过C++,unreal也不怎么熟悉的人来说,编译操作一脸懵逼,但还是想弄清楚编译过程中在做啥,所以耐着性子慢慢查了下;编译的步骤官方仓库readme有,但不够详细本文参照 用源码编译Cesium for Unreal - 知乎一文做;...
2022-03-07 09:59:42
2369
原创 函数内部获取函数名称,webpack配置非严格模式打包
网上文章很多,但是最终都未实现;经个人实践,解决几个问题一般的解决方案都是在.babelrc中增加plugins的处理,但我配置的无这个文件直接在根目录新建即可,有些工程
2022-03-03 14:29:23
947
原创 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
1525
原创 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
1982
原创 下载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
1519
1
原创 ./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
435
原创 webpack打包 模块名称大小写更改
某些项目类库和ui工程在一块儿,长江的类库名称为小写,但类库模块名称为大写导致引用错误js文件配置css配置,需要注意的是MiniCssExtractPlugin低版本不支持函数传入最新版本打包会有weakmap的报错,我试了一个1.2.1的版本可以兼容...
2021-11-25 16:08:11
879
原创 nodejs将多个模块合并为一个模块打包
项目是基于库上二次开发,打包的时候需按版本输出,将新建的功能按需打入commonjs规范不是很熟,按下述方法可以把基本版和中级版新加的内容添加进去export * from '../basic/index.js';import Popup from '../../extend/Popup'export { Popup}...
2021-11-19 12:00:06
1424
原创 cesium 自定义地形 heightmap无法获取最大层级高层
使用该函数 sampleTerrainMostDetailed(terrainProvider, positions),只能获取第一级高层。官方地形服务使用的是STK地形QuantizedMeshTerrainData会为节点创建子节点,sampleTerrainMostDetailed时,会向下寻找最高精度的地形瓦片,但是高度图没有,导致该函数不生效,整理源码发现STK接收terrain数据buffer的逻辑太过复杂,使用sampleTerrain,获取指定层级的高程更加简单。im...
2021-10-12 11:42:46
1224
原创 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
2062
3
原创 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
418
原创 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
1048
原创 模板字符串 元素增加事件
<!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
982
原创 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
1014
4
原创 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
829
原创 化繁为简 -webgl -framebuffer的使用
fbo在webgl中很常见,但在cesium的开发工作中基本用不到,而源码修改时,这又是必经的一条道,因此,转头回去学习了一下fbo的使用;由于原文的fbo使用了贴图,相对复杂,不利于理解,本人在理解的时候就移除了部分内容;fbo一词尝与离屏渲染相关联,webgl系统默认绑定的是窗口缓冲区,即绑定的shaderprogram会把对应的数据直接绘制到屏幕上,但是很多时候,绘制的直接结果不是我们想要的,因此可以使用fbo即帧缓冲区。渲染流程图,实际上渲染到fbo与渲染到屏幕上的流程没有任何差异...
2021-04-16 14:45:08
1800
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
1651
原创 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
1316
原创 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
515
原创 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
1448
1
原创 monaco编辑器,资源引用路径
示例中的代码路径最终会打包到editor.js中,而该文件是相对于index.html路径的,因此书写相对于index.html的资源路径即可
2021-01-13 15:46:46
512
原创 monaco 编辑器 键盘事件冲突
其实本质问题是iframe的事件传递问题this.container为iframe,由于componentDidMount无法表征ifram的渲染状态,采用延时执行,起始iframe本身是具有函数可用的;函数内主要做两个操作;1点击iframe时,进行focus,使得事件可以传入iframe,并将monaco的编辑状态置为false当mouseup时,开启编辑状态componentDidMount(){ setTimeout( () => { let ..
2021-01-12 19:12:21
745
原创 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
1599
原创 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
1909
原创 react 动态添加类名
classnames的模式并不是特别好用..<span className = {['icon','iconfont',v.className].join(' ')}></span>
2020-10-13 11:16:19
1426
原创 根据经纬度范围爬取底图-以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
1386
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
1964
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
734
postgresql+postgis.zip
2019-08-07
numpy,pandas,matplot常用函数
2019-02-25
高仿饿了么/vue2.0学习笔记
2018-10-02
请问ArcEngine中的图例,目录树下的名称修改了如何保存到文件中。
2017-07-05
请问一下基于ArcEngine来建立三维模型,为什么显示不了呢
2017-04-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人