# qe-model

这个组件主要用于三维添加格式为 glb/gltf 的三维模型。


# 实例

隐藏代码
<template>

  <div style="height: 450px;">
  <div  style="height: 8%;">
      <button @click="layerFilter" style="height: 30px;">
      layerFilter
      </button>
    </div>
    <qe-viewer style="height:90%"
      :imagery-type="'AMap'"
      :fullscreen-button="true"
      :shouldAnimate="true"
      :default-view="defaultView"
    >
      <qe-entity-layer v-if="isShowLayer" @ready="layerHandler">
        <qe-model
        id="test"
          :position="[118.78600228, 31.9135434, 1.66113721]"
          :url="'../Cesium_Man.glb'"
          :styles="styles" 
          :attr="{name: '测试数据'}"
          @click="handler"
        ></qe-model>
      </qe-entity-layer>
    </qe-viewer>
  </div>
</template>

<script>
import { QeViewer, QeEntityLayer, QeModel } from '@qycloud/vue-qearth';
import 'vue2qearth/vue2qearth.css'
let layer;
export default {
  components: {
    QeViewer, 
    QeEntityLayer, 
    QeModel
  },
  data () {
    return {
      markers:[],
      defaultView: [
        118.7863,
        31.9087,
        801.6425,
        1.724684714172732,
        -53.783141852231246,
        0.008819224020548466
      ],
      isShowLayer: true,
      styles: {
        scale: 200
      }
    };
  },
  methods: {
    handler(evt) {
      const attr = evt.overlay.attr;
      alert(`该要素的名称为--${attr.name}`)
    },
    layerHandler(target){
      layer=target;
    },
    layerFilter(){
      console.log(layer._cache,'====layer._cache')
      console.log(layer._cache['test'],'====layer._cache["test"]')
    }
  }
}
</script>

# Attributes

参数 说明 类型 可选值 默认值
positions 模型位置坐标,[lng-经度,lat-纬度,alt-高度] array
url 资源地址 string/Resource
styles 模型可选样式参数 object 参照 model-styles
attr 用户自定义属性,支持 JavaScript API 任意数据类型 *

# model-styles

  // 样式参数(可选)
  {
    "scale": 1, //比例
    "minimumPixelSize": 0, //指定模型的最小像素大小,而不考虑缩放
    "maximumScale": 0, //指定模型的最大比例
    "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
    "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
    "silhouetteColor": "red", //轮廓颜色
    "silhouetteSize": 0, //轮廓宽度
    "lightColor": "red", //模型着色时指定灯光颜色
    "distanceDisplayCondition": {
      "near": 0, //最近距离
      "far": Number.MAX_VALUE //最远距离
    } //根据距离设置可见
  }

# Events

覆盖物事件的使用请参照上面Model 实例


// 覆盖物可选事件
"ready" // 组件装载后,返回当前实例对象
"click" // 鼠标点击事件
"rightclick" // 鼠标右击事件
"dblclick" // 鼠标双击事件
"mousemove" // 鼠标移动事件
"wheel" // 鼠标滚轮事件
"mouseover" // 鼠标移入事件
"mouseout" // 鼠标移出事件
最后更新时间: 5/22/2023, 10:34:44 AM