# CorridorGraphics
vc-graphics-corridor
组件用于加载走廊对象,由一个中心线和宽度定义的形状,与地球的曲率一致。 它可以放置在地面上或高空放置,也可以选择挤压成一个体积。需要作为 vc-entity
的子组件使用。
# 示例
# 加载走廊
# 预览
收起
<template>
<div class="viewer">
<vc-viewer @ready="ready">
<vc-entity ref="entity1" :name="name1" :description="description" :corridor.sync="corridor1">
<vc-graphics-corridor :positions="positions1" :material="material1" :width="200000.0"></vc-graphics-corridor>
</vc-entity>
<vc-entity ref="entity2" :name="name2" :description="description" :corridor.sync="corridor2">
<vc-graphics-corridor
:positions="positions2"
:height="100000.0"
:width="200000.0"
:cornerType="0"
material="GREEN"
:outline="true"
></vc-graphics-corridor>
</vc-entity>
<vc-entity ref="entity3" :name="name3" :description="description" :corridor.sync="corridor3">
<vc-graphics-corridor
:positions="positions3"
:material="material3"
outlineColor="WHITE"
:outline="true"
:height="200000.0"
:extrudedHeight="100000.0"
:width="200000.0"
:cornerType="cornerType3"
></vc-graphics-corridor>
</vc-entity>
</vc-viewer>
</div>
</template>
<script>
export default {
data() {
return {
description: 'Hello Vue Cesium',
corridor1: {},
name1: 'Red corridor on surface with rounded corners',
positions1: [
{ lng: 100.0, lat: 40.0 },
{ lng: 105.0, lat: 40.0 },
{ lng: 105.0, lat: 35.0 }
],
material1: {},
corridor2: {},
name2: 'Green corridor at height with mitered corners and outline',
positions2: [
{ lng: 90.0, lat: 40.0 },
{ lng: 95.0, lat: 40.0 },
{ lng: 95.0, lat: 35.0 }
],
cornerType2: 0,
corridor3: {},
name3: 'Blue extruded corridor with beveled corners and outline',
positions3: [
{ lng: 80.0, lat: 40.0 },
{ lng: 85.0, lat: 40.0 },
{ lng: 85.0, lat: 35.0 }
],
cornerType3: 0,
material3: {}
}
},
mounted() {
Promise.all([this.$refs.entity1.createPromise, this.$refs.entity2.createPromise, this.$refs.entity3.createPromise]).then(
(instances) => {
instances[0].viewer.zoomTo(instances[0].viewer.entities)
}
)
},
methods: {
ready(cesiumInstance) {
const { Cesium, viewer } = cesiumInstance
this.material1 = Cesium.Color.RED.withAlpha(0.5)
this.cornerType2 = Cesium.CornerType.MITERED
this.cornerType3 = Cesium.CornerType.BEVELED
this.material3 = Cesium.Color.BLUE.withAlpha(0.5)
}
}
}
</script>
# 属性
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
show | Boolean | true | optional 指定 corridor 是否显示。 |
positions | Array | optional 指定描述 corridor 位置的经纬度(高度)数组。 结构:[{ lng: number, lat: number, height: number },...,{ lng: number, lat: number, height: number }] | |
width | Number | optional 指定 corridor 边之间的距离。 | |
height | Number | 0 | optional 指定 corridor 高度。 |
heightReference | Number | optional 指定 corridor 高度模式。 NONE: 0, CLAMP_TO_GROUND: 1, RELATIVE_TO_GROUND: 2 | |
extrudedHeight | Number | optional 指定 corridor 拉伸高度。 | |
extrudedHeightReference | Number | optional 指定 corridor 拉伸高度模式。 NONE: 0, CLAMP_TO_GROUND: 1, RELATIVE_TO_GROUND: 2 | |
cornerType | Number | 0 | optional 指定 corridor 转角样式。ROUNDED: 0, MITERED: 1, BEVELED: 2 |
granularity | Number | optional 指定每个经纬度之间的采样粒度。 | |
fill | Boolean | true | optional 指定 corridor 是否填充材质。 |
material | Object|String|Array | 'white' | optional 指定 corridor 的材质。 |
outline | Boolean | false | optional 指定 corridor 是否绘制轮廓线。 |
outlineColor | Object|String|Array | 'black' | optional 指定 corridor 轮廓线颜色。 |
outlineWidth | Number | 1.0 | optional 指定 corridor 轮廓线宽度。 |
shadows | Number | 0 | optional 指定 corridor 是否接收或者发射每个点光源的阴影。 DISABLED: 0, ENABLED: 1, CAST_ONLY: 2, RECEIVE_ONLY: 3, NUMBER_OF_SHADOW_MODES: 4, RECEIVE_ONLY: 3 |
distanceDisplayCondition | Object | optional 指定 corridor 随相机距离改变是否显示参数。结构:{ near: number, far: number } | |
classificationType | Number | 2 | optional 指定 corridor 的贴对象模式。 TERRAIN: 0, CESIUM_3D_TILE: 1, BOTH: 2, NUMBER_OF_CLASSIFICATION_TYPES: 3 |
zIndex | Number | optional 指定 corridor 顺序,没有高度和拉伸高度才有效。 |
参考官方文档: CorridorGraphics (opens new window)
# 事件
事件名 | 参数 | 描述 |
---|---|---|
ready | {Cesium, viewer, cesiumObject} | 该组件渲染完毕时触发,返回 Cesium 类, viewer 实例,以及当前组件的 cesiumObject。 |
definitionChanged | 每当更改或修改属性或子属性时触发该事件。 |