This commit is contained in:
wangj 2023-10-10 10:51:52 +08:00
parent a0df7da9e8
commit 1e29ce2485
15 changed files with 996 additions and 409 deletions

32
package-lock.json generated
View File

@ -18,6 +18,7 @@
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"sass": "^1.32.0", "sass": "^1.32.0",
"sass-loader": "^10.1.0", "sass-loader": "^10.1.0",
"uuid": "^9.0.1",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-router": "^3.1.3", "vue-router": "^3.1.3",
"vuex": "^3.6.0", "vuex": "^3.6.0",
@ -9287,6 +9288,15 @@
"websocket-driver": "^0.7.4" "websocket-driver": "^0.7.4"
} }
}, },
"node_modules/sockjs/node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/source-map": { "node_modules/source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
@ -9945,10 +9955,9 @@
} }
}, },
"node_modules/uuid": { "node_modules/uuid": {
"version": "8.3.2", "version": "9.0.1",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"dev": true,
"bin": { "bin": {
"uuid": "dist/bin/uuid" "uuid": "dist/bin/uuid"
} }
@ -18093,6 +18102,14 @@
"faye-websocket": "^0.11.3", "faye-websocket": "^0.11.3",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"websocket-driver": "^0.7.4" "websocket-driver": "^0.7.4"
},
"dependencies": {
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true
}
} }
}, },
"source-map": { "source-map": {
@ -18612,10 +18629,9 @@
"dev": true "dev": true
}, },
"uuid": { "uuid": {
"version": "8.3.2", "version": "9.0.1",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
"dev": true
}, },
"v8-compile-cache": { "v8-compile-cache": {
"version": "2.3.0", "version": "2.3.0",

View File

@ -18,6 +18,7 @@
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"sass": "^1.32.0", "sass": "^1.32.0",
"sass-loader": "^10.1.0", "sass-loader": "^10.1.0",
"uuid": "^9.0.1",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-router": "^3.1.3", "vue-router": "^3.1.3",
"vuex": "^3.6.0", "vuex": "^3.6.0",

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

BIN
public/static/pdf/big.pdf Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,363 +1,466 @@
{ {
"geowinurl":"http://10.241.173.163:9000/geowinmap", "geowinurl": "http://10.241.173.163:9000/geowinmap",
"geowinaeurl":"http://10.241.173.163:9001/geowinaesvr", "geowinaeurl": "http://10.241.173.163:9001/geowinaesvr",
"subjectconfig":[ "subjectconfig": [
{ {
"id": 1, "id": 1,
"content": "规划专题" "name": "规划专题",
}, "open": true,
{ "icon":"/static/images/icon_1.png",
"id": 2, "checked": true,
"content": "老城保护" "children": [
}, {
{ "id": 25,
"id": 3, "name": "建筑白膜",
"content": "门头沟乡村振兴" "url": "http://10.241.127.11:8080/mapdata/建筑白膜/北京/tileset.json",
}, "type": "tileset",
{ "checked": true,
"id": 4, "icon":"/static/images/icon_2.png"
"content": "韧性城市" },
}, {
{ "id": 331,
"id": 5, "name": "城市功能区",
"content": "大型建筑安全监测" "layername": "城市功能区.mxd",
} "type": "geowintms",
], "checked": true,
"layerconfig":[ "icon":"/static/images/icon_3.png"
{ }
"id": 1, ]
"name": "基础图层", },
"open": true, {
"children": [ "id": 2,
{ "open": false,
"id": 11, "name": "老城保护",
"name": "天地图影像", "icon":"/static/images/icon_4.png"
"type": "knowntms", },
"checked": false {
}, "id": 3,
{ "open": true,
"id": 12, "name": "门头沟乡村振兴",
"name": "高德影像", "icon":"/static/images/icon_5.png",
"url": "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}", "checked": true,
"type": "tms", "children": [
"checked": false {
}, "id": "WZSC",
{ "name": "苇子水",
"id": 13, "type": "tileset",
"name": "高德影像注记", "checked": true,
"url": "http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8", "icon":"/static/images/icon_6.png",
"type": "tms", "lnglat":[115.9040993,40.0715331]
"checked": false },
}, {
{ "id": "QJTC",
"id": 14, "name": "千军台",
"name": "高分影像", "type": "tileset",
"layername": "高分影像.mxd", "checked": true,
"type": "geowintms", "lnglat":[115.8617107,39.9424323],
"checked": false "icon":"/static/images/icon_6.png"
}, },
{ {
"id": 19, "id": "CDXC",
"name": "全球地形", "name": "爨底下",
"url": "https://terrain.gbim360.com/", "lnglat":[115.6526124,40.0045780],
"type": "dem", "type": "tileset",
"checked": false "checked": true,
} "icon":"/static/images/icon_6.png"
] },
}, {
{ "id": "HLXC",
"id": 2, "name": "黄岭西",
"name": "模型数据", "lnglat":[115.6522988,39.9825544],
"open": true, "type": "tileset",
"children": [ "checked": true,
{ "icon":"/static/images/icon_6.png"
"id": 21, },
"name": "倾斜摄影模型", {
"open": false, "id": "JSC",
"children": [ "name": "碣石村",
{ "lnglat":[115.7645277,40.0493234],
"id": 211, "type": "tileset",
"name": "黄花长城", "checked": true,
"url": "http://10.241.127.11:8080/mapdata/osgb/黄花城长城模型/tileset.json", "icon":"/static/images/icon_6.png"
"type": "tileset" },
}, {
{ "id": "YHCC",
"id": 212, "name": "沿河城",
"name": "baimaguan", "lnglat":[115.7318168,40.0786621],
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/baimaguan/tileset.json", "type": "tileset",
"type": "tileset" "checked": true,
}, "icon":"/static/images/icon_6.png"
{ },
"id": 213, {
"name": "jijiaying", "id": "DSGYC",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/jijiaying/tileset.json", "name": "东石古岩村",
"type": "tileset" "lnglat":[116.0262491,39.9836081],
}, "type": "tileset",
{ "checked": true,
"id": 214, "icon":"/static/images/icon_6.png"
"name": "shangyu", },
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/shangyu/tileset.json", {
"type": "tileset" "id": "LSC",
}, "name": "灵水村",
{ "lnglat":[115.7395450,40.0096296],
"id": 215, "type": "tileset",
"name": "xiaokou", "checked": true,
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xiaokou/tileset.json", "icon":"/static/images/icon_6.png"
"type": "tileset" },
}, {
{ "id": "XHL",
"id": 216, "name": "西胡林",
"name": "xiaying", "lnglat":[115.7456049,39.9898217],
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xiaying/tileset.json", "type": "tileset",
"type": "tileset" "checked": true,
}, "icon":"/static/images/icon_6.png"
{ },
"id": 217, {
"name": "xituogu", "id": "MLC",
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xituogu/tileset.json", "name": "马栏村",
"type": "tileset" "lnglat":[115.7009601,39.9462865],
}, "type": "tileset",
{ "checked": true,
"id": 218, "icon":"/static/images/icon_6.png"
"name": "yaoqiaoyu", }
"url": "http://10.241.127.11:8080/mapdata/osgb/old_village/yaoqiaoyu/tileset.json", ]
"type": "tileset" },
} {
] "id": 4,
}, "open": false,
{ "name": "韧性城市"
"id": 22, },
"name": "GLTF模型", {
"children": [ "id": 5,
{ "open": true,
"id": 221, "name": "大型建筑安全监测"
"name": "采煤车", }
"url": "http://10.241.127.11:8080/mapdata/gltf/采煤车.glb", ],
"scale":1, "layerconfig": [
"type": "gltf" {
}, "id": 1,
{ "name": "基础图层",
"id": 222, "open": true,
"name": "掘进机", "children": [
"url": "http://10.241.127.11:8080/mapdata/gltf/掘进机.glb", {
"scale":1, "id": 11,
"type": "gltf" "name": "天地图影像",
}, "type": "knowntms",
{ "checked": false
"id": 223, },
"name": "液压支架", {
"url": "http://10.241.127.11:8080/mapdata/gltf/液压支架.glb", "id": 12,
"scale":1, "name": "高德影像",
"type": "gltf" "url": "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
},{ "type": "tms",
"id": 224, "checked": false
"name": "塔杆", },
"url": "/crane.gltf", {
"scale":1, "id": 13,
"type": "gltf" "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": 23, "id": 14,
"name": "BIM模型", "name": "高分影像",
"children": [ "layername": "高分影像.mxd",
{ "type": "geowintms",
"id": 231, "checked": false
"name": "油罐BIM", },
"url": "http://10.241.127.11:8080/mapdata/fbx/tiles/tileset.json", {
"type": "tileset" "id": 19,
}, "name": "全球地形",
{ "url": "https://terrain.gbim360.com/",
"id": 232, "type": "dem",
"name": "机房BIM", "checked": false
"url": "http://10.241.127.11:8080/mapdata/bim数据/anquanju_5.17/tileset.json", }
"type": "tileset" ]
} },
] {
}, "id": 2,
{ "name": "模型数据",
"id": 24, "open": true,
"name": "激光点云", "children": [
"children": [ {
{ "id": 21,
"name": "点云数据1" "name": "倾斜摄影模型",
} "open": false,
] "children": [
}, {
{ "id": 211,
"id": 25, "name": "黄花长城",
"name": "建筑白膜", "url": "http://10.241.127.11:8080/mapdata/osgb/黄花城长城模型/tileset.json",
"children": [ "type": "tileset"
{ },
"name": "北京全区", {
"url":"http://10.241.127.11:8080/mapdata/建筑白膜/北京/tileset.json", "id": 212,
"type": "tileset" "name": "baimaguan",
} "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/baimaguan/tileset.json",
] "type": "tileset"
} },
] {
}, "id": 213,
{ "name": "jijiaying",
"id": 3, "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/jijiaying/tileset.json",
"name": "专题数据", "type": "tileset"
"open": true, },
"children": [ {
{ "id": 214,
"id": 31, "name": "shangyu",
"name": "上海od数据", "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/shangyu/tileset.json",
"children": [ "type": "tileset"
{ },
"id": 311, {
"name": "地铁线路", "id": 215,
"layername":"上海od数据_地铁线路.mxd", "name": "xiaokou",
"type": "geowintms", "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xiaokou/tileset.json",
"checked": false "type": "tileset"
}, },
{ {
"id": 312, "id": 216,
"name": "环线", "name": "xiaying",
"layername":"上海od数据_环线.mxd", "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xiaying/tileset.json",
"type": "geowintms", "type": "tileset"
"checked": false },
}, {
{ "id": 217,
"id": 313, "name": "xituogu",
"name": "就业核密度", "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/xituogu/tileset.json",
"layername":"上海od数据_就业核密度.mxd", "type": "tileset"
"type": "geowintms", },
"checked": false {
}, "id": 218,
{ "name": "yaoqiaoyu",
"id": 314, "url": "http://10.241.127.11:8080/mapdata/osgb/old_village/yaoqiaoyu/tileset.json",
"name": "居住核密度", "type": "tileset"
"layername":"上海od数据_居住核密度.mxd",
"type": "geowintms",
"checked": false
}
]
},
{
"id": 32,
"name": "流动人口分析",
"children": [
{
"id": 321,
"name": "公共预算收入",
"layername":"流动人口专题_公共预算收入.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 322,
"name": "经济",
"layername":"流动人口专题_经济.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 323,
"name": "人口",
"layername":"流动人口专题_人口.mxd",
"type": "geowintms",
"checked": false
}
]
},
{
"id": 33,
"name": "城市功能区",
"children": [
{
"id": 331,
"name": "城市功能区",
"layername":"城市功能区.mxd",
"type": "geowintms",
"checked": false
}
]
}
]
},
{
"id": 8,
"name": "视频",
"open": true,
"children": [
{
"id": 81,
"name": "视频测试"
}
]
}
],
"serverconfig":[
{
"id":1,
"name":"基础地理",
"children":[
{
"id":11,
"name":"矢量",
"info":{
"type":"wmts",
"url":"",
"time":""
} }
}, ]
{ },
"id":12, {
"name":"影像", "id": 22,
"info":{ "name": "GLTF模型",
"type":"wmts", "children": [
"url":"", {
"time":"" "id": 221,
"name": "采煤车",
"url": "http://10.241.127.11:8080/mapdata/gltf/采煤车.glb",
"scale": 1,
"type": "gltf"
},
{
"id": 222,
"name": "掘进机",
"url": "http://10.241.127.11:8080/mapdata/gltf/掘进机.glb",
"scale": 1,
"type": "gltf"
},
{
"id": 223,
"name": "液压支架",
"url": "http://10.241.127.11:8080/mapdata/gltf/液压支架.glb",
"scale": 1,
"type": "gltf"
},
{
"id": 224,
"name": "塔杆",
"url": "/crane.gltf",
"scale": 1,
"type": "gltf"
} }
]
},
{
"id": 23,
"name": "BIM模型",
"children": [
{
"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"
}
]
},
{
"id": 24,
"name": "激光点云",
"children": [
{
"name": "点云数据1"
}
]
},
{
"id": 25,
"name": "建筑白膜",
"children": [
{
"name": "北京全区",
"url": "http://10.241.127.11:8080/mapdata/建筑白膜/北京/tileset.json",
"type": "tileset"
}
]
}
]
},
{
"id": 3,
"name": "专题数据",
"open": true,
"children": [
{
"id": 31,
"name": "上海od数据",
"children": [
{
"id": 311,
"name": "地铁线路",
"layername": "上海od数据_地铁线路.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 312,
"name": "环线",
"layername": "上海od数据_环线.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 313,
"name": "就业核密度",
"layername": "上海od数据_就业核密度.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 314,
"name": "居住核密度",
"layername": "上海od数据_居住核密度.mxd",
"type": "geowintms",
"checked": false
}
]
},
{
"id": 32,
"name": "流动人口分析",
"children": [
{
"id": 321,
"name": "公共预算收入",
"layername": "流动人口专题_公共预算收入.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 322,
"name": "经济",
"layername": "流动人口专题_经济.mxd",
"type": "geowintms",
"checked": false
},
{
"id": 323,
"name": "人口",
"layername": "流动人口专题_人口.mxd",
"type": "geowintms",
"checked": false
}
]
},
{
"id": 33,
"name": "城市功能区",
"children": [
{
"id": 331,
"name": "城市功能区",
"layername": "城市功能区.mxd",
"type": "geowintms",
"checked": false
}
]
}
]
},
{
"id": 8,
"name": "视频",
"open": true,
"children": [
{
"id": 81,
"name": "视频测试"
}
]
}
],
"serverconfig": [
{
"id": 1,
"name": "基础地理",
"children": [
{
"id": 11,
"name": "矢量",
"info": {
"type": "wmts",
"url": "",
"time": ""
} }
] },
},{ {
"id":2, "id": 12,
"name":"城市建设", "name": "影像",
"children":[ "info": {
"type": "wmts",
] "url": "",
},{ "time": ""
"id":3, }
"name":"自然资源", }
"children":[ ]
},
] {
},{ "id": 2,
"id":4, "name": "城市建设",
"name":"基础设施", "children": []
"children":[ },
{
] "id": 3,
},{ "name": "自然资源",
"id":5, "children": []
"name":"社会经济", },
"children":[ {
"id": 4,
] "name": "基础设施",
},{ "children": []
"id":6, },
"name":"城市运行", {
"children":[ "id": 5,
"name": "社会经济",
] "children": []
},{ },
"id":7, {
"name":"专题测试", "id": 6,
"children":[ "name": "城市运行",
"children": []
] },
},{ {
"id":8, "id": 7,
"name":"标注目录", "name": "专题测试",
"children":[ "children": []
},
] {
} "id": 8,
] "name": "标注目录",
} "children": []
}
]
}

View File

@ -0,0 +1,129 @@
import { v4 as uuidv4 } from "uuid";
import { datamap } from "./data.js";
// import '../utils/proj4.js'
var geoapp,
viewer,
layerList = [],
ylLabelIds = [],
clLabelIds = [],
videoLabelIds = [],
qjEntities = [],
mm,
am;//测量分析工具
/**
* 加载三维瓦片修正矩阵
* @param {*} opt
*/
export function load3DTiles({ url, modelMatrix }) {
let layer = geoapp.load3DTileset({
url,
modelMatrix,
});
geoapp.show(layer);
layerList.push(layer);
return;
}
export function loadAdministrativeBoundary() {
const position = [115.80677047675688, 39.29038482006223, 74564.75377910174]
Geowin3D.GwCamera.flyToByPosition(viewer.scene.camera, position)
const geojson = "/static/门头沟区_行政边界.geojson";
// 创建Cesium的GeoJsonDataSource
var dataSource = new Cesium.GeoJsonDataSource.load(geojson, {
clampToGround: false,
stroke: Cesium.Color.YELLOW,
fill: Cesium.Color.TRANSPARENT, // 设置填充颜色为透明
strokeWidth: 100,
}).then(dataSource => {
//使用 entity.polygon.hierarchy._value.positions设置线条的颜色
viewer.dataSources.add(dataSource);
let entities = dataSource.entities.values;
for (let i = 0; i < entities.length; i++) {
let entity = entities[i];
let polyPositions = entity.polygon.hierarchy.getValue(
Cesium.JulianDate.now()
).positions;
let positions = entity.polygon.hierarchy._value.positions;
entity.polyline = {
positions: positions,
width: 2,
material: Cesium.Color.fromBytes(3, 255, 255)
};
}
});
console.log(dataSource)
// 将数据源添加到Cesium的Viewer中
// viewer.dataSources.add(dataSource);
}
/**
* 清除上次三维瓦片
*/
export function remove3DTileset() {
layerList.forEach((layer) => {
geoapp.remove3DTileset(layer);
});
layerList = [];
}
export function loadTerrain(viewer, opt) {
viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
url: opt.url,
});
}
// 添加村落
export function addClLabels(data, callback) {
console.log(data)
data.forEach((element, index) => {
// let { height } = upPositions[index];
var div = document.createElement("div");
const domId = uuidv4();
const name = element.name
div.className = "earth_div_label";
const id = element;
div.innerHTML = `
<div class="earth_div_label_par">
<div class="earth_div_label_img"></div>
<div class="earth_div_label_con" id="${domId}">
<div style="text-align: center; margin-bottom: 6px; font-weight:600;" >${element["name"]
}</div>
</div>
</div>
`;
viewer.cesiumWidget.container.appendChild(div);
let position = [element.lnglat[0],element.lnglat[1],15];
console.log(position)
let entity = mm.add("DivLabel", {
position: Geowin3D.GwMisc.GwGeometric.tc(position),
maxDistance: 10000000000,
div,
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, Number.POSITIVE_INFINITY),
depthTest: false
});
clLabelIds.push(entity.id);
// 绑定点击详请事件
document.getElementById(domId).onclick = () => {
console.log("点详请", id);
if (callback instanceof Function) callback(id);
};
});
}
// 清除村落
export function removeClLabels() {
clLabelIds.forEach((id) => mm?.removeById(id));
clLabelIds = [];
}
export function removeAllDivLabel() {
mm?.removeAll();
}

106
src/utils/mentougou/data.js Normal file
View File

@ -0,0 +1,106 @@
/*
* @Description:
* @Author: ZDK
* @Date: 2023-03-07 08:41:11
* @LastEditTime: 2023-06-08 17:58:03
* @LastEditors: ZDK
* @FilePath: \mentougou\src\components\data.js
*/
const tdtToken = "8b44b0161ca27be9b972b7f2cc943248";
// const mapdataurl = "http://127.0.0.1:8080/mapdata/";
const mapdataurl = "http://210.45.212.110:8080/mapdata/";
export const datamap = {
satemap: {
url: "http://t0.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=" +
tdtToken,
},
default: [{
name: "苇子水",
cunluoCode:"WZSC",
lnglat:[115.9040993,40.0715331],
current:0,
url: mapdataurl + "osgb/old_village/weizishui/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999999994, -6.106226635438361e-16, -7.869891793799155e-9, 0, 6.38378239159465e-16, 1.0000000000000004, 1.621309314581154e-8, 0, 7.869891599510126e-9, -1.6213092923766936e-8, 0.9999999999999996, 0, -11.621781610883772, 23.942518441937864, 22.23146386165172, 1])
},
{
name: "千军台",
cunluoCode:"QJTC",
current:1,
lnglat:[115.8617107,39.9424323],
url: mapdataurl + "osgb/old_village/qianjuntai/3dtiles/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999999999, -3.885780586188048e-16, -8.156060660180486e-9, 0, 3.0531133177191805e-16, 1.0000000000000004, 1.683263645135824e-8, 0, 8.156060660180486e-9, -1.6832636562380543e-8, 1.0000000000000004, 0, -12.076581744942814, 24.92388427257538, 23.029770434834063, 1]),
},
{
name: "爨底下",
cunluoCode:"CDXC",
current:2,
lnglat:[115.6526124,40.0045780],
url: mapdataurl + "osgb/old_village/cuandixia/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999999997, 1.942890293094024e-16, -5.8039863748415854e-9, 0, -6.106226635438361e-16, 1, 1.2093679169211669e-8, 0, 5.8039861527969805e-9, -1.2093679335745122e-8, 0.9999999999999994, 0, -8.583133175503463, 17.884546627290547, 16.53246138477698, 1]),
},
{
name: "黄岭西",
cunluoCode:"HLXC",
current:3,
lnglat:[115.6522988,39.9825544],
url: mapdataurl + "osgb/old_village/huanglingxi/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([1.0000000000000004, 9.992007221626409e-16, -8.525114392199384e-9, 0, -6.661338147750939e-16, 0.9999999999999996, 1.7757145032160082e-8, 0, 8.525114142399204e-9, -1.7757145254204687e-8, 0.9999999999999999, 0, -12.61369528900832, 26.273339487612247, 24.26610736269504, 1]),
},
{
name: "碣石村",
cunluoCode:"JSC",
current:4,
lnglat:[115.7645277,40.0493234],
url: mapdataurl + "osgb/old_village/jieshicun/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999999998, 1.1657341758564144e-15, -2.68300132111321e-10, 0, -9.992007221626409e-16, 1.0000000000000002, 5.561584526247998e-10, 0, 2.6829988231114044e-10, -5.561584526247998e-10, 1, 0, -0.3964122487232089, 0.8217222858220339, 0.7614794159308076, 1]),
},
{
name: "沿河城",
cunluoCode:"YHCC",
current:5,
lnglat:[115.7318168,40.0786621],
url: mapdataurl + "osgb/old_village/yanhecheng/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999999998,1.3877787807814457e-16,-6.720001721749469e-9,0,3.608224830031759e-16,1,1.3950753663394266e-8,0,6.7200018327717714e-9,-1.3950754107483476e-8,0.9999999999999999,0,-9.92222295794636,20.598579606041312,19.102989060338587,1]),
},
{
name: "东石古岩村",
cunluoCode:"DSGYC",
current:6,
lnglat:[116.0262491,39.9836081],
url: mapdataurl + "osgb/old_village/guyancun/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999997975,4.1455727739503345e-13,-6.366244987843217e-7,0,4.15639744844043e-13,0.9999999999991493,0.0000013046047381837234,0,6.366244983124769e-7,-0.0000013046047381282122,0.9999999999989463,0,-3.4328814200125635,7.034842949360609,6.5036910912021995,1])
},
{
name: "灵水村",
cunluoCode:"LSC",
current:7,
lnglat:[115.7395450,40.0096296],
url: mapdataurl + "osgb/old_village/lingshuicun/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([0.9999999999999999,2.7755575615628914e-17,-4.155087912627309e-9,0,-2.7755575615628914e-17,0.9999999999999998,8.621047098422707e-9,0,4.155087829360582e-9,-8.621046987400405e-9,0.9999999999999998,0,-6.143462609965354,12.746560742147267,11.794829869177192,1])
},
{
name: "西胡林",
cunluoCode:"XHL",
current:8,
lnglat:[115.7456049,39.9898217],
url: mapdataurl + "osgb/old_village/xihulin/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([1.0000000000000002,-1.1102230246251565e-16,-4.710496243065521e-9,0,-1.942890293094024e-16,1.0000000000000007,9.772533837715258e-9,0,4.710495854487462e-9,-9.772533837715258e-9,1.0000000000000004,0,-6.967691792175174,14.455379123799503,13.36598642449826,1])
},
{
name: "马栏村",
cunluoCode:"MLC",
current:9,
lnglat:[115.7009601,39.9462865],
url: mapdataurl + "osgb/old_village/malancun/tileset.json",
modelMatrix: Cesium.Matrix4.fromArray([1.0000000000000002,-2.7755575615628914e-17,-4.826828076121004e-9,0,-3.3306690738754696e-16,0.9999999999999999,1.0034505171230279e-8,0,4.826827770809672e-9,-1.0034505781852943e-8,0.9999999999999996,0,-7.146686004474759,14.85726563911885,13.710745958145708,1])
},
],
dem: {
url: mapdataurl + "dem/jing-dem-tiles/",
},
};

View File

@ -2,21 +2,24 @@
<div class="maps"> <div class="maps">
<div id="earth"></div> <div id="earth"></div>
<ul class="map-toggle d-around"> <ul class="map-toggle d-around">
<li class="map-item d-center"> <li class="map-item d-center"
@click="twoDimensional">
<img :src="require('@/assets/images/icon-shijing.png')"
alt="" />
<p class="mb-0">二维</p>
</li>
<li class="map-item d-center"
@click="threeDimensional">
<img :src="require('@/assets/images/icon-sanwei.png')" <img :src="require('@/assets/images/icon-sanwei.png')"
alt="" /> alt="" />
<p class="mb-0">三维</p> <p class="mb-0">三维</p>
</li> </li>
<li class="map-item d-center">
<img :src="require('@/assets/images/icon-shijing.png')" <!-- <li class="map-item d-center">
alt="" />
<p class="mb-0">实景</p>
</li>
<li class="map-item d-center">
<img :src="require('@/assets/images/icon-luansheng.png')" <img :src="require('@/assets/images/icon-luansheng.png')"
alt="" /> alt="" />
<p class="mb-0">孪生</p> <p class="mb-0">孪生</p>
</li> </li> -->
</ul> </ul>
<div class="data-toggle" <div class="data-toggle"
v-show="toggleShow"> v-show="toggleShow">
@ -26,14 +29,18 @@
<li class="data-item-left d-center active">专题</li> <li class="data-item-left d-center active">专题</li>
<li class="data-item-right d-center">数据资源</li> <li class="data-item-right d-center">数据资源</li>
</ul> </ul>
<ul class="data-list" <div id="dataList"
class="ztree data-list"
v-show="pannelShowLeft"></div>
<!-- <ul class="data-list"
v-show="pannelShowLeft"> v-show="pannelShowLeft">
<li class="list-li" <li class="list-li"
@click="loadService(item)"
v-for="(item, index) in dataList" v-for="(item, index) in dataList"
:key="index"> :key="index">
{{ item.content }} {{ item.content }}
</li> </li>
</ul> </ul> -->
<div id="dataList2" <div id="dataList2"
class="ztree data-list" class="ztree data-list"
v-show="pannelShowRight"></div> v-show="pannelShowRight"></div>
@ -64,7 +71,6 @@
</ul> </ul>
</div> </div>
<ul class="map-tool"> <ul class="map-tool">
<li class="tool-item d-center"><i class="iconfont icon-fenping"></i></li>
<li id="measure" <li id="measure"
class="tool-item d-center" class="tool-item d-center"
@click="measureTool"> @click="measureTool">
@ -110,7 +116,7 @@
@click="removeMeasure"> @click="removeMeasure">
<el-tooltip class="item" <el-tooltip class="item"
effect="dark" effect="dark"
content="重置" content="信息条"
placement="left"> placement="left">
<i class="iconfont icon-fuwei"></i> <i class="iconfont icon-fuwei"></i>
</el-tooltip> </el-tooltip>
@ -140,7 +146,8 @@
</div> </div>
</div> </div>
</div> </div>
<div id="toolbar" style="top:0;left:0"> <div id="toolbar"
style="top:0;left:0">
</div> </div>
</div> </div>
@ -149,6 +156,8 @@
<script> <script>
const config=require('../utils/config.json'); const config=require('../utils/config.json');
import bxmap from '@/utils/flycesium.js'; import bxmap from '@/utils/flycesium.js';
import { loadAdministrativeBoundary,loadTerrain } from '@/utils/mentougou/EarthCore.js'
import { datamap } from "@/utils/mentougou/data.js";
export default { export default {
name: "maps", name: "maps",
data () { data () {
@ -165,6 +174,7 @@ export default {
pannelShowRight: false, pannelShowRight: false,
toggleShow: true, toggleShow: true,
zTreeObj: undefined, zTreeObj: undefined,
zTreeObjRight: undefined,
tempEntities: [], tempEntities: [],
pointNum: 0, pointNum: 0,
floatingPoint: undefined, floatingPoint: undefined,
@ -177,7 +187,9 @@ export default {
viewPoints: [], viewPoints: [],
currentGroupName: '', currentGroupName: '',
handler: null, handler: null,
slp: null slp: null,
layerList: [],
cameraInfoList:undefined
// distancehandler:null, // distancehandler:null,
// areahandler:null // areahandler:null
}; };
@ -189,7 +201,7 @@ export default {
that.pannelShowLeft=true; that.pannelShowLeft=true;
that.pannelShowRight=false; that.pannelShowRight=false;
if(that.pannelShowLeft&&that.zTreeObj==undefined) { if(that.pannelShowLeft&&that.zTreeObj==undefined) {
that.initTree(); that.initTreeRight();
} }
}); });
$(".data-item-right").click(function(e) { $(".data-item-right").click(function(e) {
@ -202,7 +214,8 @@ export default {
}); });
this.loadMap(); this.loadMap();
}, },
created () { }, created () {
},
watch: { watch: {
groupIDs (newValue) { groupIDs (newValue) {
this.groupNames=[]; this.groupNames=[];
@ -294,12 +307,16 @@ export default {
} }
}); });
this.setSkyNone(); this.setSkyNone();
this.mapInfo()
this.laodAllLandform()
// viewer.terrainProvider = new Geowin3D.Geowin3DTerrainProvider({ // viewer.terrainProvider = new Geowin3D.Geowin3DTerrainProvider({
// url: "https://terrain.gbim360.com/" // url: "https://terrain.gbim360.com/"
// }); // });
// this.addModel(); // this.addModel();
}, },
loadLayer (treeNode) { loadLayer (treeNode) {
console.log(treeNode)
var id=treeNode.id; var id=treeNode.id;
if(this.layerManager[id]!=null) { if(this.layerManager[id]!=null) {
if(treeNode.type=="geowindem") { if(treeNode.type=="geowindem") {
@ -333,7 +350,7 @@ export default {
} }
//geowin tms //geowin tms
else if(treeNode.type=="geowintms") { else if(treeNode.type=="geowintms") {
var url = `${config.geowinaeurl}/ds?requesttype=img&srs=EPSG:3857&serviceproviderid=arc.commonserviceprovider&serviceid=gettile&mxd=${treeNode["layername"]}&x={x}&y={y}&z={z}` var url=`${config.geowinaeurl}/ds?requesttype=img&srs=EPSG:3857&serviceproviderid=arc.commonserviceprovider&serviceid=gettile&mxd=${treeNode["layername"]}&x={x}&y={y}&z={z}`
layer=geoapp.addImageLayer({ layer=geoapp.addImageLayer({
url: url, url: url,
bounds: treeNode["bounds"], bounds: treeNode["bounds"],
@ -407,6 +424,161 @@ export default {
viewer.scene.backgroundColor=new Cesium.Color(0,0,0,0); viewer.scene.backgroundColor=new Cesium.Color(0,0,0,0);
}, },
//
laodAllLandform () {
let mentougouLandformList=this.dataList[2].children
mentougouLandformList.forEach((item,index) => {
if(item.name===datamap.default[index].name) {
item.url=datamap.default[index].url
item.modelMatrix=datamap.default[index].modelMatrix
item.id=datamap.default[index].current
}
})
this.dataList[2].children=mentougouLandformList
this.initTreeRight();
this.dataList.forEach(item => {
console.log(item)
let layer
if(item.children&&item.checked) {
for(let i=0;i<item.children.length;i++) {
if(item.children[i].type==='geowintms') {
var url=`${config.geowinaeurl}/ds?requesttype=img&srs=EPSG:3857&serviceproviderid=arc.commonserviceprovider&serviceid=gettile&mxd=${item.children[i]["layername"]}&x={x}&y={y}&z={z}`
layer=geoapp.addImageLayer({
url: url,
bounds: item.children[i]["bounds"],
});
if(item.children[i].options!=null) {
for(var x in item.children[i].options) {
layer[x]=item.children[i].options[x];
}
}
} else if(item.children[i].type==='tileset'&&item.id===1) {
if(viewer.camera._mode==2) return;
layer=geoapp.load3DTileset({
url: item.children[i].url,
position: item.children[i].position,
orientation: item.children[i].orientation,
});
geoapp.show(layer);
} else if(item.children[i].type==='tileset'&&item.id===3) {
loadTerrain(viewer,datamap.dem);
// this.load3DTiles(item.children[i].url,item.children[i].modelMatrix);
layer=geoapp.load3DTileset({
url: item.children[i].url,
modelMatrix: item.children[i].modelMatrix,
});
geoapp.show(layer);
this.layerList.push(layer);
}
this.layerManager[item.children[i].id]={ treeNode: item.children[i],layer: layer };
viewer.scene.requestRender();
}
}
})
this.loadAdministrativeBoundary()
},
initTreeRight () {
const that=this
var zNodes=this.dataList;
this.zTreeObjRight=$.fn.zTree.init(
$("#dataList"),
{
data: {
simpleData: {
enable: true, //true false 使 使
idKey: "id", //
pIdKey: "parentId", //
rootPId: -1, // pIdKey
},
key: {
name: "name", //zTree "name"
},
},
view: {
// showLine:false
},
check: {
enable: true, //true false
nocheckInherit: true, // nocheck = true nocheck = true
},
callback: {
onClick: function(event,treeId,treeNode) {
if(treeNode.id==3) {
console.log('门头沟')
window.open('/static/pdf/mentougou.pdf')
} else if(treeNode.id==5){
console.log('变形监测')
window.open('/static/pdf/big.pdf')
};
},
onCheck: function(event,treeId,treeNode) {
if(treeNode.checked==false) {
// if(treeNode.type === 'tileset') {
// viewer.scene.primitives.remove(tilesetEntity)
// }
that.removeLayer(treeNode);
return;
}
that.loadService(treeNode);
},
},
},
zNodes
); //
this.zTreeObjRight.expandAll(true);
},
loadService (treeNode) {
console.log(treeNode)
let layer=null
let layer1=null
let layer2=null
if(treeNode.id===331) {
var url=`${config.geowinaeurl}/ds?requesttype=img&srs=EPSG:3857&serviceproviderid=arc.commonserviceprovider&serviceid=gettile&mxd=${treeNode["layername"]}&x={x}&y={y}&z={z}`
layer1=geoapp.addImageLayer({
url: url,
bounds: treeNode["bounds"],
});
if(treeNode.options!=null) {
for(var x in treeNode.options) {
layer1[x]=treeNode.options[x];
}
}
this.layerManager[331]={ layer: layer1 };
// this.layerManager[25]={ layer: layer2 };
} else if(treeNode.id===25) {
if(viewer.camera._mode==2) return;
layer2=geoapp.load3DTileset({
url: treeNode.url,
position: treeNode.position,
orientation: treeNode.orientation,
});
geoapp.show(layer2);
this.layerManager[25]={ layer: layer2 };
} else if(treeNode.id===3) {
loadTerrain(viewer,datamap.dem);
//
const tileListSort=[...datamap.default.slice(1),datamap.default[0]]; //
tileListSort.forEach((tiles) => {
layer=geoapp.load3DTileset({
url: tiles.url,
modelMatrix: tiles.modelMatrix,
});
geoapp.show(layer);
});
this.loadAdministrativeBoundary()
} else if(treeNode.type==='tileset'&&treeNode.modelMatrix) {
layer=geoapp.load3DTileset({
url: treeNode.url,
modelMatrix: treeNode.modelMatrix,
});
geoapp.show(layer);
this.layerManager[treeNode.id]={ treeNode: treeNode,layer: layer };
}
},
initTree () { initTree () {
const that=this; const that=this;
console.log("加载图层列表"); console.log("加载图层列表");
@ -448,45 +620,70 @@ export default {
); // ); //
this.zTreeObj.expandAll(true); //true false this.zTreeObj.expandAll(true); //true false
}, },
loadAdministrativeBoundary () {
const position=[115.80677047675688,39.29038482006223,74564.75377910174]
Geowin3D.GwCamera.flyToByPosition(viewer.scene.camera,position)
const geojson="/static/门头沟区_行政边界.geojson";
// CesiumGeoJsonDataSource
var dataSource=new Cesium.GeoJsonDataSource.load(geojson,{
clampToGround: false,
stroke: Cesium.Color.YELLOW,
fill: Cesium.Color.TRANSPARENT, //
strokeWidth: 100,
}).then(dataSource => {
//使 entity.polygon.hierarchy._value.positions线
viewer.dataSources.add(dataSource);
let entities=dataSource.entities.values;
for(let i=0;i<entities.length;i++) {
let entity=entities[i];
let polyPositions=entity.polygon.hierarchy.getValue(
Cesium.JulianDate.now()
).positions;
let positions=entity.polygon.hierarchy._value.positions;
entity.polyline={
positions: positions,
width: 2,
material: Cesium.Color.fromBytes(3,255,255)
};
}
});
// CesiumViewer
// viewer.dataSources.add(dataSource);
},
twoDimensional () {
// this.loadAdministrativeBoundary()
viewer.scene.morphTo2D();
},
threeDimensional () {
viewer.scene.morphTo3D();
},
measureTool () { measureTool () {
this.toolList=[ this.toolList=[
{ {
name: '多点坐标量测', name: '多点定位',
id: 'SINGLE_POINT' id: 'SINGLE_POINT'
}, },
{ {
name: '单点坐标量测', name: '单点定位',
id: 'SINGLE_POINT' id: 'SINGLE_POINT'
}, },
{ {
name: '两点距离量测', name: '两点距离',
id: 'LINE_DISTANCE' id: 'LINE_DISTANCE'
}, },
{ {
name: '多点距离量测', name: '多点距离',
id: 'SEGMENTS_DISTANCE' id: 'SEGMENTS_DISTANCE'
}, },
{ {
name: '多点距离量测(累计长)', name: '多点距离(累计长)',
id: 'SEGMENTS_DISTANCE' id: 'SEGMENTS_DISTANCE'
}, },
{ {
name: '面积量测', name: '面积量测',
id: 'AREA' id: 'AREA'
}, },
{
name: '高程量测',
id: 'ELEVATION'
},
{
name: '净高量测',
id: 'HEIGHT'
},
{
name: '夹角量测',
id: 'ANGLE'
},
{ {
name: '清空数据', name: '清空数据',
id: 'REMOVE' id: 'REMOVE'
@ -718,14 +915,23 @@ export default {
// //
removeMeasure () { removeMeasure () {
am.removeAll(); am.removeAll();
},
mapInfo(){
if(typeof this.cameraInfoList==='undefined') {
this.cameraInfoList=new Geowin3D.GwWidgets.GwCamera(viewer);
} else {
console.log('已创建相机信息条!');
}
}, },
goToLocation (item) { goToLocation (item) {
}, },
removeLayer(treeNode) { removeLayer (treeNode) {
var id = treeNode.id; console.log(treeNode)
if (this.layerManager[id] == null) return; var id=treeNode.id;
if (treeNode.type == "tileset" || treeNode.type == "geowintms" || treeNode.type == "tms" || treeNode.type == "knowntms" || treeNode.type == "gltf") { if(this.layerManager[id]==null) return;
if(treeNode.type=="tileset"||treeNode.type=="geowintms"||treeNode.type=="tms"||treeNode.type=="knowntms"||treeNode.type=="gltf") {
console.log(this.layerManager[id])
geoapp.hide(this.layerManager[id].layer); geoapp.hide(this.layerManager[id].layer);
return; return;
} }
@ -733,6 +939,13 @@ export default {
geoapp.removeTerrain(); geoapp.removeTerrain();
return; return;
} }
if(treeNode.id==3) {
treeNode.children.forEach(item => {
geoapp.hide(this.layerManager[item.id].layer);
})
viewer.dataSources.removeAll()
}
if(this.layerManager[id].layer) if(this.layerManager[id].layer)
geoapp.removeEntity(this.layerManager[id].layer); geoapp.removeEntity(this.layerManager[id].layer);
delete this.layerManager[id]; delete this.layerManager[id];
@ -853,7 +1066,23 @@ export default {
margin: 0 auto; margin: 0 auto;
overflow-y: scroll; overflow-y: scroll;
::v-deep.ztree li span { ::v-deep.ztree li span {
color: #fff !important; font-size: 13px;
color: #05266d !important;
margin-top: 5px !important;
}
::v-deep.ztree li span.ico_open {
margin-left: 3px !important;
}
::v-deep.ztree li span.node_name {
color: #91b6e6 !important;
position: relative;
top: 5px;
margin-left: 5px !important;
}
::v-deep.ztree li a.curSelectedNode {
background-color: transparent !important;
border: 0px !important;
} }
} }
@ -909,7 +1138,7 @@ export default {
.tool-item { .tool-item {
width: 2.5rem; width: 2.5rem;
height: 2.3rem; height: 2.3rem;
margin-top: 0.8rem; margin-top: 1.4rem;
background-color: rgba(3, 6, 29, 0.8); background-color: rgba(3, 6, 29, 0.8);
box-shadow: 0px 0px 12px 4px rgba(19, 112, 252, 0.8); box-shadow: 0px 0px 12px 4px rgba(19, 112, 252, 0.8);
border: solid 1px rgba(0, 62, 228, 1); border: solid 1px rgba(0, 62, 228, 1);