实际项目中遇到的问题

openlayer二维遇到的困难

缓冲区查询

业务比较复杂

点击按钮,三个选择框,点,线,面的缓冲区。选择缓冲区半径

openlayers绘制图标,拉框查询

鼠标点击的位置画蓝色高亮显示,中间用线连接

组成一个鼠标点击点位的经纬度的数组,

将这个数组传到truf对应需求的格式中去结合缓冲区半径得到一个缓冲区的范围buffer,以红色在地图上叠加显示。

同时将这个生成的buffer 和各个要选的要素(这个要素用wfs查询)的图层做一个交查询,遍历这些图层。

将查询到的信息结果集,以layui弹窗用数据表格的形式显示出来。

双击表格上的单个要素,可以定位到这个要素的位置并高亮显示

最后清空一些必要的中间数据,方便下次操作

wfs查询

promise查询

cesium三维遇到的问题

插入属性数据

3dtiles

gltf

等格式的模型,没有属性信息。一般是模型自带的,用到点击查询的时候可能不能全面的展示,没有shp那种二维的服务。

点击查询,拿到这个entity的时候

通过js 给这个模型对象添加属性信息,从数据库或者是一些json文件。然后属性查询的时候弹出层根据属性信息显示想要的弹窗或者是表格。

全景

算法

大地坐标》当地水平坐标

当地水平坐标》载体坐标

载体坐标》像空间直角坐标

》像空间球坐标

》像素坐标

》屏幕坐标

业务

krpano/

xml

js

操作

三层canvas,一层全景图片层,一层隐藏的TIFF层,一层画图层

点击按钮获取当前全景图片的ID号

隐藏的canvas 加载当前ID号8000x4000的全景TIFF图片

鼠标点击全景图片上,获取当前的鼠标点击位置的屏幕坐标,通过全景球坐标计算得到这个点在那张8000x4000全景图上的行列号

行列号到刚才加载的TIFF图层中,读取这个点的RGB值

点云深度图,就是把这个点云到摄影中心的距离以RGB信息保存在深度图中

RGB得到距离值

然后将这个距离值 和 行列号 传入算法模块,返回鼠标点击位置的大地坐标。可以计算距离了

posted @ 2021-11-14 23:12  zcbj588  阅读(57)  评论(0)    收藏  举报