图层加载

This commit is contained in:
wangjiao 2023-08-25 18:57:09 +08:00
commit f5ba7cc503
12 changed files with 1929 additions and 206 deletions

33
package-lock.json generated
View File

@ -12,7 +12,7 @@
"core-js": "^3.8.3",
"element-ui": "^2.15.9",
"file-saver": "^2.0.5",
"jquery": "^3.6.0",
"jquery": "^3.7.0",
"js-cookie": "^3.0.5",
"jsencrypt": "^3.3.2",
"nprogress": "^0.2.0",
@ -20,7 +20,8 @@
"sass-loader": "^10.1.0",
"vue": "^2.6.14",
"vue-router": "^3.1.3",
"vuex": "^3.6.0"
"vuex": "^3.6.0",
"ztree": "^3.5.24"
},
"devDependencies": {
"@babel/core": "^7.12.16",
@ -6521,9 +6522,9 @@
}
},
"node_modules/jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz",
"integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ=="
},
"node_modules/js-cookie": {
"version": "3.0.5",
@ -10888,6 +10889,14 @@
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
"dev": true
},
"node_modules/ztree": {
"version": "3.5.24",
"resolved": "https://registry.npmjs.org/ztree/-/ztree-3.5.24.tgz",
"integrity": "sha512-hQsLLJ+oaVzptXQX/Qgq1I2+zbA0d5iqJ4CbFEMwlXhqIzvW9r3Dqcn6eFzs4KJCDVxPvIDU5XdMafpr2p5yRg==",
"dependencies": {
"jquery": ">=1.4.4"
}
}
},
"dependencies": {
@ -15953,9 +15962,9 @@
}
},
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz",
"integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ=="
},
"js-cookie": {
"version": "3.0.5",
@ -19356,6 +19365,14 @@
"dev": true
}
}
},
"ztree": {
"version": "3.5.24",
"resolved": "https://registry.npmjs.org/ztree/-/ztree-3.5.24.tgz",
"integrity": "sha512-hQsLLJ+oaVzptXQX/Qgq1I2+zbA0d5iqJ4CbFEMwlXhqIzvW9r3Dqcn6eFzs4KJCDVxPvIDU5XdMafpr2p5yRg==",
"requires": {
"jquery": ">=1.4.4"
}
}
}
}

View File

@ -12,7 +12,7 @@
"core-js": "^3.8.3",
"element-ui": "^2.15.9",
"file-saver": "^2.0.5",
"jquery": "^3.6.0",
"jquery": "^3.7.0",
"js-cookie": "^3.0.5",
"jsencrypt": "^3.3.2",
"nprogress": "^0.2.0",
@ -20,7 +20,8 @@
"sass-loader": "^10.1.0",
"vue": "^2.6.14",
"vue-router": "^3.1.3",
"vuex": "^3.6.0"
"vuex": "^3.6.0",
"ztree": "^3.5.24"
},
"devDependencies": {
"@babel/core": "^7.12.16",

1544
public/crane.gltf Normal file

File diff suppressed because one or more lines are too long

View File

@ -34,6 +34,16 @@ Geowin3DAPP.prototype.addDefaultTerrain = function (tilename) {
}
this.terrainManager.visible = true;
}
Geowin3DAPP.prototype.addTerrain = function (url) {
if(this.terrainManager == null){
this.terrainManager = new Geowin3D.GwTools.GwTerrain( this._viewer);
this.terrainManager.setTerrain(url, "STK", []);
return ;
}
this.terrainManager.visible = true;
}
Geowin3DAPP.prototype.setImageProvider = function (tilename) {
this._viewer.scene.imageryLayers.removeAll();
this._viewer.imageryLayers.addImageryProvider( new Geowin3D.GeowinMapImageryProvider({ tilename: tilename }));
@ -63,6 +73,48 @@ Geowin3DAPP.prototype.load3DTileset = function (options) {
this.layers.push(tileset);
return tileset;
}
Geowin3DAPP.prototype.loadGLTF = function (options) {
if(!options.position){
options.position = generateLocation();
}
var origin = Geowin3D.Cartesian3.fromDegrees(options.position[0], options.position[1], options.position[2]);
var model = this._viewer.scene.primitives.add(Geowin3D.Model.fromGltf({
url: options.url,
scale:options.scale,
modelMatrix :Geowin3D.Transforms.eastNorthUpToFixedFrame(origin)
//minimumPixelSize: 128
}));
var that = this;
model.readyPromise.then(function(model){
that._viewer.flyTo(model);
}).otherwise(function(error){
console.log("模型加载失败:"+error);
})
this.layers.push(model);
return model;
}
function generateLocation(){
var centerLng,centerLat;
centerLng = 116.397499;
centerLat = 39.908722;
var latOffset,lngOffset;
lngOffset = Math.random()*0.001 - 0.0005;
latOffset = Math.random()*0.001 - 0.0005;
var lng = centerLng+lngOffset;
lat = centerLat+latOffset;
return [
lng,
lat,
0
]
}
Geowin3DAPP.prototype.remove3DTileset = function (tileset) {
this._viewer.scene.primitives.remove(tileset)
@ -78,6 +130,42 @@ Geowin3DAPP.prototype.addImageLayer = function (options) {
return this.getViewer().imageryLayers.addImageryProvider(new Geowin3D.WebMapTileServiceImageryProvider({
url: options.url
}));
if (options.tdtUrl != null)
return this.getViewer().imageryLayers.addImageryProvider(new Geowin3D.WebMapTileServiceImageryProvider({
url:
"http://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0" +
"&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}" +
"&style=default&format=tiles&tk=8b44b0161ca27be9b972b7f2cc943248",
layer: "tdtCva",
style: "default",
format: "tiles",
tileMatrixSetID: "c",
subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
tilingScheme: new Cesium.GeographicTilingScheme(),
tileMatrixLabels: [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
],
// maximumLevel: 18,
show: false,
}));
return null;
}
Geowin3DAPP.prototype.removeImageLayer = function (layer) {

View File

@ -16,10 +16,19 @@ import '@/assets/css/common.css'
import '@/assets/iconfont/iconfont.css'
import '@/utils/flexible.js'
import $ from 'jquery';
// import $ from 'jquery';
// window.jQuery = $
// window.$ = $
import 'ztree/js/jquery-1.4.4.min.js'
window.jQuery = $
window.$ = $
import 'ztree/js/jquery.ztree.core.min.js'
import 'ztree/js/jquery.ztree.excheck.min.js'
import 'ztree/css/zTreeStyle/zTreeStyle.css'
new Vue({
render: h => h(App),
router,

View File

@ -15,8 +15,8 @@ router.beforeEach((to, from, next) => {
if (getToken()) {
// to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
/* has token*/
if (to.path === '/login') {
next({ path: '/' })
if (to.path === '/') {
next({ path: '/home' })
NProgress.done()
} else {
if (store.getters.roles.length === 0) {

View File

@ -29,17 +29,30 @@
"children": [
{
"id": 11,
"name": "影像",
"layername": "sate",
"type": "geowintms",
"checked": true
"name": "天地图影像",
"type": "knowntms",
"checked": false
},
{
"id": 12,
"name": "地形",
"layername": "dem",
"type": "geowindem",
"checked": true
"name": "高德影像",
"url": "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
"type": "tms",
"checked": false
},
{
"id": 13,
"name": "高德影像注记",
"url": "http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8",
"type": "tms",
"checked": false
},
{
"id": 19,
"name": "全球地形",
"url": "https://terrain.gbim360.com/",
"type": "dem",
"checked": false
}
]
},
@ -56,49 +69,49 @@
{
"id": 211,
"name": "黄花长城",
"layername": "osgb_huanghuachangcheng",
"url": "http://10.241.127.11:8080/mapdata/osgb/黄花城长城模型/tileset.json",
"type": "tileset"
},
{
"id": 212,
"name": "baimaguan",
"layername": "osgb_baimaguan",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/baimaguan/tileset.json",
"type": "tileset"
},
{
"id": 213,
"name": "jijiaying",
"layername": "osgb_jijiaying",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/jijiaying/tileset.json",
"type": "tileset"
},
{
"id": 214,
"name": "shangyu",
"layername": "osgb_shangyu",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/shangyu/tileset.json",
"type": "tileset"
},
{
"id": 215,
"name": "xiaokou",
"layername": "osgb_xiaokou",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xiaokou/tileset.json",
"type": "tileset"
},
{
"id": 216,
"name": "xiaying",
"layername": "osgb_xiaying",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xiaying/tileset.json",
"type": "tileset"
},
{
"id": 217,
"name": "xituogu",
"layername": "osgb_xituogu",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xituogu/tileset.json",
"type": "tileset"
},
{
"id": 218,
"name": "yaoqiaoyu",
"layername": "osgb_yaoqiaoyu",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/yaoqiaoyu/tileset.json",
"type": "tileset"
}
]
@ -108,7 +121,32 @@
"name": "GLTF模型",
"children": [
{
"name": ""
"id": 221,
"name": "采煤车",
"url": "http://10.241.127.11:8080/mapdata/gltf/采煤车.glb",
"scale":10,
"type": "gltf"
},
{
"id": 221,
"name": "掘进机",
"url": "http://10.241.127.11:8080/mapdata/gltf/掘进机.glb",
"scale":10,
"type": "gltf"
},
{
"id": 221,
"name": "液压支架",
"url": "http://10.241.127.11:8080/mapdata/gltf/液压支架.glb",
"scale":10,
"type": "gltf"
},{
"id": 221,
"name": "塔杆",
"url": "/crane.gltf",
"scale":10,
"type": "gltf"
}
]
},
@ -117,7 +155,16 @@
"name": "BIM模型",
"children": [
{
"name": "煤矿"
"id": 231,
"name": "油罐BIM",
"url": "http://10.241.127.11:8080/mapdata/fbx/tiles/tileset.json",
"type": "tileset"
},
{
"id": 232,
"name": "机房BIM",
"url": "http://10.241.127.11:8080/mapdata/bim数据/anquanju_5.17/tileset.json",
"type": "tileset"
}
]
},
@ -135,8 +182,8 @@
"name": "建筑白膜",
"children": [
{
"name": "北京",
"layername": "building_beijing",
"name": "北京全区",
"url":"http://10.241.127.11:8080/mapdata/建筑白膜/北京/tileset.json",
"type": "tileset"
}
]

0
src/utils/map.js Normal file
View File

View File

@ -17,7 +17,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: 'http://10.241.173.163:18888/',
// 超时
timeout: 10000
timeout: 600000
})
// request拦截器

View File

@ -1,15 +1,31 @@
<template>
<div class="home">
<ul class="login">
<li class="item" >{{ name }}</li>
<li class="item">
<div style="width: 100%;">
<el-dropdown class="avatar-container right-menu-item hover-effect"
trigger="click">
<div class="avatar-wrapper">
<span style="color: #377dff;">{{ name }}</span>
<img :src="avatar"
class="user-avatar">
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item divided
@click.native="logout">
<span>退出登录</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</li>
</ul>
<div class="header d-between">
<div class="title d-around">
<img
:src="require('@/assets/images/icon-project.png')"
alt=""
width="48"
/>
<img :src="require('@/assets/images/icon-project.png')"
alt=""
width="48" />
<div class="title-text">城市时空大数据行业应用服务平台</div>
</div>
<ul class="d-flex menu-ul">
@ -22,31 +38,29 @@
</div>
<!-- 轮播 start-->
<div class="showImg">
<img
@mouseover="changeInterval(true)"
@mouseleave="changeInterval(false)"
v-for="item in imgArr"
:key="item.id"
:src="item.url"
alt="暂无图片"
v-show="item.id === currentIndex"
/>
<img @mouseover="changeInterval(true)"
@mouseleave="changeInterval(false)"
v-for="item in imgArr"
:key="item.id"
:src="item.url"
alt="暂无图片"
v-show="item.id === currentIndex" />
<div @click="clickIcon('up')" class="iconDiv icon-left">
<div @click="clickIcon('up')"
class="iconDiv icon-left">
<!-- <i class="el-icon-caret-left"></i> -->
</div>
<div @click="clickIcon('down')" class="iconDiv icon-right">
<div @click="clickIcon('down')"
class="iconDiv icon-right">
<!-- <i class="el-icon-caret-right"></i> -->
</div>
<div class="banner-circle">
<ul>
<li
@click="changeImg(item.id)"
v-for="item in imgArr"
:key="item.id"
:class="item.id === currentIndex ? 'active1' : ''"
></li>
<li @click="changeImg(item.id)"
v-for="item in imgArr"
:key="item.id"
:class="item.id === currentIndex ? 'active1' : ''"></li>
</ul>
</div>
</div>
@ -95,9 +109,11 @@
</li>
</ul>
</div>
<div class="online_map" @click="goTo('/maps')">
<div class="online_map"
@click="goTo('/maps')">
<div class="title">在线地图</div>
<img :src="require('@/assets/images/bg-homepage_map.png')" alt="">
<img :src="require('@/assets/images/bg-homepage_map.png')"
alt="">
</div>
<div class="base_data">
<div class="title">基础数据服务</div>
@ -122,8 +138,11 @@
<span class="span2">Application cases</span>
</div>
<ul class="anli-ul d-between">
<li class="anli-item d-between" @click="goToNewSystem(0)">
<img :src="require('@/assets/images/anli1.png')" alt="" width="48" />
<li class="anli-item d-between"
@click="goToNewSystem(0)">
<img :src="require('@/assets/images/anli1.png')"
alt=""
width="48" />
<div>
<div class="title">门头沟乡村振兴</div>
<div class="content">
@ -132,8 +151,11 @@
</div>
</li>
<div class="line"></div>
<li class="anli-item d-between" @click="goToNewSystem(1)">
<img :src="require('@/assets/images/anli2.png')" alt="" width="48" />
<li class="anli-item d-between"
@click="goToNewSystem(1)">
<img :src="require('@/assets/images/anli2.png')"
alt=""
width="48" />
<div>
<div class="title">韧性城市</div>
<div class="content">
@ -142,8 +164,11 @@
</div>
</li>
<div class="line"></div>
<li class="anli-item d-between" @click="goToNewSystem(2)">
<img :src="require('@/assets/images/anli3.png')" alt="" width="48" />
<li class="anli-item d-between"
@click="goToNewSystem(2)">
<img :src="require('@/assets/images/anli3.png')"
alt=""
width="48" />
<div>
<div class="title">超高层大型建筑安全监测</div>
<div class="content">
@ -158,37 +183,37 @@
</template>
<script>
import {getAllInfo} from "@/api/home/index.js"
import { mapGetters, mapState } from "vuex";
import { getAllInfo } from "@/api/home/index.js"
import { mapGetters,mapState } from "vuex";
export default {
name: "home",
data() {
data () {
return {
currentIndex: 0, //
timer: null, //
casesUrl:[
casesUrl: [
"http://210.45.212.110:8080",
null,
"http://49.232.160.156:8090/#/index/home"
],
imgArr: [
{ id: 0, url: require("@/assets/images/lunbo1.png") }
{ id: 0,url: require("@/assets/images/lunbo1.png") }
],
dataInfo:{
layerCount:null,
dataSize:null,
accessCount:null,
visitToday:null,
userCount:null
dataInfo: {
layerCount: null,
dataSize: null,
accessCount: null,
visitToday: null,
userCount: null
}
};
},
computed: {
...mapState(["user"]),
...mapGetters(["name"]),
},
...mapState(["user"]),
...mapGetters(["name"]),
},
//
mounted() {
mounted () {
this.startInterval();
this.initialize();
this.getAllDataInfo()
@ -196,27 +221,38 @@ export default {
methods: {
//
getAllDataInfo(){
getAllInfo().then(res=>{
getAllDataInfo () {
getAllInfo().then(res => {
console.log(res)
if(res.code === 200){
this.dataInfo = res.data
} else{
if(res.code===200) {
this.dataInfo=res.data
} else {
}
})
},
goTo(name){
async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = '/';
})
}).catch(() => {});
},
goTo (name) {
this.$router.push({
path:name
path: name
});
},
initialize(){
initialize () {
},
goToNewSystem(index){
const url = this.casesUrl[index];
if(url == "undefined" || url == null){
goToNewSystem (index) {
const url=this.casesUrl[index];
if(url=="undefined"||url==null) {
this.$message({
message: '暂无当前系统',
type: 'info'
@ -225,13 +261,13 @@ export default {
}
window.open(url);
},
dateItemClick(event) {
dateItemClick (event) {
console.log(event);
$(event.currentTarget)
.addClass("active")
.siblings()
.removeClass("active");
if (event.target.innerText == "在线地图") {
if(event.target.innerText=="在线地图") {
this.$router.push(`/maps`);
} else if (event.target.innerText == "应用示范") {
this.$message({
@ -245,43 +281,43 @@ export default {
}
},
//
startInterval() {
startInterval () {
//
clearInterval(this.timer);
this.timer = setInterval(() => {
this.timer=setInterval(() => {
this.currentIndex++;
if (this.currentIndex > this.imgArr.length - 1) {
this.currentIndex = 0;
if(this.currentIndex>this.imgArr.length-1) {
this.currentIndex=0;
}
}, 3000);
},3000);
},
//
clickIcon(val) {
if (val === "down") {
clickIcon (val) {
if(val==="down") {
this.currentIndex++;
if (this.currentIndex === this.imgArr.length) {
this.currentIndex = 0;
if(this.currentIndex===this.imgArr.length) {
this.currentIndex=0;
}
} else {
/*
this.currentIndex--;
if(this.currentIndex < 0){
this.currentIndex = this.imgArr.length-1;
} */
this.currentIndex--;
if(this.currentIndex < 0){
this.currentIndex = this.imgArr.length-1;
} */
//
if (this.currentIndex === 0) {
this.currentIndex = this.imgArr.length;
if(this.currentIndex===0) {
this.currentIndex=this.imgArr.length;
}
this.currentIndex--;
}
},
//
changeImg(index) {
this.currentIndex = index;
changeImg (index) {
this.currentIndex=index;
},
//
changeInterval(val) {
if (val) {
changeInterval (val) {
if(val) {
clearInterval(this.timer);
} else {
this.startInterval();
@ -295,7 +331,7 @@ export default {
.home {
width: 100%;
height: 100%;
background: url("../assets/images/back.png") no-repeat;
background: url('../assets/images/back.png') no-repeat;
background-size: 100% 100%;
position: relative;
.login {
@ -305,12 +341,14 @@ export default {
width: 8rem;
height: 2rem;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #46535a;
border-radius: 1.25rem;
.item {
width: 50%;
cursor: pointer;
text-align: center;
color: #377dff;
}
@ -356,7 +394,7 @@ export default {
.data_screen {
width: 43.75rem;
height: 19.5625rem;
background: url("../assets/images/bg-homepage_box1.png") no-repeat;
background: url('../assets/images/bg-homepage_box1.png') no-repeat;
background-size: 100% 100%;
.title {
width: 18.0625rem;
@ -426,7 +464,7 @@ export default {
.base_data {
height: 19.5625rem;
width: 20.5625rem;
background: url("../assets/images/bg-homepage_box2.png") no-repeat;
background: url('../assets/images/bg-homepage_box2.png') no-repeat;
background-size: 100% 100%;
.title {
font-size: 1.875rem;
@ -436,7 +474,7 @@ export default {
width: calc(100% - 1.625rem);
margin: 0 auto;
text-align: center;
background: url("../assets/images/title_bg.png") no-repeat;
background: url('../assets/images/title_bg.png') no-repeat;
background-size: 100% auto;
background-position-y: 100%;
}
@ -462,7 +500,7 @@ export default {
.base_func {
height: 19.5625rem;
width: 20.5625rem;
background: url("../assets/images/bg-homepage_box3.png") no-repeat;
background: url('../assets/images/bg-homepage_box3.png') no-repeat;
background-size: 100% 100%;
.title {
font-size: 1.875rem;
@ -472,7 +510,7 @@ export default {
width: calc(100% - 1.625rem);
margin: 0 auto;
text-align: center;
background: url("../assets/images/title_bg.png") no-repeat;
background: url('../assets/images/title_bg.png') no-repeat;
background-size: 100% auto;
background-position-y: 100%;
}
@ -583,12 +621,12 @@ export default {
}
.icon-left {
left: 1.25rem;
background: url("../assets/images/left.png") no-repeat;
background: url('../assets/images/left.png') no-repeat;
background-size: 100% 100%;
}
.icon-right {
right: 1.25rem;
background: url("../assets/images/right.png") no-repeat;
background: url('../assets/images/right.png') no-repeat;
background-size: 100% 100%;
}

View File

@ -8,7 +8,7 @@
</div>
<ul class="d-flex menu-ul">
<li class="menu-item">
<router-link to="/" class="route-btn">首页</router-link>
<router-link to="/home" class="route-btn">首页</router-link>
</li>
<li class="menu-item">
<router-link to="/maps" class="route-btn" active-class="active">在线地图</router-link>

View File

@ -74,7 +74,7 @@ export default {
return {
geoapp: null,
viewer: null,
layerManager:[],
layerManager: [],
dataList: config.subjectconfig,
dataList2: config.layerconfig,
pannelShow: true,
@ -94,7 +94,7 @@ export default {
this.loadMap();
},
created() {},
created() { },
methods: {
loadMap() {
window.geoapp = new Geowin3DAPP(
@ -111,6 +111,7 @@ export default {
},
{
hasProvinceBoundaries: false,
showMouseCenterIcon:false
}
);
window.viewer = geoapp.getViewer();
@ -118,10 +119,9 @@ export default {
//
viewer.scene.globe.depthTestAgainstTerrain = false;
this.setSkyNone();
this.addTdtMap();
viewer.terrainProvider = new Geowin3D.Geowin3DTerrainProvider({
url:"https://terrain.gbim360.com/"
});
// viewer.terrainProvider = new Geowin3D.Geowin3DTerrainProvider({
// url: "https://terrain.gbim360.com/"
// });
// this.addModel();
},
loadLayer(treeNode) {
@ -137,8 +137,8 @@ export default {
}
var layer = null;
if (treeNode.type == "tileset") {
//3dtiles
if (treeNode.type == "geowintileset") {
if (viewer.camera._mode == 2) return;
layer = geoapp.load3DTileset({
tileName: treeNode.layername,
@ -146,7 +146,18 @@ export default {
orientation: treeNode.orientation,
});
geoapp.show(layer);
} else if (treeNode.type == "geowintms") {
}
if (treeNode.type == "tileset") {
if (viewer.camera._mode == 2) return;
layer = geoapp.load3DTileset({
url: treeNode.url,
position: treeNode.position,
orientation: treeNode.orientation,
});
geoapp.show(layer);
}
//geowin tms
else if (treeNode.type == "geowintms") {
layer = geoapp.addImageLayer({
tileName: treeNode.layername,
bounds: treeNode["bounds"],
@ -157,12 +168,33 @@ export default {
layer[x] = treeNode.options[x];
}
}
} else if (treeNode.type == "geowindem") {
}
//tms
else if (treeNode.type == "tms") {
layer = geoapp.addImageLayer({
url: treeNode.url,
bounds: treeNode["bounds"],
});
}
//tms
else if (treeNode.type == "knowntms") {
layer = geoapp.addImageLayer({
tdtUrl: true
});
}
//geowin
else if (treeNode.type == "geowindem") {
layer = geoapp.addDefaultTerrain(treeNode.layername);
viewer.terrainProvider = new Geowin3D.Geowin3DTerrainProvider({
url:"https://terrain.gbim360.com/layer.json"
});
} else if (treeNode.type == "heatmap") {
}
//
else if (treeNode.type == "dem") {
layer = geoapp.addTerrain(treeNode.url);
}
//gltf
else if (treeNode.type == "gltf") {
layer = geoapp.loadGLTF(treeNode);
}
else if (treeNode.type == "heatmap") {
layer = geoapp.addHeatMapLayer(
treeNode.layername,
treeNode.options,
@ -184,56 +216,6 @@ export default {
if (treeNode.position != null)
geoapp.flyToByPosition(treeNode.position);
},
addModel() {
var tileset = viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
url: "http://localhost:9003/model/tayQsI1Ct/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
]),
})
);
viewer.flyTo(tileset);
},
addTdtMap() {
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
"http://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0" +
"&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}" +
"&style=default&format=tiles&tk=8b44b0161ca27be9b972b7f2cc943248",
layer: "tdtCva",
style: "default",
format: "tiles",
tileMatrixSetID: "c",
subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
tilingScheme: new Cesium.GeographicTilingScheme(),
tileMatrixLabels: [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
],
// maximumLevel: 18,
show: false,
})
);
},
setSkyNone() {
viewer.scene.backgroundColor = new Cesium.Color(0.0, 0.0, 0.0, 0.0);
viewer.scene.skyBox.destroy();
@ -291,21 +273,21 @@ export default {
goToLocation(item) {
debugger;
},
removeLayer(treeNode) {
var id = treeNode.id;
if (this.layerManager[id] == null) return;
if(treeNode.type == "tileset" || treeNode.type == "geowintms"){
geoapp.hide(this.layerManager[id].layer);
return ;
}
if(treeNode.type == "geowindem"){
geoapp.removeTerrain();
return ;
}
if(layerManager[id].layer)
geoapp.removeEntity(this.layerManager[id].layer);
delete this.layerManager[id] ;
}
removeLayer(treeNode) {
var id = treeNode.id;
if (this.layerManager[id] == null) return;
if (treeNode.type == "tileset" || treeNode.type == "geowintms" || treeNode.type == "tms" || treeNode.type == "knowntms") {
geoapp.hide(this.layerManager[id].layer);
return;
}
if (treeNode.type == "geowindem" || treeNode.type == "dem") {
geoapp.removeTerrain();
return;
}
if (this.layerManager[id].layer)
geoapp.removeEntity(this.layerManager[id].layer);
delete this.layerManager[id];
}
},
};
@ -431,12 +413,9 @@ export default {
.detail-title {
padding: 0.1rem 1rem;
border-bottom: 1px solid;
border-image: linear-gradient(
to right,
border-image: linear-gradient(to right,
rgba(0, 244, 253, 1),
rgba(0, 244, 253, 0)
)
1;
rgba(0, 244, 253, 0)) 1;
.iconfont {
color: #22f3e2;