1、选线项目:用户可以导入kml、kmz、shp、dxf、dwg等多种要素文件,解析存入到sqlite数据库中,通过动态矢量切片技术,生成对应的mvt格式、pbf格式或者dat格式文件,解析坐标并画到场景中;面对上千万的要素,管理项目树结构则需要用到虚拟树结构来管理、大数据量的运算,也会有用到ILPGU运算。
2、三维展示系统项目:搭建vue2生态环境,安装esri-loader与cesium等业务js,安装异步框架Rxjs,封装api层;利用webWorker多线程机制,加载三维场景大数据,控制js内存管理;利用工厂模式与其他设计模式封装多复用的js代码; 优化方案:因为用到了多线程机制,一个webWorker子线程开销有5MB左右,虽然64位web8引擎浏览器容量是1.4G,但也经不起这样消耗,所以,需要利用线程池来管理线程安全不阻塞,防止线程频繁的创建和终止消耗内存,还要对垃圾线程进行清理,释放资源。
3、三维产品:使用osg加载在线的地图影像切片数据,高程则是解析dem或者tif数据设置osg高度数据并创建几何体来显示高程网格,倾斜数据则是通过Gdal库解析Osgb格式切片,生成对应的纹理图加载到场景中;点云数据则是通过解析las格式文件获取所有的点;再将所有的点合成模型加载到场景中。
4、一张图:single—spa暂不支持webpack,所以需要手动配置single-spa.config.js内容,配置加载函数与活动函数,还有注册子项目的应用名称; 优化方案:因为是多系统,多技术,风格不统一,所以,需要制定同一风格,然后根据各系统的组件,找相同的组件,封装成同一套组件库;使得风格统一。
5、OA管理系统:用npm安装react脚手架配置开发环境测试环境,安装react-router路由器,安装axios异步跨域,并封装请求拦截器的token与响应拦截器错误状态跳转,安装less样式扩展语言;安装antd-ui框架,在package.json中配置开发环境,并中转了业务所用到的AMD模块的js;配置路由器,将用Redux配置状态管理以及全局函数和全局变量,编写单元测试。