# qe-viewer

三维场景视图组件是用于构建三维程序的基础组件,包含并包装所有其他组件。已适配接入的在线地图,坐标系已统一,可随意切换底图使用。

# 实例

隐藏代码
<template>

<div  style="height: 8%;padding-bottom:5px;">   
  <el-select v-model="map"  placeholder="请选择地图源">
  <el-option
    v-for="item in basemaps"
    :key="item.value"
    :label="item.label"
    :value="item.value">
  </el-option>
</el-select> 
 <el-select v-model="maptype"  placeholder="请选择地图源">
  <el-option
    v-for="item in styles"
    :key="item.value"
    :label="item.label"
    :value="item.value">
  </el-option>
</el-select>     
  <el-button type="primary" @click="changeMap(map,maptype)">切换</el-button>   
      <!-- <el-dropdown size="mini" @command="changeMap">
        <el-button type="primary" size="mini">
      切换底图<i class="el-icon-arrow-down el-icon--right"></i>
  </el-button>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item
            v-for="(bp, i) in basemaps"
            :key="i"
            :command="{
              imagerytype: bp.imagerytype,
              onlinemaptype: bp.onlinemaptype,
            }"
          >
            {{ bp.name }}</el-dropdown-item
          >
        </el-dropdown-menu>
      </el-dropdown> -->
  </div>
  <div style="height: 450px;">
    <qe-viewer 
      :imagery-type="imagerytype"
      :online-map-type="onlinemaptype"
      :fullscreen-button="true"
      :default-view="defaultView"
    ></qe-viewer>
  </div>
</template>

<script>
import { QeViewer } from '@qycloud/vue-qearth';
import 'vue2qearth/vue2qearth.css'
import elementUI from 'element-ui'
import Vue from 'vue'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(elementUI)

export default {
  components: {
    QeViewer
  },
  data () {
    return {
       viewer: null,
      defaultView: [
        118.7863,
        31.9087,
        801.6425,
        1.724684714172732,
        -53.783141852231246,
        0.008819224020548466
      ],
      basemaps: [
        { label: "天地图", value: "TMap"},

        { label: "高德地图", value: "AMap"},

        { label: "腾讯地图", value: "TencentMap"},
        { label: "ArcGIS地图", value: "ArcGIS"},
      ],
        styles: [
        { label: "影像图",  value: "satellite" },
        { label: "矢量图",  value: "normal" },
        { label: "矢量午夜蓝",  value: "midnight-blue" },
        { label: "矢量浅蓝",  value: "light-blue" },
        { label: "矢量蓝黑",  value: "blue-black" },
        { label: "矢量浅灰",  value: "light-gray" },
        { label: "矢量暗色",  value: "dark" }
      ],
      map:'TMap',
      maptype:'satellite',
      imagerytype:'TMap',
      onlinemaptype:'satellite'
    };
  },
  methods: {
    changeMap(map,maptype) {
      (this.imagerytype = map), (this.onlinemaptype = maptype);
    },
  }
}
</script>

# Attributes

参数 说明 类型 可选值 默认值
imageryType 基础底图类型:AMap-高德地图 TMap-天地图 string TMap/AMap/ArcGIS/TencentMap TMap
onlineMapType 地图默认底图类型:normal-街道地图 satellite-卫星地图 string normal/satellite/midnight-blue/light-blue/blue-black/light-gray/dark satellite
defaultView 初始默认视图,可以使用 viwer.cameraPosition获得手动调整好的视图参数 array [lng,lat,alt,heading,pitch,roll],参数说明:lng--相机位置经度,lat--相机位置纬度,alt--相机高度,heading--偏航角,pitch--俯仰角,roll--翻滚角(对应的单位为°) [117.1119439, 36.30287856, 7770925.91, 358.97, -89.97, 0]
locationBar 用于启用或者禁用位置兰控件 boolean — true
viewerMode 用于地图模式切换,2D/2.5D/3D string 2D/2.5D/3D 3D
defaultCenter 用于 2D 模式下设置当前视图,具体格式:[lng,lat,alt],一般可以通过 Viewer.centerPosition 获取,不设置会自动根据三维视角计算当前中心点相关位置 array — —
navigation 用于启用或者禁用罗盘相关导航控件 object 参照 navigationOptions —
underground 是否开启地下模式 boolean — false
depthTestAgainstTerrain 是否开启地形检测 boolean — true
globeTranslucency 地表透明度设置,只有当开启地下模式的时候才有效, alpha --地表透明度,undergroundColor--地表透明的地下背景色 object {alpha: 0.5,undergroundColor:'gray'} —
fullscreenButton 用于启用或者禁用全屏控件 boolean — true
infoBox 是否显示信息框 boolean — false
animation 是否显示动画控件 boolean — false
timeline 是否显示时间轴控件 boolean — false
navigationHelpButton 是否显示导航帮助按钮 boolean — false
sceneModePicker 是否显示场景模式切换按钮 boolean — false
selectionIndicator 是否显示选择指示符 boolean — false
homeButton 是否显示主页按钮 boolean — false
geocoder 是否显示地理编码器搜索框 boolean — false
vrButton 是否显示 VR 功能按钮 boolean — false
scene3DOnly 如果为 true,则每个几何实例仅以 3D 形式呈现以节省 GPU 内存。 boolean — false
skyBoxOnGround 近地天空盒 object {positiveX:右侧图片,negativeX:左侧, positiveY:后侧,negativeY:前侧,positiveZ:顶图, negativeZ:底图 } —
shouldAnimate 时钟是否应尝试延长仿真时间 boolean — false
viewOptions 更多的 viewer 相关的参数设置 object 更多参照官方 API (opens new window) —
const navigation = {
  enableCompass: true, // 用于启用或禁用罗盘。true是启用罗盘,false是禁用罗盘。
  enableZoomControls: true, // 用于启用或禁用缩放控件。
  enableDistanceLegend: true, // 用于启用或禁用距离图例。
  enableCompassOuterRing: true // 用于启用或禁用指南针外环。
}

# Events

事件的使用请参照上面Viewer 实例


"init" // qe-viewer 视图组件初始事件,返回 QEarth API 对象
"ready" // 组件装载后,返回当前实例对象
"click" // 鼠标点击事件
"rightclick" // 鼠标右击事件
"dblclick" // 鼠标双击事件
"mousemove" // 鼠标移动事件
"wheel" // 鼠标滚轮事件
"addlayer" // 添加图层时触发事件
"removelayer" // 移出图层时触发事件
"addeffect" // 添加特效时触发事件
"removeeffect" // 移出特效时触发事件
最后更新时间: 6/2/2023, 11:06:25 AM