|
@@ -3,7 +3,7 @@
|
|
|
|
|
|
<head>
|
|
|
<!-- <link rel="stylesheet" href="./ol.css" type="text/css"> -->
|
|
|
- <link rel="stylesheet" href="./style.css" type="text/css">
|
|
|
+ <link rel="stylesheet" href="../style.css" type="text/css">
|
|
|
|
|
|
<!-- <script src="./ol.js"></script> -->
|
|
|
<style>
|
|
@@ -21,6 +21,7 @@
|
|
|
|
|
|
<body>
|
|
|
<div id="app" v-cloak>
|
|
|
+
|
|
|
<div class="content">
|
|
|
|
|
|
<!-- <div class="rightBox">
|
|
@@ -32,97 +33,28 @@
|
|
|
</div> -->
|
|
|
<div id="plane">
|
|
|
|
|
|
- <div class="main" v-if="!isEdit">
|
|
|
+ <div class="main" v-if="!isEdit && !isUpload">
|
|
|
<!-- <div class="title">定位</div> -->
|
|
|
- <p class="desc">通过两个控制点坐标确定点云在地图上的位置</p>
|
|
|
+ <p class="desc">提示:当前控制点坐标为系统提供的默认值,请将控制点坐标调整为真实的地理坐标。</p>
|
|
|
<div class="editBtn" @click="openEdit">修改控制点</div>
|
|
|
- <p v-if="status!=1" style="color: #999;margin: 10px 0 ; ">提示:当前控制点坐标为系统提供的默认值,请点击按钮输入真实的控制点坐标
|
|
|
- </p>
|
|
|
- <div class="main_item">
|
|
|
- <p class="main_item_title">控制点1</p>
|
|
|
- <div class="dataBox">
|
|
|
- <p>本地坐标</p>
|
|
|
- <div>
|
|
|
- <span>X:{{showData.ax}}</span><br/>
|
|
|
- <span>Y:{{showData.ay}}</span><br/>
|
|
|
- <!-- <span>Z:{{showData.az}}</span><br/> -->
|
|
|
- </div>
|
|
|
|
|
|
- <p>地理坐标</p>
|
|
|
- <div>
|
|
|
- <span>经度:{{showData.alon}}</span><br/>
|
|
|
- <span>纬度:{{showData.alat}}</span><br/>
|
|
|
- <!-- <span>高程:{{showData.aalt}}</span><br/> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="main_item">
|
|
|
- <p class="main_item_title">控制点2</p>
|
|
|
- <div class="dataBox">
|
|
|
- <p>本地坐标</p>
|
|
|
- <div>
|
|
|
- <span>X:{{showData.bx}}</span><br/>
|
|
|
- <span>Y:{{showData.by}}</span><br/>
|
|
|
- <!-- <span>Z:{{showData.bz}}</span><br/> -->
|
|
|
- </div>
|
|
|
|
|
|
- <p>地理坐标</p>
|
|
|
- <div>
|
|
|
- <span>经度:{{showData.blon}}</span><br/>
|
|
|
- <span>纬度:{{showData.blat}}</span><br/>
|
|
|
- <!-- <span>高程:{{showData.balt}}</span><br/> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="editBtn pointClound" @click="isUpload=true">
|
|
|
+ 添加数据集
|
|
|
+ <!-- <input id="file" multiple="multiple" accept=".e57, .pts, .ptx, .ply, .xyz, .las" @change="upLoadPointClound" type="file"> -->
|
|
|
+ <!-- <input id="file" multiple="multiple" accept=".las" @change="upLoadPointClound($event)" type="file"> -->
|
|
|
</div>
|
|
|
|
|
|
- <!-- <div class="main_item">
|
|
|
- <div class="Setting">
|
|
|
- <div class="msgBox">
|
|
|
- <p class="title">
|
|
|
- 地理坐标</p>
|
|
|
- <p class="desc">确定点云在世界地图上的位置</p>
|
|
|
- </div>
|
|
|
- <div class="btnton" @click="isEdit = true">
|
|
|
- 修改
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div> -->
|
|
|
- <!-- <div class="main_item" v-if="false">
|
|
|
- <div class="Setting">
|
|
|
- <div class="msgBox">
|
|
|
- <p class="title">
|
|
|
- 平面图</p>
|
|
|
- <p class="desc">添加建筑物平面图,方便预览</p>
|
|
|
- </div>
|
|
|
- <div class="btnton" @click="readyUpload">
|
|
|
- 上传
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mapList">
|
|
|
- <div class="mapItem">
|
|
|
- <div class="fileName">
|
|
|
- 思维展厅.PNG
|
|
|
- </div>
|
|
|
- <div class="fileBtn">
|
|
|
|
|
|
- <div class="fileBtnicon fileHide" @click="showImageTranform1 = !showImageTranform1"></div>
|
|
|
- <div class="fileBtnicon fileSave" @click="getImageTransform"></div>
|
|
|
- <div class="fileBtnicon fileSave" @click="getImageTiled"></div>
|
|
|
- <div class="fileBtnicon fileDel"></div>
|
|
|
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div> -->
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
<div v-if="isEdit" class="scrollBox">
|
|
|
- <!-- <button id="location1">定位1</button>
|
|
|
- <button id="location2">定位2</button> -->
|
|
|
- <!-- <p class="title">定位</p> -->
|
|
|
- <!-- <p class="desc">通过两个控制点坐标确定点云在地图上的位置</p> -->
|
|
|
+
|
|
|
+ <h4>修改控制点 </h4>
|
|
|
+ <p class="desc">通过两个控制点坐标确定点云在地图上的位置</p>
|
|
|
<p class="itemTitle">EPSG 坐标系 </p>
|
|
|
<div class="formItem">
|
|
|
<div class="allIpt">
|
|
@@ -140,47 +72,33 @@
|
|
|
<div class="inputItem">
|
|
|
<div class="name"> X</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="ax" name="ax" id="ax" />
|
|
|
+ <input @input="limtInput('ax')" type="text" v-model="ax" name="ax" id="ax" />
|
|
|
</div>
|
|
|
<span class="unit">m</span>
|
|
|
</div>
|
|
|
<div class="inputItem">
|
|
|
<div class="name"> Y</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="ay" name="ay" id="ay" />
|
|
|
+ <input @input="limtInput('ay')" type="text" v-model="ay" name="ay" id="ay" />
|
|
|
</div>
|
|
|
<span class="unit">m</span>
|
|
|
</div>
|
|
|
|
|
|
- <!-- <div class="inputItem">
|
|
|
- <div class="name"> Z</div>
|
|
|
- <div class="ipt">
|
|
|
- <input type="text" v-model="az" name="az" id="az" />
|
|
|
- </div>
|
|
|
- <span class="unit">m</span>
|
|
|
- </div> -->
|
|
|
</div>
|
|
|
<div class="formItem">
|
|
|
<p class="itemTitle">地理坐标:</p>
|
|
|
<div class="inputItem">
|
|
|
<div class="name">经度</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="alon" name="alon" id="alon" value="120" />
|
|
|
+ <input type="text" @input="limtInput('alon')" v-model="alon" name="alon" id="alon" value="120" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="inputItem">
|
|
|
<div class="name">纬度</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="alat" name="alat" id="alat" value="22" />
|
|
|
+ <input type="text" @input="limtInput('alat')" v-model="alat" name="alat" id="alat" value="22" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- <div class="inputItem">
|
|
|
- <div class="name">高程</div>
|
|
|
- <div class="ipt">
|
|
|
- <input type="text" v-model="aalt" name="aalt" id="aalt" value="0" />
|
|
|
- </div>
|
|
|
- </div> -->
|
|
|
-
|
|
|
|
|
|
|
|
|
</div>
|
|
@@ -194,14 +112,14 @@
|
|
|
<div class="inputItem">
|
|
|
<div class="name"> X</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="bx" name="bx" id="bx" />
|
|
|
+ <input type="text" @input="limtInput('bx')" v-model="bx" name="bx" id="bx" />
|
|
|
</div>
|
|
|
<span class="unit">m</span>
|
|
|
</div>
|
|
|
<div class="inputItem">
|
|
|
<div class="name"> Y</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="by" name="by" id="by" />
|
|
|
+ <input type="text" @input="limtInput('by')" v-model="by" name="by" id="by" />
|
|
|
</div>
|
|
|
<span class="unit">m</span>
|
|
|
</div>
|
|
@@ -221,13 +139,13 @@
|
|
|
<div class="inputItem">
|
|
|
<div class="name">经度</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="blon" name="blon" id="blon" value="123" />
|
|
|
+ <input type="text" @input="limtInput('blon')" v-model="blon" name="blon" id="blon" value="123" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="inputItem">
|
|
|
<div class="name">纬度</div>
|
|
|
<div class="ipt">
|
|
|
- <input type="text" v-model="blat" name="blat" id="blat" value="22" />
|
|
|
+ <input type="text" @input="limtInput('blat')" v-model="blat" name="blat" id="blat" value="22" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- <div class="inputItem">
|
|
@@ -256,16 +174,25 @@
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
+
|
|
|
+ <upload-pointClound v-if="isUpload" />
|
|
|
+ <!-- <image-tranform ref="imageTranform" /> -->
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
+
|
|
|
+
|
|
|
</div>
|
|
|
|
|
|
<script src="./js/vue.js"></script>
|
|
|
+ <script src="./js/element.js"></script>
|
|
|
+
|
|
|
<script src="./js/axios.min.js"></script>
|
|
|
+
|
|
|
<!-- <script src="./js/proj4.js"></script>
|
|
|
<script src="./js/three.js"></script> -->
|
|
|
- <!-- <script src="./components/image-transform/index.js"></script> -->
|
|
|
+ <script src="./components/image-transform/index.js"></script>
|
|
|
+ <script src="./components/upload-pointClound/index.js"></script>
|
|
|
<script type="text/javascript">
|
|
|
//输入经纬度就可以定位
|
|
|
</script>
|
|
@@ -296,12 +223,14 @@
|
|
|
|
|
|
new Vue({
|
|
|
el: '#app',
|
|
|
+
|
|
|
data() {
|
|
|
return {
|
|
|
status: 0,
|
|
|
showImageTranform: true,
|
|
|
showImageTranform1: true,
|
|
|
isEdit: false,
|
|
|
+ isUpload: false,
|
|
|
pointLayerArray: [],
|
|
|
map: null,
|
|
|
gaodeMapLayer: {},
|
|
@@ -358,13 +287,14 @@
|
|
|
blon: '123',
|
|
|
blat: '22',
|
|
|
balt: ''
|
|
|
- }
|
|
|
+ },
|
|
|
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
|
|
|
},
|
|
|
+
|
|
|
mounted() {
|
|
|
// alert(sceneNum)
|
|
|
|
|
@@ -512,7 +442,7 @@
|
|
|
// id: 1
|
|
|
})
|
|
|
.catch(function(error) {
|
|
|
- alert('数据集位置上传失败')
|
|
|
+ alert('控制点上传失败')
|
|
|
}),
|
|
|
|
|
|
// this.getImageTransform()
|
|
@@ -521,7 +451,7 @@
|
|
|
// })
|
|
|
]).then(() => {
|
|
|
this.getContorlPoint()
|
|
|
- alert('成功')
|
|
|
+ alert('控制点上传成功')
|
|
|
})
|
|
|
|
|
|
},
|
|
@@ -597,6 +527,32 @@
|
|
|
this.blon = this.showData.blon
|
|
|
this.blat = this.showData.blat
|
|
|
},
|
|
|
+ showLoading() {
|
|
|
+ $('body').append(' <div id="upload-loading"><img class="icon" src="../img/icon/loading.png" alt=""><span class="text">上传中...</span></div>');
|
|
|
+ },
|
|
|
+ hideLoading() {
|
|
|
+ $('#upload-loading').remove()
|
|
|
+ },
|
|
|
+ upLoadPointClound(e) {
|
|
|
+ const files = e.target.files[0];
|
|
|
+ console.log(files)
|
|
|
+ var formData = new FormData();
|
|
|
+ formData.append("file", files);
|
|
|
+
|
|
|
+ axios.post('/indoor/' + sceneNum + '/api/controlPoint/test', formData).catch(err => {
|
|
|
+ // alert(1)
|
|
|
+ this.showLoading()
|
|
|
+ setTimeout(() => {
|
|
|
+ this.hideLoading()
|
|
|
+ IV.api.AuthenticationService.sendAuthenticationChanged()
|
|
|
+ // IV.SidebarMenuService.goToItem(IV.SidebarMenuService.items[1])
|
|
|
+
|
|
|
+ }, 2000);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ limtInput(value) {
|
|
|
+ this[value] = this[value].replace(/[^\-?\d.]/g, '')
|
|
|
+ },
|
|
|
moveEnd(e) {
|
|
|
let obj = e.currentTarget
|
|
|
obj.focus();
|
|
@@ -610,7 +566,10 @@
|
|
|
typeof obj.selectionEnd == 'number') {
|
|
|
obj.selectionStart = obj.selectionEnd = len;
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|