# qe-track-path

漫游路线组件,用于配置漫游路径相关功能,和 TrackController 组件结合使用实现漫游功能。


注意

漫游控制组件和漫游路线组件共同使用,一般漫游路线组件作为子组件被使用。

# 实例

隐藏代码
<template>

  <div style="height: 450px;">
    <div  style="height: 8%;">
      <el-button-group>
        <el-button 
          type="primary" 
          size="mini" 
          @click="startTrack()">
          {{ isPlayTrack ? '结束漫游' : '开始漫游' }}
        </el-button>
        <el-button 
          type="primary" 
          size="mini"
          @click="pauseTrack()">
          {{ isPauseTrack ? '播放' : '暂停' }}
        </el-button>
      </el-button-group>
      <label>改变时长:</label>
      <el-input-number 
        v-model="duration"
        :step="2"
        size="mini"
        :min="1" 
        :max="100"
        @change="handleChangeDuration"
        >
      </el-input-number>
      <label>切换视角:</label>
      <el-select 
        size="mini"
        v-model="viewModeValue" 
        placeholder="请选择漫游视角" 
        @change="handlerChangeViewMode">
        <el-option
          v-for="item in trackViewMode"
          :key="item.value"
          :label="item.label"
          :value="item.value">
        </el-option>
      </el-select>
    </div>
    <qe-viewer style="height: 90%;"
      :imagery-type="'TMap'"
      :default-view="defaultView"
    >
      <qe-track-controller :playing="isPlayTrack" :pausing="isPauseTrack">
        <qe-track-path
          :positions="trackPositions"
          :duration="duration"
          :track-model="trackModel"
          :view-mode="viewMode"
        />
      </qe-track-controller>
    </qe-viewer>
  </div>
</template>

<script>
import { QeViewer, QeTrackController, QeTrackPath } 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, 
    QeTrackController, 
    QeTrackPath
  },
  data () {
    return {
      defaultView: [
        118.7863,
        31.9087,
        801.6425,
        1.724684714172732,
        -53.783141852231246,
        0.008819224020548466
      ],
      trackModel: {
        url: "../Cesium_Man.glb",
        style: {
          scale: 5
        }
      },
      viewMode: {
        mode: 'free'
      },
      duration: 30,
      trackPositions: [
        [118.78652278, 31.9118927, 0],
        [118.78655718, 31.91305226, 0],
        [118.78782395, 31.91411149, 0],
        [118.78789172, 31.91761209, 0],
        [118.79094442, 31.91788549, 0],
        [118.79124342, 31.91780779, 0],
        [118.79121663, 31.91629651, 0],
        [118.78854253, 31.91625039, 0]
      ],
      isPlayTrack: false,
      isPauseTrack: false,
      viewModeValue: 'free',
      trackViewMode: [{
          value: '1',
          label: '第一人称视角'
        }, {
          value: '2',
          label: '第三人称视角'
        }, {
          value: 'tracked',
          label: '跟随视角'
        }, {
          value: 'free',
          label: '自由视角'
        }],
    }
  },
  methods: {
    startTrack () {
      this.isPlayTrack = !this.isPlayTrack
    },
    pauseTrack () {
      this.isPauseTrack = !this.isPauseTrack
    },
    handleChangeDuration(duration) {
      this.duration = duration
    },
    handlerChangeViewMode(viewModeVal) {
      switch (viewModeVal) {
        case '1':
          this.viewMode = {
            mode: "1",
            pitch:-20,
            range:100
          }
          break;
        case '2':
           this.viewMode.mode = 2
          break;
        case 'tracked':
          this.viewMode.mode = 'tracked'
          break;
        case 'free':
          this.viewMode.mode = "free"
          break;    
        default:
          break;
      }
    }
  }
}
</script>

# Attributes

参数 说明 类型 可选值 默认值
positions 漫游路径坐标串 array [[lng,lat,alt],[],[]] —
id 漫游线路唯一 id string — 不设置会自动生成唯一 id
trackModel 漫游的模型设置 object 参照 Model —
billboard 漫游图标,当有模型的时候,不需要设置。 object 参照 Billboard —
label 漫游文字标签,当有模型的时候,不需要设置,可以图标结合使用。 object 参照 Label —
options 漫游路线其他参数设置 object 参照漫游线路参数说明 —
viewMode 漫游路线视角设置 object 参照漫游线路参数说明 —
trackTick 漫游路线点事件,返回Positoin,当前点模型的位置信息,包含角度 Function 参照漫游线路参数说明 —

# 参照漫游线路参数说明

const trackModel = {
	// 模型地址
	url: "/testDataApi/examples/models/qiche.gltf",
	// 模型样式
	style: {
		scale: 0.5
	}
};
const billboard = {
	// 图片地址
	icon: "",
	// 样式
	style: {}
};
const label = {
	// 文字内容
	text: "",
	// 样式
	style: {}
};
const viewMode = {
	type: "1", // 视角类型, "1"--第一人称视角,"2"--"第三人称视角","tracked"--跟随视角,"free"-- 自由视角
	range: 1000, // 相机视角范围
	pitch: 0, // 当 `viewMode` 为 type="1" 时,相机偏移量中的俯仰角设置
	alt: 5 // 当 `viewMode` 为 type="1" 时,相机位置高度设置
};

# Events

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


// 可选事件
"ready" // 组件装载后,返回当前实例对象
最后更新时间: 5/22/2023, 10:34:44 AM