图层
@@ -315,6 +315,8 @@ const props = {
label: "title",
children: "children"
};
+// 白膜列表
+const albugineaList = ref([]);
const hours = computed(() => Math.floor(sunProperty.value.currDate / 60));
const minutes = computed(() => Math.floor(sunProperty.value.currDate / 60));
let map: any;
@@ -361,17 +363,7 @@ onMounted(async () => {
pid: 10,
id: item.id,
name: item.name,
- icon:
- item.layer == "gaode"
- ? "src/assets/images/Mars3DImg/basemaps/gaode_img.png"
- : "src/assets/images/Mars3DImg/basemaps/bd-img.png",
- type: item.layer,
- layer: item.layer == "gaode" ? "img_d" : "img_z",
- saturation: item.saturation ? item.saturation : 0,
- brightness: item.brightness ? item.brightness : 0,
- contrast: item.contrast ? item.contrast : 0,
- hue: item.hue ? item.hue : 0,
- gamma: item.gamma ? item.gamma : 0,
+ ...JSON.parse(item.layer),
show: item.show ? item.show : false
});
});
@@ -382,6 +374,7 @@ onMounted(async () => {
console.log(resAlbuginea, "白膜666666");
if (resAlbuginea.result && resAlbuginea.result.length > 0) {
let initAlbugineamaps: any = [{ id: 2040, name: "城市白模", type: "group" }];
+ albugineaList.value = resAlbuginea.result;
resAlbuginea.result.map((item: any) => {
initAlbugineamaps.push({
pid: 2040,
@@ -525,7 +518,8 @@ const screenComparison = () => {
}
mapScreenSplit = new mars3d.control.MapCompare({
...mapOptions2,
- parentContainer: mapParent
+ parentContainer: mapParent,
+ insertBefore: mapOld
});
map.addControl(mapScreenSplit);
};
@@ -818,60 +812,11 @@ const initMars3d = (option: any) => {
getPointPosition();
// 查询配置线效果
getLineEffect();
- // 添加数据
- // addRandomGraphicByCount(graphicLayer, [117.080397, 31.656139, 33.3]);
- // addRandomGraphicByCount(graphicLayer, [117.078006, 31.65649, 49.4]);
- // addRandomGraphicByCount(graphicLayer, [117.080571, 31.657898, 50.2]);
- // addRandomGraphicByCount(graphicLayer, [117.078331, 31.660016, 47.2]);
- // map.scene.moon.show = true; // 太阳
- // map.scene.sun.show = true; // 月亮
- // rainEffect = new mars3d.effect.RainEffect({
- // speed: 10,
- // size: 20,
- // direction: 10,
- // enabled: false
- // });
- // fogEffect = new mars3d.effect.FogEffect({
- // color: Cesium.Color.WHITE,
- // fogByDistance: new Cesium.Cartesian4(100, 0.0, 9000, 0.9),
- // enabled: false
- // });
- // snowEffect = new mars3d.effect.SnowEffect({
- // enabled: false,
- // speed: 10
- // });
- // snowCover = new mars3d.effect.SnowCoverEffect({
- // enabled: false,
- // // layer: tiles3dLayer, // 如果传值3dtiles图层,只对该模型生效
- // alpha: 0.6,
- // maxHeight: 8000 // 大于此高度后不显示
- // });
- // defaultSkybox = map.scene.skyBox;
- // currSkyBox = qingtianSkybox;
- // map.on(mars3d.EventType.postRender, function () {
- // const position = map.camera.position;
- // const height = Cesium.Cartographic.fromCartesian(position).height;
- // if (height < 230000) {
- // if (currSkyBox) {
- // map.scene.skyBox = currSkyBox;
- // }
- // map.scene.skyAtmosphere.show = false;
- // } else {
- // if (defaultSkybox) {
- // map.scene.skyBox = defaultSkybox;
- // }
- // map.scene.skyAtmosphere.show = true;
- // }
- // });
- // map.addEffect(rainEffect);
- // map.addEffect(fogEffect);
- // map.addEffect(snowEffect);
- // map.addEffect(snowCover);
};
// 取区域内的随机点
-const randomPoint = () => {
- const jd = random(117.208056 * 1000, 117.25548 * 1000) / 1000;
- const wd = random(31.816617 * 1000, 31.855756 * 1000) / 1000;
+const randomPoint = (position: any) => {
+ const jd = random(position[0].lng * 1000, position[1].lng * 1000) / 1000;
+ const wd = random(position[0].lat * 1000, position[1].lat * 1000) / 1000;
return new mars3d.LngLatPoint(jd, wd, 100);
};
// 取随机数字
@@ -887,11 +832,12 @@ const getLineEffect = async () => {
if (item.show) {
const arrData: any = [];
if (item.type == "LineFlowColor") {
+ const linePositions = JSON.parse(item.positions);
for (let j = 0; j < 100; ++j) {
- const startPt = randomPoint();
+ const startPt = randomPoint(linePositions);
const endPt = startPt.clone();
- endPt.alt = random(1000, 2000);
+ endPt.alt = random(linePositions[0].alt, linePositions[1].alt);
arrData.push({
positions: [startPt, endPt],
@@ -1085,13 +1031,32 @@ const addRandomGraphicByCount = (graphicLayer: any, position: any) => {
// }
// }
// };
-const handleCheckChange = (e: any, isCheck: any) => {
+const handleCheckChange = (e: any, isCheck: any, haveChildCheck: any) => {
const layer = layersObj[e.key];
const isChildern = e.children;
console.log("node", e);
console.log(layer);
+ console.log(isCheck);
+ console.log(haveChildCheck);
- if (layer && isCheck) {
+ if (layer && !isChildern && isCheck) {
+ setTimeout(function () {
+ // 修改白膜的偏移位置
+ let findItem: any = albugineaList.value.find(item => item.id == e.key);
+ console.log(findItem);
+ let initCenter: any;
+ initCenter = {
+ lng: layer.orginCenterPoint.lng,
+ lat: layer.orginCenterPoint.lat,
+ alt: layer.orginCenterPoint.alt
+ };
+ layer.position = {
+ lng: initCenter.lng + +findItem.lng,
+ lat: initCenter.lat + +findItem.lat,
+ alt: initCenter.alt + +findItem.alt
+ };
+ console.log(layer.position);
+ }, 200);
layer.show = true;
layer.flyTo();
} else {
@@ -1105,7 +1070,7 @@ const handleCheckChange = (e: any, isCheck: any) => {
// 处理子节点
if (e.children && e.children.length) {
- renderChildNode(isCheck, e.children);
+ renderChildNode(isCheck, e.children, e.key);
}
// 删除模型
@@ -1113,21 +1078,22 @@ const handleCheckChange = (e: any, isCheck: any) => {
layer.show = false;
}
};
-const renderChildNode = (isCheck: any, children: any[]) => {
+const renderChildNode = (isCheck: any, children: any[], key: any) => {
children.forEach(child => {
const layer = layersObj[child.key];
if (layer) {
if (!layer.isAdded) {
map.addLayer(layer);
}
-
- if (isCheck) {
- layer.show = true;
- } else {
- layer.show = false;
- }
- if (child.children) {
- renderChildNode(isCheck, child.children);
+ if (child.key == key) {
+ if (isCheck && key == child.key) {
+ layer.show = true;
+ } else {
+ layer.show = false;
+ }
+ if (child.children) {
+ renderChildNode(isCheck, child.children, child.key);
+ }
}
}
});
@@ -1259,6 +1225,8 @@ onUnmounted(() => {
padding: 0;
border: none;
overflow: hidden;
+ position: absolute;
+ right: 0px;
}
.input-search {
width: 260px;
@@ -1318,6 +1286,7 @@ onUnmounted(() => {
background-color: rgba(23, 49, 71, 0.8);
height: 40px;
box-shadow: 0 4px 15px 1px #02213bb3;
+ z-index: 10;
&-item {
.toolbar-item {
@include flex;
@@ -1359,6 +1328,7 @@ onUnmounted(() => {
height: 500px;
box-shadow: 0 4px 15px 1px #02213bb3;
animation: fadeIn 1s;
+ z-index: 10;
.basic-title {
@include flex;
width: 100%;
@@ -1434,6 +1404,7 @@ onUnmounted(() => {
height: 500px;
box-shadow: 0 4px 15px 1px #02213bb3;
animation: fadeIn 1s;
+ z-index: 10;
&-title {
@include flex;
width: 100%;
@@ -1456,7 +1427,7 @@ onUnmounted(() => {
overflow-y: scroll;
:deep() {
.el-tree {
- background-color: rgba(23, 49, 71, 0.8);
+ background-color: transparent;
color: white;
}
.el-tree-node__content:hover {
@@ -1535,7 +1506,7 @@ onUnmounted(() => {
overflow-y: scroll;
:deep() {
.el-tree {
- background-color: rgba(23, 49, 71, 0.8);
+ background-color: transparent;
color: white;
}
.el-tree-node__content:hover {
@@ -1939,5 +1910,10 @@ onUnmounted(() => {
.mars3d-divGraphic:hover {
z-index: 999 !important;
}
+ // 分屏属性
+ .mars3d-mapCompare {
+ left: 0px;
+ right: auto;
+ }
}
diff --git a/src/views/jxjview/albugineaManagement/components/operateDialog.vue b/src/views/jxjview/albugineaManagement/components/operateDialog.vue
index 7842529..5209875 100644
--- a/src/views/jxjview/albugineaManagement/components/operateDialog.vue
+++ b/src/views/jxjview/albugineaManagement/components/operateDialog.vue
@@ -169,6 +169,8 @@ const confirmSubmit = () => {
let requestData = {
...formData.value
};
+ delete requestData.createTime;
+ delete requestData.updateTime;
if (props.title == "新增白膜图层") {
const res: any = await albugineaMapAdd(requestData);
if (res.code == 200) {
diff --git a/src/views/jxjview/layerManagement/components/operateDialog.vue b/src/views/jxjview/layerManagement/components/operateDialog.vue
index fac3dec..2e6dfdf 100644
--- a/src/views/jxjview/layerManagement/components/operateDialog.vue
+++ b/src/views/jxjview/layerManagement/components/operateDialog.vue
@@ -138,15 +138,143 @@ import { baseMapAdd, baseMapDetails, baseMapEdit } from "@/api/modules/mapCommon
import testMap from "@/components/testMap/index.vue";
const testMapVisible = ref(false);
const layerTypeList = ref([
- { label: "天地图", value: "tdt" },
- { label: "百度地图", value: "baidu" },
- { label: "高德地图", value: "gaode" },
- { label: "腾讯地图", value: "tencent" },
- { label: "OSM地图", value: "osm" },
- { label: "谷歌地图", value: "google" },
- { label: "微软Bing地图", value: "bing" },
- { label: "图层组", value: "group" },
- { label: "空白图层", value: "empty" }
+ { label: "谷歌影像", value: 0 },
+ { label: "天地图影像", value: 1 },
+ { label: "天地图电子", value: 2 },
+ { label: "高德影像", value: 3 },
+ { label: "高德电子", value: 4 },
+ { label: "百度影像", value: 5 },
+ { label: "百度电子", value: 6 },
+ { label: "腾讯影像", value: 7 },
+ { label: "腾讯电子", value: 8 },
+ { label: "ArcGIS影像", value: 9 },
+ { label: "微软影像", value: 10 },
+ { label: "暗色底图", value: 11 },
+ { label: "蓝色底图", value: 12 },
+ { label: "黑色底图", value: 13 },
+ { label: "离线地图 (供参考)", value: 14 },
+ { label: "单张图片 (本地离线)", value: 15 },
+ { label: "无底图", value: 16 }
+]);
+const layerTypeJson = ref([
+ { name: "谷歌影像", icon: "src/assets/images/Mars3DImg/basemaps/google_img.png", type: "google", layer: "img_d" },
+ {
+ name: "天地图影像",
+ icon: "src/assets/images/Mars3DImg/basemaps/tdt_img.png",
+ type: "group",
+ layers: [
+ { name: "底图", type: "tdt", layer: "img_d" },
+ { name: "注记", type: "tdt", layer: "img_z" }
+ ]
+ },
+ {
+ name: "天地图电子",
+ icon: "src/assets/images/Mars3DImg/basemaps/tdt_vec.png",
+ type: "group",
+ layers: [
+ { name: "底图", type: "tdt", layer: "vec_d" },
+ { name: "注记", type: "tdt", layer: "vec_z" }
+ ]
+ },
+ {
+ name: "高德影像",
+ type: "group",
+ icon: "src/assets/images/Mars3DImg/basemaps/gaode_img.png",
+ layers: [
+ { name: "底图", type: "gaode", layer: "img_d" },
+ { name: "注记", type: "gaode", layer: "img_z" }
+ ]
+ },
+ { name: "高德电子", type: "gaode", icon: "src/assets/images/Mars3DImg/basemaps/gaode_vec.png", layer: "vec" },
+ {
+ name: "百度影像",
+ type: "group",
+ icon: "src/assets/images/Mars3DImg/basemaps/bd-img.png",
+ layers: [
+ { name: "底图", type: "baidu", layer: "img_d" },
+ { name: "注记", type: "baidu", layer: "img_z" }
+ ]
+ },
+ { name: "百度电子", icon: "src/assets/images/Mars3DImg/basemaps/bd-vec.png", type: "baidu", layer: "vec" },
+ {
+ name: "腾讯影像",
+ icon: "src/assets/images/Mars3DImg/basemaps/tencent_img.png",
+ type: "group",
+ layers: [
+ { name: "底图", type: "tencent", layer: "img_d" },
+ { name: "注记", type: "tencent", layer: "img_z" }
+ ]
+ },
+ { name: "腾讯电子", icon: "src/assets/images/Mars3DImg/basemaps/tencent_vec.png", type: "tencent", layer: "vec" },
+ {
+ name: "ArcGIS影像",
+ icon: "src/assets/images/Mars3DImg/basemaps/esriWorldImagery.png",
+ type: "xyz",
+ url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
+ enablePickFeatures: false
+ },
+ { name: "微软影像", icon: "src/assets/images/Mars3DImg/basemaps/bingAerial.png", type: "bing", layer: "Aerial" },
+ {
+ name: "暗色底图",
+ type: "gaode",
+ icon: "src/assets/images/Mars3DImg/basemaps/blackMarble.png",
+ layer: "vec",
+ invertColor: true,
+ filterColor: "#4e70a6",
+ brightness: 0.6,
+ contrast: 1.8,
+ gamma: 0.3,
+ hue: 1,
+ saturation: 0
+ },
+ {
+ name: "蓝色底图",
+ icon: "src/assets/images/Mars3DImg/basemaps/bd-c-midnight.png",
+ type: "xyz",
+ url: "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",
+ chinaCRS: "GCJ02",
+ enablePickFeatures: false
+ },
+ { name: "黑色底图", icon: "src/assets/images/Mars3DImg/basemaps/bd-c-dark.png", type: "tencent", layer: "custom", style: "4" },
+ {
+ name: "离线地图 (供参考)",
+ type: "group",
+ icon: "src/assets/images/Mars3DImg/basemaps/google_img.png",
+ layers: [
+ {
+ name: "全球",
+ type: "xyz",
+ url: "{dataServer}/tile/googleImg/{z}/{x}/{y}.jpg",
+ minimumLevel: 0,
+ maximumLevel: 9
+ },
+ {
+ name: "中国",
+ type: "xyz",
+ url: "{dataServer}/tile/googleImg/{z}/{x}/{y}.jpg",
+ minimumTerrainLevel: 10,
+ minimumLevel: 10,
+ maximumLevel: 12,
+ rectangle: { xmin: 69.706929, xmax: 136.560941, ymin: 15.831038, ymax: 52.558005 }
+ },
+ {
+ name: "具体项目(如合肥)",
+ type: "xyz",
+ url: "{dataServer}/tile/googleImg/{z}/{x}/{y}.jpg",
+ minimumTerrainLevel: 12,
+ minimumLevel: 12,
+ maximumLevel: 18,
+ rectangle: { xmin: 116.33236, xmax: 118.183557, ymin: 31.143784, ymax: 32.565035 }
+ }
+ ]
+ },
+ {
+ name: "单张图片 (本地离线)",
+ icon: "src/assets/images/Mars3DImg/basemaps/offline.png",
+ type: "image",
+ url: "//data.mars3d.cn/filesrc/assets/images/Mars3DImg/world/world.jpg"
+ },
+ { name: "无底图", icon: "src/assets/images/Mars3DImg/basemaps/null.png", type: "grid", color: "#ffffff", alpha: 0.03, cells: 2 }
]);
const props = defineProps({
operateVisible: Boolean,
@@ -190,6 +318,8 @@ const getInfo = async () => {
const { result } = await baseMapDetails(requestData);
if (result) {
formData.value = { ...result };
+ formData.value.layer = layerTypeList.value.findIndex(item => item.label == JSON.parse(formData.value.layer).name);
+ console.log(layerTypeList.value.findIndex(item => item.label == JSON.parse(formData.value.layer).name));
}
};
// 新增确认
@@ -201,6 +331,10 @@ const confirmSubmit = () => {
let requestData = {
...formData.value
};
+ delete requestData.createTime;
+ delete requestData.updateTime;
+ console.log(formData.value);
+ requestData.layer = JSON.stringify(layerTypeJson.value[formData.value.layer]);
if (props.title == "新增地图层") {
const res: any = await baseMapAdd(requestData);
if (res.code == 200) {
diff --git a/src/views/jxjview/lineManagement/components/operateDialog.vue b/src/views/jxjview/lineManagement/components/operateDialog.vue
index 17759e7..c6aaa53 100644
--- a/src/views/jxjview/lineManagement/components/operateDialog.vue
+++ b/src/views/jxjview/lineManagement/components/operateDialog.vue
@@ -24,9 +24,9 @@
-
经度{{ index + 1 }}
-
纬度{{ index + 1 }}
-
高度{{ index + 1 }}
+
{{ index == 0 ? "起始" : "终止" }}经度
+
{{ index == 0 ? "起始" : "终止" }}纬度
+
{{ index == 0 ? "起始" : "终止" }}高度
@@ -38,14 +38,6 @@
-
- 删除
-
-
-
-
@@ -116,7 +108,10 @@ const props = defineProps({
title: String
});
const emits = defineEmits(["update:operateVisible", "confirm"]);
-const addPositions = ref([]);
+const addPositions = ref([
+ { lng: "", lat: "", alt: "" },
+ { lng: "", lat: "", alt: "" }
+]);
const baseUrl = import.meta.env.VITE_API_URL;
const fileList = ref([]);
const store = GlobalStore();
@@ -158,18 +153,6 @@ const rules = ref({
const formRef = ref
();
const formData = ref({});
const visible1 = ref(false);
-// 追加行数据
-const appendRow = () => {
- addPositions.value.push({ lng: "", lat: "", alt: "" });
-};
-// 删除行数据
-const deleteRow = (index: number) => {
- if (addPositions.value.length == minLength.value) {
- ElMessage.error("不能少于最少点位数据");
- return;
- }
- addPositions.value.splice(index, 1);
-};
// 类型切换
const typeChange = (e: any) => {
if (e == "ODLine") {
@@ -203,10 +186,19 @@ const getInfo = async () => {
const { result }: { result: any } = await polylineCombineDetails(requestData);
if (result) {
formData.value = { ...result };
-
if (formData.value.jsonFile) {
formData.value.jsonFile = JSON.parse(formData.value.jsonFile);
fileList.value = [{ ...formData.value.jsonFile }];
+ } else {
+ fileList.value = [];
+ }
+ if (formData.value.positions) {
+ addPositions.value = JSON.parse(formData.value.positions);
+ } else {
+ addPositions.value = [
+ { lng: "", lat: "", alt: "" },
+ { lng: "", lat: "", alt: "" }
+ ];
}
setTimeout(() => {
formRef.value?.clearValidate();
@@ -222,6 +214,8 @@ const confirmSubmit = () => {
let requestData = {
...formData.value
};
+ delete requestData.createTime;
+ delete requestData.updateTime;
let positionPass = true;
addPositions.value.map((item: any) => {
if (!item.lng || !item.lat || !item.alt) {
@@ -232,6 +226,7 @@ const confirmSubmit = () => {
ElMessage.error("请输入坐标");
return;
}
+ requestData.positions = JSON.stringify(addPositions.value);
if (requestData.type == "ODLine") {
requestData.jsonFile = JSON.stringify(requestData.jsonFile);
}
@@ -264,6 +259,10 @@ watch(
if (n) {
if (props.title == "新增线效果") {
formData.value = {};
+ addPositions.value = [
+ { lng: "", lat: "", alt: "" },
+ { lng: "", lat: "", alt: "" }
+ ];
} else if (props.title == "编辑线效果") {
getInfo();
}
@@ -354,11 +353,6 @@ onMounted(() => {});
}
}
}
- .table-operate {
- width: 100%;
- display: block;
- margin-top: 5px;
- }
}
}
}
diff --git a/src/views/jxjview/modelManagement/components/operateDialog.vue b/src/views/jxjview/modelManagement/components/operateDialog.vue
index 6752103..a171565 100644
--- a/src/views/jxjview/modelManagement/components/operateDialog.vue
+++ b/src/views/jxjview/modelManagement/components/operateDialog.vue
@@ -171,6 +171,8 @@ const confirmSubmit = () => {
let requestData = {
...formData.value
};
+ delete requestData.createTime;
+ delete requestData.updateTime;
let positionPass = true;
positions.value.map((item: any) => {
if (!item.lng || !item.lat || !item.alt) {
diff --git a/src/views/jxjview/pointManagement/components/operateDialog.vue b/src/views/jxjview/pointManagement/components/operateDialog.vue
index 3952745..6150193 100644
--- a/src/views/jxjview/pointManagement/components/operateDialog.vue
+++ b/src/views/jxjview/pointManagement/components/operateDialog.vue
@@ -254,6 +254,8 @@ const confirmSubmit = () => {
let requestData = {
...formData.value
};
+ delete requestData.createTime;
+ delete requestData.updateTime;
let positionPass = true;
positions.value.map((item: any) => {
if (!item.lng || !item.lat || !item.alt) {