首页 / 浏览问题 / 三维GIS / 问题详情
调用本地iserver发布的三维服务时,点击模型显示异常
qzg
38EXP 2020年04月15日

使用产品:iserver 10i 操作系统:win10 x64
数据类型:文件型
问题详细描述:我在vue项目中调用了一个本地的iserver三维服务,可是点击是总是弹出一个带有摄像头的黑框,黑框里面的内容看不懂,而且点击同一个地方内容还不一样,但是我根本就没有加点击事件啊,怎么点击一个构件之后就会显示这个?

1个回答

您好这是cesium自带的infobox控件,cesium的一些实体默认点击,会弹出infobox,如果不想弹出,只需要初始化的时候加上参数infoBox: false即可。
孟超
1
2,560EXP 2020年04月15日

您好,请问具体在哪里关呢?下面是我在vue中写的代码:

<template>
    <div id="cesiumContainer"></div>
</template>

<script>
  export default {
    data () {
      return {
        isOpen: true
      }
    },
    mounted () {
      /* eslint-disable */
      var viewer = new Cesium.Viewer("cesiumContainer")
      /* eslint-enable */
      var scene = viewer.scene
      // viewer.infoBox = false
      // 此处填写rest-3D模型的地址
      var promise = scene.addS3MTilesLayerByScp('http://192.168.0.107:8091/iserver/services/3D-bigHard/rest/realspace/datas/bigHard/config', {
        name: 'bigHard'
      })
      /* eslint-disable */
      Cesium.when(promise,function (layers) {
        var layer = scene.layers.find('bigHard')
        layer.setQueryParameter({
          //此处填写3D模型对应的rest-data的地址
          url: 'http://192.168.0.107:8091/iserver/services/data-bigHard/rest/data',
          dataSourceName: 'bigHard',
          //如果模型是批量生成缓存的话此处填写true,否则为false,或者忽略不写
          isMerge: true,
          keyWord: 'SMID'
        })
      })
      //设置相机视角
      scene.camera.setView({
        //将经度、纬度、高度的坐标转换为笛卡尔坐标
        destination : Cesium.Cartesian3.fromDegrees(115.500735478180800,39.500222985994711,200)
      })
      //通过点击获取构件属性
      viewer.pickEvent.addEventListener(function (feature) {
        console.log(feature.SMID+'======>'+feature.CATEGORYNAME)
        /* eslint-enable */
        this.isOpen = !this.isOpen
      })
    }
  }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
  #cesiumContainer {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    margin: 0;
    overflow: hidden;
    padding: 0;
    font-family: sans-serif;
  }
</style>

var viewer = new Cesium.Viewer('cesiumContainer', {

                             infoBox: false,     //点击要素之后显示的信息,默认true

                       });
好的,感谢
...