首页 / 浏览问题 / 三维GIS / 问题详情
entities 绘制线条给添加的图片禁止缩放
72EXP 2022年08月31日

entities绘制出来的线条上面给添加上图片后如何禁止他缩放呢

viewer.entities.add({
            crossguid: crossguid,
            polyline: {     // 平面
              positions: Cesium.Cartesian3.fromDegreesArrayHeights(nodePositionArr),
              width:85,
              material: new Cesium.ImageMaterialProperty({
                image: require("../../image/corssImage/铁路.jpg"),
                repeat: new Cesium.Cartesian2(8, 1)
              }),
              show: true,
              clampToGround: true,
              distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 5000),
            },
          });

效果图:

缩放后:

缩放前:

1个回答

因为polyline的线宽是像素宽度,不会随着场景高度变化而变化,可以用以下方法来控制宽度

scene.postRender.addEventListener(function(){ // 每一帧都去计算气泡的正确位置
  if(flag === true){
    var position = viewer.scene.camera._position;
    var cartographic = Cesium.Cartographic.fromCartesian(position);
    var currtenHeight = cartographic.height;
    for(var i=1;i<=10;i++){
      if(currtenHeight>=perHeight*i && currtenHeight<=(perHeight*i+perHeight)){
        if(currtenHeight<3500){
          river.polyline.width = maxWidth
        }
        else if(currtenHeight>3500 && river.polyline.width._value !== maxWidth-perWidth*i){
          river.polyline.width = maxWidth-perWidth*i
        }
      }
    }
  }
});
271EXP 2022年08月31日
你这个得多卡啊。。。直接shader写呗。
关键是shader这玩意儿能做出这种效果么 不会呀,求大佬指教
...