Browse Source

添加点类标绘

DESKTOP-CRQ4N2U\jintian 1 year ago
parent
commit
88a49e42fc

BIN
public/jt3dSDK/gltf/pyramid.glb


+ 71 - 1
src/views/Map3d/components/drawEdit.vue

@@ -27,6 +27,16 @@
 			</el-select>
 			<el-button type="danger" :icon="Delete" style="margin-top: 8rem;width: 30%;" @click="removeAll()">清除</el-button>
 		</div>
+		<div v-show="value=='点标绘类'">
+			<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem">
+				<el-col v-for="(item,index) in point" :span="8" @click="createDrawPoint(item.drawType,index)">
+					<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
+						<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
+					</el-avatar>
+					<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
+				</el-col>
+			</el-row>
+		</div>
 		<div v-show="value=='二维平面类'">
 			<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem">
 				<el-col v-for="(item,index) in towDimension" :span="8" @click="createGraphics(item.drawType,index)">
@@ -71,7 +81,43 @@
 		data() {
 			return {
 				currentIndex: -1,
-				value: "二维平面类",
+				value: "点标绘类",
+				point: [{
+						label: '小模型',
+						drawType: 'model',
+						number: 1,
+						icon: 'iconfont icon-jihedi'
+					}, {
+						label: '文字',
+						drawType: 'label',
+						number: 2,
+						icon: 'iconfont icon-jihedi'
+					},
+					{
+						label: '点',
+						drawType: 'point',
+						number: 3,
+						icon: 'iconfont icon-jihedi'
+					},
+					{
+						label: '点及文字',
+						drawType: 'point2Label',
+						number: 4,
+						icon: 'iconfont icon-jihedi'
+					},
+					{
+						label: '广告牌',
+						drawType: 'billboard',
+						number: 5,
+						icon: 'iconfont icon-jihedi'
+					},
+					{
+						label: '广告牌及文字',
+						drawType: 'billboard2Label',
+						number: 6,
+						icon: 'iconfont icon-jihedi'
+					}
+				],
 				options: [{
 						value: '二维平面类',
 						label: '二维平面类',
@@ -262,6 +308,30 @@
 						console.log('错误原因', message)
 					}
 				});
+			},
+			
+			//创建点类标绘
+			createDrawPoint(type, index) {
+				let _self = this;
+				this.currentIndex = index;
+			
+				//移除左键单击事件
+				if (jt3d.handlerLeftClick) {
+					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+				}
+			
+				/* 创建监听 */
+				jt3d.DrawPointEdit.onEditProperty = {};
+				// 开始绘制
+				jt3d.DrawPointEdit.draw(type, {
+					isEdit: true,
+					onComplete(cPoint, gPoint) {
+			
+					},
+					onError(message) {
+						console.log('错误原因', message)
+					}
+				});
 			}
 
 		},

+ 1 - 0
src/views/Map3d/components/map.vue

@@ -208,6 +208,7 @@
 					isRetainDrawPoint: true, //绘制完成是否保留绘制点
 					iconType: 'blue',
 				});
+				jt3d.DrawPointEdit = new this.jt3dSDK.DrawPoint(jt3d._viewer);
 				// jt3d.DrawMilitaryPlot = new this.jt3dSDK.DrawMilitaryPlot({
 				// 	viewer: jt3d._viewer,
 				// 	Cesium: Cesium,