• 【Mars3d】进行水平测量measure.area({的时候,会被模型遮挡的处理方法


    问题:

    1.thing/analysis/measure 水平面积 measure.area({ 在模型上测量的时候会被遮挡

    2.

    通过 addHeight:10000,增加高度也不可以实现这种被遮挡的效果,都增加到10000了,还是会被遮挡

    export function measureArea() {
    measure.area({
    style: {
    color: '#00fff2',
    opacity: 0.4,
    outline: true,
    outlineColor: '#fafa5a',
    outlineWidth: 1,
    addHeight:10000,
    clampToGround: false //贴地
    }
    })
    }

     

    3.

    可以加clampToGround: true ,只是贴地效果,不影响结果值的时候,在

    测量的是斜面,虽然数值不会错,但是视觉效果看起来就跟贴模型面积一样,容易产生误解。

    就如同这个

    1. export function measureArea() {
    2. measure.area({
    3. style: {
    4. color: '#00fff2',
    5. opacity: 0.4,
    6. outline: true,
    7. outlineColor: '#fafa5a',
    8. outlineWidth: 1,
    9. clampToGround: true //贴地
    10. }
    11. })
    12. }

     

    解决方案:

    1.给测量的水平面积坐标(或坐标数组)赋值修改为 指定的海拔高度值

    2.api文档地址:

    PointUtil - V3.7.5 - Mars3D API文档

    3.相关代码:

    export function measureArea() {

     measure.area({

          // style: {

          //   color: '#00fff2',

          //   opacity: 0.4,

          //   outline: true,

          //   outlineColor: '#fafa5a',

          //   outlineWidth: 1,

          //   clampToGround: false //贴地

          // }

        })

        .then(async (graphic) => {

          const oldPositions = graphic.positionsShow

          const rang = await mars3d.PolyUtil.getHeightRangeByDepth(oldPositions, map.scene)

          graphic.positions = mars3d.PointUtil.setPositionsHeight(oldPositions, rang.maxHeight)

        })

    }

    可以实现水平面积不被模型遮挡的方法。

  • 相关阅读:
    ThreeJS-截屏下载pdf或者图片时白屏
    冒泡排序c++
    策略模式在应用中的实践
    操作系统—死锁
    【Zookeeper】——集群操作
    GBase 8c V3.0.0数据类型——HLL函数和操作符(操作符)
    2022年7月31日 暑假第三周总结
    软件测试之TCP、UPD协议详解
    SpringMVC源码分析(三)HandlerExceptionResolver启动和异常处理源码分析
    PCL库常用算法
  • 原文地址:https://blog.csdn.net/m0_69803146/article/details/136377665