|
@@ -1,14 +1,9 @@
|
|
<template>
|
|
<template>
|
|
- <el-dialog v-if="isShow"
|
|
|
|
- :model-value="isShow"
|
|
|
|
- title="地理信息"
|
|
|
|
- :width="1200"
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
- :before-close="handleClose"
|
|
|
|
-
|
|
|
|
- >
|
|
|
|
|
|
+ <el-dialog v-if="isShow" :model-value="isShow" title="地理信息" :width="1200" :close-on-click-modal="false"
|
|
|
|
+ :before-close="handleClose">
|
|
<div id="mapBox">
|
|
<div id="mapBox">
|
|
- <div id="mapContainer"></div>
|
|
|
|
|
|
+ <!-- <div id="mapContainer"></div> -->
|
|
|
|
+ <iframe :src="src" frameborder="0"></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
@@ -20,6 +15,7 @@ let viewer = null;
|
|
export default {
|
|
export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ src: systemConfig.single_map,
|
|
viewer: '',
|
|
viewer: '',
|
|
centerPoint: {},
|
|
centerPoint: {},
|
|
cesiumConfig: {
|
|
cesiumConfig: {
|
|
@@ -29,7 +25,7 @@ export default {
|
|
imageryProvider: new SkyScenery.SingleTileImageryProvider({
|
|
imageryProvider: new SkyScenery.SingleTileImageryProvider({
|
|
url: (function createColorCanvas(color) {
|
|
url: (function createColorCanvas(color) {
|
|
let width = 1,
|
|
let width = 1,
|
|
- height = 1;
|
|
|
|
|
|
+ height = 1;
|
|
let canvas = document.createElement("canvas");
|
|
let canvas = document.createElement("canvas");
|
|
canvas.width = width;
|
|
canvas.width = width;
|
|
canvas.height = height;
|
|
canvas.height = height;
|
|
@@ -73,16 +69,16 @@ export default {
|
|
methods: {
|
|
methods: {
|
|
initMap() {
|
|
initMap() {
|
|
let app = this;
|
|
let app = this;
|
|
- viewer = new SkyScenery.Viewer('mapContainer', app.cesiumConfig);
|
|
|
|
- // 加载底图
|
|
|
|
- if (app.type!==4) {
|
|
|
|
- viewer.imageryLayers.addImageryProvider(
|
|
|
|
- new SkyScenery.ArcGisMapServerImageryProvider({
|
|
|
|
- url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
|
|
|
|
- })
|
|
|
|
- )
|
|
|
|
- }
|
|
|
|
- window.viewer = viewer
|
|
|
|
|
|
+ // viewer = new SkyScenery.Viewer('mapContainer', app.cesiumConfig);
|
|
|
|
+ // // 加载底图
|
|
|
|
+ // if (app.type !== 4) {
|
|
|
|
+ // viewer.imageryLayers.addImageryProvider(
|
|
|
|
+ // new SkyScenery.ArcGisMapServerImageryProvider({
|
|
|
|
+ // url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
|
|
|
|
+ // })
|
|
|
|
+ // )
|
|
|
|
+ // }
|
|
|
|
+ // window.viewer = viewer
|
|
// 加载模型
|
|
// 加载模型
|
|
app.loadingEntities(app.type);
|
|
app.loadingEntities(app.type);
|
|
},
|
|
},
|
|
@@ -93,13 +89,15 @@ export default {
|
|
}
|
|
}
|
|
// 加载GeoJson
|
|
// 加载GeoJson
|
|
if (type === 0) {
|
|
if (type === 0) {
|
|
- let obj = {"type": "Feature", "geometry": JSON.parse(app.item), "properties": {}}
|
|
|
|
|
|
+ let obj = { "type": "Feature", "geometry": JSON.parse(app.item), "properties": {} }
|
|
this.addGeoJson(obj);
|
|
this.addGeoJson(obj);
|
|
}
|
|
}
|
|
// 加载3DTiles
|
|
// 加载3DTiles
|
|
else if (type === 1) {
|
|
else if (type === 1) {
|
|
- let url = app.item.url+'/tileset.json'
|
|
|
|
- app.add3DTiles(url)
|
|
|
|
|
|
+ // let url = app.item.url + '/tileset.json'
|
|
|
|
+ // app.add3DTiles(url)
|
|
|
|
+ // http://localhost:8080/map-server/index.html?dataType=threeD&url=http://1.119.143.102:9002/model_data/750/qinghulu/output/tileset.json
|
|
|
|
+ this.src = systemConfig.single_map + "?dataType=threeD&" + app.item.url + '/tileset.json'
|
|
}
|
|
}
|
|
// 加载gltf
|
|
// 加载gltf
|
|
else if (type === 2) {
|
|
else if (type === 2) {
|
|
@@ -121,23 +119,23 @@ export default {
|
|
})
|
|
})
|
|
viewer.dataSources.add(res);
|
|
viewer.dataSources.add(res);
|
|
res.then(() => {
|
|
res.then(() => {
|
|
- viewer.zoomTo(res, {heading: 2.718565, pitch: -0.415366, roll: 0.0,});
|
|
|
|
|
|
+ viewer.zoomTo(res, { heading: 2.718565, pitch: -0.415366, roll: 0.0, });
|
|
}).catch(() => {
|
|
}).catch(() => {
|
|
- app.$message({message: '加载失败', type: 'error'})
|
|
|
|
|
|
+ app.$message({ message: '加载失败', type: 'error' })
|
|
})
|
|
})
|
|
},
|
|
},
|
|
// 添加模型
|
|
// 添加模型
|
|
add3DTiles(url) {
|
|
add3DTiles(url) {
|
|
let app = this;
|
|
let app = this;
|
|
let tile = undefined;
|
|
let tile = undefined;
|
|
- if (!url || url=='') {
|
|
|
|
|
|
+ if (!url || url == '') {
|
|
app.$message.warning('请检查模型地址');
|
|
app.$message.warning('请检查模型地址');
|
|
app.handleClose()
|
|
app.handleClose()
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
tile = SkyScenery.add3DTilesData(url, viewer);
|
|
tile = SkyScenery.add3DTilesData(url, viewer);
|
|
tile.tileFailed.addEventListener(function (err) {
|
|
tile.tileFailed.addEventListener(function (err) {
|
|
- app.$message({message: '模型加载失败', type: 'error'});
|
|
|
|
|
|
+ app.$message({ message: '模型加载失败', type: 'error' });
|
|
app.handleClose()
|
|
app.handleClose()
|
|
})
|
|
})
|
|
tile.readyPromise.then(function () {
|
|
tile.readyPromise.then(function () {
|
|
@@ -159,7 +157,7 @@ export default {
|
|
// 添加gltf
|
|
// 添加gltf
|
|
addGltf(url) {
|
|
addGltf(url) {
|
|
let app = this;
|
|
let app = this;
|
|
- if (!url || url=='') {
|
|
|
|
|
|
+ if (!url || url == '') {
|
|
app.$message.warning('请检查模型地址');
|
|
app.$message.warning('请检查模型地址');
|
|
app.handleClose()
|
|
app.handleClose()
|
|
return;
|
|
return;
|
|
@@ -185,32 +183,37 @@ export default {
|
|
});
|
|
});
|
|
},
|
|
},
|
|
addMap(url, type) {
|
|
addMap(url, type) {
|
|
- debugger
|
|
|
|
- viewer.imageryLayers.removeAll(true);
|
|
|
|
- if(type==''){
|
|
|
|
- viewer.imageryLayers.addImageryProvider(
|
|
|
|
- new SkyScenery.ArcGisMapServerImageryProvider({
|
|
|
|
- url: url,
|
|
|
|
- })
|
|
|
|
- )
|
|
|
|
- } else if(type=='xyz'){
|
|
|
|
- viewer.imageryLayers.addImageryProvider(
|
|
|
|
- new SkyScenery.UrlTemplateImageryProvider({
|
|
|
|
- url: url + '/{z}/{x}/{y}.png',
|
|
|
|
- fileExtension:'png'
|
|
|
|
- })
|
|
|
|
- )
|
|
|
|
|
|
+ if (type == '') {
|
|
|
|
+ this.src = systemConfig.single_map + "?dataType=twoD&mapType=twoD&mapserverType=arcgis&url=" + url
|
|
|
|
+ } else if (type == 'xyz') {
|
|
|
|
+ this.src = systemConfig.single_map + "?dataType=twoD&mapType=twoD&mapserverType=xyz&url=" + url
|
|
}
|
|
}
|
|
|
|
+ // return;
|
|
|
|
+ // viewer.imageryLayers.removeAll(true);
|
|
|
|
+ // if (type == '') {
|
|
|
|
+ // viewer.imageryLayers.addImageryProvider(
|
|
|
|
+ // new SkyScenery.ArcGisMapServerImageryProvider({
|
|
|
|
+ // url: url,
|
|
|
|
+ // })
|
|
|
|
+ // )
|
|
|
|
+ // } else if (type == 'xyz') {
|
|
|
|
+ // viewer.imageryLayers.addImageryProvider(
|
|
|
|
+ // new SkyScenery.UrlTemplateImageryProvider({
|
|
|
|
+ // url: url + '/{z}/{x}/{y}.png',
|
|
|
|
+ // fileExtension: 'png'
|
|
|
|
+ // })
|
|
|
|
+ // )
|
|
|
|
+ // }
|
|
},
|
|
},
|
|
flyToPrimitive(obj) {
|
|
flyToPrimitive(obj) {
|
|
let east = obj.geometryInstances.geometry.rectangle.east;
|
|
let east = obj.geometryInstances.geometry.rectangle.east;
|
|
let north = obj.geometryInstances.geometry.rectangle.north;
|
|
let north = obj.geometryInstances.geometry.rectangle.north;
|
|
let west = obj.geometryInstances.geometry.rectangle.west;
|
|
let west = obj.geometryInstances.geometry.rectangle.west;
|
|
let south = obj.geometryInstances.geometry.rectangle.south;
|
|
let south = obj.geometryInstances.geometry.rectangle.south;
|
|
- let lon = (east+west)/2;
|
|
|
|
- let lat = (north+south)/2;
|
|
|
|
|
|
+ let lon = (east + west) / 2;
|
|
|
|
+ let lat = (north + south) / 2;
|
|
viewer.camera.flyTo({
|
|
viewer.camera.flyTo({
|
|
- destination: SkyScenery.Cartesian3.fromDegrees(SkyScenery.Math.toDegrees(lon),SkyScenery.Math.toDegrees(lat), 338.8293456247198),
|
|
|
|
|
|
+ destination: SkyScenery.Cartesian3.fromDegrees(SkyScenery.Math.toDegrees(lon), SkyScenery.Math.toDegrees(lat), 338.8293456247198),
|
|
orientation: {
|
|
orientation: {
|
|
heading: SkyScenery.Math.toRadians(0),
|
|
heading: SkyScenery.Math.toRadians(0),
|
|
pitch: SkyScenery.Math.toRadians(-90),
|
|
pitch: SkyScenery.Math.toRadians(-90),
|
|
@@ -231,6 +234,11 @@ export default {
|
|
height: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+iframe {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height:500px;
|
|
|
|
+}
|
|
|
|
+
|
|
#mapContainer {
|
|
#mapContainer {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|