2024-10-11 16:46:40 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="mars3d-com">
|
|
|
|
|
|
<div class="mars3d-com" ref="mars3dContainer" style="width: 100%; height: 100%"></div>
|
2024-10-15 15:35:35 +08:00
|
|
|
|
<!-- 绘制区域 -->
|
2024-10-21 10:36:27 +08:00
|
|
|
|
|
|
|
|
|
|
<div class="mars-3d-deleter">
|
|
|
|
|
|
{{ !latlntswtich ? '绘制面' : '获取经纬度'}}
|
|
|
|
|
|
<i
|
|
|
|
|
|
@click="onclonemap"
|
|
|
|
|
|
class="el-icon-close"
|
|
|
|
|
|
style="font-size:'16px'; cursor: pointer;"
|
|
|
|
|
|
></i>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-box" v-if="!latlntswtich">
|
2024-10-11 16:46:40 +08:00
|
|
|
|
<div class="mars-3d-header">
|
2024-10-17 18:04:47 +08:00
|
|
|
|
<el-radio-group v-model="marsheader">
|
|
|
|
|
|
<el-radio :label="1">多边形面</el-radio>
|
|
|
|
|
|
<el-radio :label="2">自定义面</el-radio>
|
|
|
|
|
|
</el-radio-group>
|
2024-10-11 16:46:40 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-Controls">
|
|
|
|
|
|
<div class="mars3d-item" style="margin-top: 50px;">
|
|
|
|
|
|
<div class="mar3d-title">数据维护:</div>
|
|
|
|
|
|
<div class="mar3d-con">
|
|
|
|
|
|
<el-button size="mini" type="primary" @click="startDrawGraphic">绘制</el-button>
|
|
|
|
|
|
<el-button size="mini" type="danger" @click="deleteSelectedGraphic">删除</el-button>
|
|
|
|
|
|
<el-button size="mini" type="success" @click="updateGraphicStyle">保存</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">区域名称:</div>
|
2024-10-21 10:36:27 +08:00
|
|
|
|
<div class="mar3d-con">
|
2024-10-11 16:46:40 +08:00
|
|
|
|
<input v-model="itemdata.texttitle" placeholder="填充文字" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">边框颜色:</div>
|
2024-10-21 10:36:27 +08:00
|
|
|
|
<div class="mar3d-con distinction">
|
2024-10-15 15:35:35 +08:00
|
|
|
|
<el-color-picker v-model="itemdata.fillColor" size="small" />
|
2024-10-11 16:46:40 +08:00
|
|
|
|
<input v-model="itemdata.fillColor" placeholder="填充色" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">填充颜色:</div>
|
2024-10-21 10:36:27 +08:00
|
|
|
|
<div class="mar3d-con distinction">
|
2024-10-17 18:04:47 +08:00
|
|
|
|
<el-color-picker v-model="itemdata.collColor" size="small" />
|
|
|
|
|
|
<input v-model="itemdata.collColor" placeholder="填充色" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">文字颜色:</div>
|
2024-10-21 10:36:27 +08:00
|
|
|
|
<div class="mar3d-con distinction">
|
2024-10-15 15:35:35 +08:00
|
|
|
|
<el-color-picker v-model="itemdata.textColor" size="small" />
|
2024-10-11 16:46:40 +08:00
|
|
|
|
<input v-model="itemdata.textColor" placeholder="文字颜色" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">不透明度:</div>
|
|
|
|
|
|
<div class="mar3d-con">
|
|
|
|
|
|
<div class="block">
|
|
|
|
|
|
<el-slider v-model="itemdata.transpitem" :min="0.1" :max="1" :step="0.1"></el-slider>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">是否虚线:</div>
|
|
|
|
|
|
<div class="mar3d-con">
|
2024-10-21 10:36:27 +08:00
|
|
|
|
<el-switch v-model="itemdata.swtichitem" active-color="#34c759" inactive-color="#ccc"></el-switch>
|
2024-10-17 18:04:47 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<el-button size="mini" type="success" @click="saveArea">保存区域</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-10-15 15:35:35 +08:00
|
|
|
|
|
|
|
|
|
|
<!-- 经纬度数据 -->
|
2024-10-21 10:36:27 +08:00
|
|
|
|
<div class="mars3djinwie-box" v-if="latlntswtich">
|
2024-10-15 15:35:35 +08:00
|
|
|
|
<div class="mars3d-Controls">
|
|
|
|
|
|
<div class="mars3d-item" style="margin-top: 50px;">
|
|
|
|
|
|
<div class="mar3d-title">当前经度:</div>
|
|
|
|
|
|
<div class="mar3d-con">
|
|
|
|
|
|
<input v-model="latlntdata.lon" placeholder="经度" disabled />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<div class="mar3d-title">当前纬度:</div>
|
|
|
|
|
|
<div class="mar3d-con">
|
|
|
|
|
|
<input v-model="latlntdata.lat" placeholder="纬度" disabled />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mars3d-item">
|
|
|
|
|
|
<el-button size="mini" type="success" @click="onlatlnt">保存经纬度</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-10-11 16:46:40 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
// import * as mars3d from "mars3d";
|
|
|
|
|
|
// import { Cesium } from "mars3d";
|
|
|
|
|
|
import "mars3d/dist/mars3d.css";
|
|
|
|
|
|
import "mars3d-cesium/Build/Cesium/Widgets/widgets.css";
|
|
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
mars3dContainer: null,
|
|
|
|
|
|
map: null,
|
|
|
|
|
|
// 图层
|
|
|
|
|
|
graphicLayer: null,
|
|
|
|
|
|
// 开关
|
|
|
|
|
|
selectedGraphic: null,
|
|
|
|
|
|
// 修改图形
|
|
|
|
|
|
itemdata: {
|
|
|
|
|
|
// 填充色
|
|
|
|
|
|
fillColor: "",
|
|
|
|
|
|
// 文字颜色
|
|
|
|
|
|
textColor: "",
|
|
|
|
|
|
// 填充文字
|
2024-10-17 18:04:47 +08:00
|
|
|
|
texttitle: "",
|
|
|
|
|
|
// 填充颜色
|
|
|
|
|
|
collColor: "",
|
|
|
|
|
|
// 透明度
|
|
|
|
|
|
transpitem: 0.2,
|
|
|
|
|
|
// 是否虚线
|
|
|
|
|
|
swtichitem: false,
|
|
|
|
|
|
// 画圆范围
|
|
|
|
|
|
scopedata: 0
|
2024-10-11 16:46:40 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 唯一值
|
|
|
|
|
|
datatitle: 1,
|
|
|
|
|
|
// 选中自定义图形
|
2024-10-17 18:04:47 +08:00
|
|
|
|
marsheader: 1,
|
2024-10-15 15:35:35 +08:00
|
|
|
|
// 获取经纬度-开关
|
|
|
|
|
|
latlntswtich: false,
|
|
|
|
|
|
// 经纬度
|
|
|
|
|
|
latlntdata: {
|
|
|
|
|
|
lat: "",
|
|
|
|
|
|
lon: ""
|
2024-10-17 18:04:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 搜索值
|
|
|
|
|
|
inputmap: "",
|
|
|
|
|
|
// 查询回来值
|
|
|
|
|
|
searchdata: []
|
2024-10-11 16:46:40 +08:00
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
console.log("====================加载地图======================");
|
2024-10-11 16:46:40 +08:00
|
|
|
|
this.mars3dContainer = this.$refs.mars3dContainer;
|
|
|
|
|
|
// 初始化Mars3D地图
|
|
|
|
|
|
this.map = new mars3d.Map(this.mars3dContainer, {
|
|
|
|
|
|
scene: {
|
|
|
|
|
|
center: { lat: 42.8, lng: 90.4, alt: 150000, heading: 0, pitch: -45 },
|
|
|
|
|
|
showSun: true,
|
|
|
|
|
|
showMoon: true,
|
|
|
|
|
|
showSkyBox: true,
|
|
|
|
|
|
showSkyAtmosphere: false, // 关闭球周边的白色轮廓 map.scene.skyAtmosphere = false
|
|
|
|
|
|
fog: true,
|
|
|
|
|
|
fxaa: true,
|
|
|
|
|
|
globe: {
|
|
|
|
|
|
showGroundAtmosphere: false, // 关闭大气(球表面白蒙蒙的效果)
|
|
|
|
|
|
depthTestAgainstTerrain: false,
|
|
|
|
|
|
baseColor: "#546a53"
|
|
|
|
|
|
},
|
|
|
|
|
|
cameraController: {
|
|
|
|
|
|
zoomFactor: 3.0,
|
|
|
|
|
|
minimumZoomDistance: 1,
|
|
|
|
|
|
maximumZoomDistance: 50000000,
|
|
|
|
|
|
enableRotate: true,
|
|
|
|
|
|
enableZoom: true
|
|
|
|
|
|
},
|
|
|
|
|
|
mapProjection: mars3d.CRS.EPSG3857, // 2D下展示墨卡托投影
|
|
|
|
|
|
mapMode2D: Cesium.MapMode2D.INFINITE_SCROLL // 2D下左右一直可以滚动重复世界地图
|
|
|
|
|
|
},
|
|
|
|
|
|
control: {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
contextmenu: { hasDefault: true }, // 右键菜单
|
2024-10-17 18:04:47 +08:00
|
|
|
|
distanceLegend: { left: "100px", bottom: "50px" },
|
|
|
|
|
|
// zoom: true,
|
|
|
|
|
|
baseLayerPicker: true, // basemaps底图切换按钮
|
|
|
|
|
|
geocoder: { service: "geocoder" }, // 使用高德POI服务
|
|
|
|
|
|
homeButton: true
|
2024-10-11 16:46:40 +08:00
|
|
|
|
},
|
|
|
|
|
|
// terrain: {
|
|
|
|
|
|
// url: "//data.mars3d.cn/terrain",
|
|
|
|
|
|
// show: true
|
|
|
|
|
|
// },
|
|
|
|
|
|
basemaps: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "高德地图",
|
2024-10-17 18:04:47 +08:00
|
|
|
|
icon: "http://jxj.zhgdyun.com:100/image/670f36d001fd0d65e36e1224.png", // 假设你有一个高德地图的图标
|
2024-10-11 16:46:40 +08:00
|
|
|
|
type: "xyz",
|
|
|
|
|
|
url:
|
|
|
|
|
|
"http://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
|
|
|
|
|
|
subdomains: ["1", "2", "3", "4"],
|
|
|
|
|
|
show: true // 设置为默认显示
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
const locationBar = new mars3d.control.LocationBar({
|
|
|
|
|
|
template:
|
|
|
|
|
|
"<div>经度:{lng}</div><div>纬度:{lat}</div> <div>海拔:{alt}米</div> <div>层级:{level}</div><div>方向:{heading}度</div> <div>俯仰角:{pitch}度</div><div>视高:{cameraHeight}米</div><div>帧率:{fps} FPS</div>"
|
|
|
|
|
|
});
|
2024-10-15 15:35:35 +08:00
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
// 添加控件到地图
|
|
|
|
|
|
this.map.addControl(locationBar);
|
|
|
|
|
|
|
|
|
|
|
|
const compass = new mars3d.control.Compass({
|
|
|
|
|
|
bottom: "400px",
|
|
|
|
|
|
left: "10px"
|
|
|
|
|
|
});
|
|
|
|
|
|
this.map.addControl(compass);
|
2024-10-15 15:35:35 +08:00
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
this.map.control.geocoder._czmContrl.viewModel.complete.addEventListener(
|
|
|
|
|
|
function() {
|
|
|
|
|
|
const arrdata = map.control.geocoder._czmContrl.viewModel.suggestions;
|
|
|
|
|
|
console.log("查询结果", arrdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
2024-10-15 15:35:35 +08:00
|
|
|
|
|
|
|
|
|
|
if (this.$parent.$parent.MarsBoxareadata) {
|
2024-10-11 16:46:40 +08:00
|
|
|
|
console.log("this.$parent.MarsBoxareadata", this.$parent.MarsBoxareadata);
|
|
|
|
|
|
console.log(
|
|
|
|
|
|
"this.$parent.MarsBoxareadata",
|
2024-10-15 15:35:35 +08:00
|
|
|
|
JSON.parse(this.$parent.$parent.MarsBoxareadata, null, 2)
|
2024-10-11 16:46:40 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
this.graphicLayer = new mars3d.layer.GraphicLayer();
|
|
|
|
|
|
this.map.addLayer(this.graphicLayer);
|
|
|
|
|
|
|
2024-10-15 15:35:35 +08:00
|
|
|
|
let a = JSON.parse(this.$parent.$parent.MarsBoxareadata, null, 2);
|
2024-10-11 16:46:40 +08:00
|
|
|
|
|
|
|
|
|
|
console.log("a.geojsonData.features.length > 1", a.features.length > 0);
|
|
|
|
|
|
if (a.features.length > 0) {
|
|
|
|
|
|
a.features.forEach(item => {
|
|
|
|
|
|
console.log("每个item", item);
|
2024-10-17 18:04:47 +08:00
|
|
|
|
if (item.geometry.type == "Polygon") {
|
|
|
|
|
|
this.addDemoGraphic14(item);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.addCircleDemoGraphic12(item);
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
console.log("执行没有绘制==============");
|
|
|
|
|
|
// 没有修改过
|
|
|
|
|
|
// 创建一个图形图层
|
|
|
|
|
|
this.graphicLayer = new mars3d.layer.GraphicLayer();
|
|
|
|
|
|
this.map.addLayer(this.graphicLayer);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// this.bindLayerPopup();
|
|
|
|
|
|
this.bindGraphicClick();
|
2024-10-15 15:35:35 +08:00
|
|
|
|
|
|
|
|
|
|
// 绑定地图点击事件
|
|
|
|
|
|
this.map.on(mars3d.EventType.click, this.handleMapClick);
|
2024-10-11 16:46:40 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
// 保存经纬度
|
|
|
|
|
|
onlatlnt() {
|
|
|
|
|
|
this.$parent.$parent.onsetlatlnt({
|
|
|
|
|
|
lon: this.latlntdata.lon,
|
|
|
|
|
|
lat: this.latlntdata.lat
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 处理地图点击事件
|
|
|
|
|
|
handleMapClick(event) {
|
|
|
|
|
|
const position = event.position; // 获取点击位置的屏幕坐标 (x, y)
|
|
|
|
|
|
const cartesian = this.map.scene.globe.pick(
|
|
|
|
|
|
this.map.camera.getPickRay(position),
|
|
|
|
|
|
this.map.scene
|
|
|
|
|
|
); // 获取点击位置的笛卡尔坐标
|
|
|
|
|
|
|
|
|
|
|
|
if (cartesian) {
|
|
|
|
|
|
const cartographic = mars3d.Cesium.Cartographic.fromCartesian(
|
|
|
|
|
|
cartesian
|
|
|
|
|
|
); // 转换为地理坐标
|
|
|
|
|
|
const longitude = mars3d.Cesium.Math.toDegrees(cartographic.longitude); // 转换为经度
|
|
|
|
|
|
const latitude = mars3d.Cesium.Math.toDegrees(cartographic.latitude); // 转换为纬度
|
|
|
|
|
|
const altitude = cartographic.height; // 获取海拔高度
|
|
|
|
|
|
|
|
|
|
|
|
console.log(`经度: ${longitude}, 纬度: ${latitude}, 海拔: ${altitude}`);
|
|
|
|
|
|
this.latlntdata.lat = latitude;
|
|
|
|
|
|
this.latlntdata.lon = longitude;
|
|
|
|
|
|
|
|
|
|
|
|
// 这里可以根据需要将经纬度信息显示在界面上
|
|
|
|
|
|
// 例如:this.showCoordinates(longitude, latitude, altitude);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
// 通知父组件关闭
|
|
|
|
|
|
onclonemap() {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
this.$parent.$parent.onclose();
|
2024-10-11 16:46:40 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
addCircleDemoGraphic12(item) {
|
|
|
|
|
|
console.log("item===圆形", item);
|
|
|
|
|
|
const graphic = new mars3d.graphic.CircleEntity({
|
|
|
|
|
|
positions: item.geometry.coordinates, // 圆心位置
|
|
|
|
|
|
style: {
|
|
|
|
|
|
radius: item.properties.radius, // 圆的半径
|
|
|
|
|
|
color: item.properties.collColor, // 填充颜色
|
|
|
|
|
|
opacity: item.properties.transpitem, // 透明度
|
|
|
|
|
|
outline: true,
|
|
|
|
|
|
outlineStyle: {
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
materialType: item.properties.swtichitem
|
|
|
|
|
|
? mars3d.MaterialType.PolylineDash
|
|
|
|
|
|
: "",
|
|
|
|
|
|
materialOptions: {
|
|
|
|
|
|
color: item.properties.fillColor // 边框颜色
|
|
|
|
|
|
}
|
|
|
|
|
|
}, // 设置边框为虚线
|
|
|
|
|
|
label: {
|
|
|
|
|
|
text: item.properties.texttitle,
|
|
|
|
|
|
font_size: 18,
|
|
|
|
|
|
color: item.properties.textColor,
|
|
|
|
|
|
distanceDisplayCondition: true,
|
|
|
|
|
|
distanceDisplayCondition_far: 500000,
|
|
|
|
|
|
distanceDisplayCondition_near: 0
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 将圆形实体添加到图形图层
|
|
|
|
|
|
this.graphicLayer.addGraphic(graphic);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
addDemoGraphic14(item) {
|
|
|
|
|
|
console.log("item============", item);
|
2024-10-17 18:04:47 +08:00
|
|
|
|
const graphic = new mars3d.graphic.PolygonEntity({
|
|
|
|
|
|
positions: item.geometry.coordinates,
|
2024-10-11 16:46:40 +08:00
|
|
|
|
style: {
|
2024-10-17 18:04:47 +08:00
|
|
|
|
color: item.properties.collColor, // 填充颜色
|
|
|
|
|
|
opacity: item.properties.transpitem, // 透明度
|
|
|
|
|
|
outline: true,
|
|
|
|
|
|
outlineWidth: 2,
|
|
|
|
|
|
outlineColor: item.properties.fillColor,
|
|
|
|
|
|
outlineStyle: {
|
|
|
|
|
|
materialType: item.properties.swtichitem
|
|
|
|
|
|
? mars3d.MaterialType.PolylineDash
|
|
|
|
|
|
: ""
|
|
|
|
|
|
}, // 设置边框为虚线
|
2024-10-11 16:46:40 +08:00
|
|
|
|
label: {
|
2024-10-17 18:04:47 +08:00
|
|
|
|
text: item.properties.texttitle,
|
|
|
|
|
|
font_size: 18,
|
|
|
|
|
|
color: item.properties.textColor,
|
|
|
|
|
|
distanceDisplayCondition: true,
|
|
|
|
|
|
distanceDisplayCondition_far: 500000,
|
|
|
|
|
|
distanceDisplayCondition_near: 0
|
2024-10-11 16:46:40 +08:00
|
|
|
|
}
|
2024-10-17 18:04:47 +08:00
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
});
|
|
|
|
|
|
this.graphicLayer.addGraphic(graphic);
|
|
|
|
|
|
},
|
|
|
|
|
|
// 开始绘制
|
|
|
|
|
|
startDrawGraphic() {
|
|
|
|
|
|
console.log("执行绘画");
|
|
|
|
|
|
if (this.selectedGraphic) {
|
|
|
|
|
|
this.updateGraphicStyle();
|
|
|
|
|
|
}
|
|
|
|
|
|
const that = this;
|
|
|
|
|
|
if (this.graphicLayer) {
|
|
|
|
|
|
this.graphicLayer.unbindPopup();
|
|
|
|
|
|
}
|
2024-10-17 18:04:47 +08:00
|
|
|
|
if (this.marsheader == 1) {
|
|
|
|
|
|
// 多边形
|
|
|
|
|
|
this.graphicLayer.startDraw({
|
|
|
|
|
|
type: "polygon",
|
|
|
|
|
|
style: {
|
|
|
|
|
|
color: "#3c444f", // 填充颜色
|
|
|
|
|
|
opacity: this.itemdata.transpitem, // 透明度
|
|
|
|
|
|
outline: true,
|
|
|
|
|
|
outlineWidth: 1,
|
|
|
|
|
|
outlineColor: "#93a9cc",
|
|
|
|
|
|
outlineStyle: {
|
|
|
|
|
|
materialType: this.itemdata.swtichitem
|
|
|
|
|
|
? mars3d.MaterialType.PolylineDash
|
|
|
|
|
|
: ""
|
|
|
|
|
|
}, // 设置边框为虚线
|
|
|
|
|
|
label: {
|
|
|
|
|
|
text: "未命名",
|
|
|
|
|
|
font_size: 18,
|
|
|
|
|
|
color: "#ffffff",
|
|
|
|
|
|
distanceDisplayCondition: true,
|
|
|
|
|
|
distanceDisplayCondition_far: 500000,
|
|
|
|
|
|
distanceDisplayCondition_near: 0
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
}
|
2024-10-17 18:04:47 +08:00
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 圆形
|
|
|
|
|
|
this.graphicLayer.startDraw({
|
|
|
|
|
|
type: "circle",
|
|
|
|
|
|
style: {
|
|
|
|
|
|
color: "#3c444f", // 填充颜色
|
|
|
|
|
|
opacity: this.itemdata.transpitem, // 透明度
|
|
|
|
|
|
clampToGround: false,
|
|
|
|
|
|
outline: true,
|
|
|
|
|
|
outlineStyle: {
|
|
|
|
|
|
width: 2,
|
|
|
|
|
|
materialType: this.itemdata.swtichitem
|
|
|
|
|
|
? mars3d.MaterialType.PolylineDash
|
|
|
|
|
|
: "", // 使用虚线材质
|
|
|
|
|
|
materialOptions: {
|
|
|
|
|
|
color: "#93a9cc" // 边框颜色
|
|
|
|
|
|
// dashLength: 36, // 虚线长度
|
|
|
|
|
|
// maskLength: 10, // 空隙间隔长度
|
|
|
|
|
|
// centerPower: 0.1, // 中心宽百分比
|
|
|
|
|
|
// dashPower: 0.2 // 虚线百分比
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
label: {
|
|
|
|
|
|
text: "未命名",
|
|
|
|
|
|
font_size: 18,
|
|
|
|
|
|
color: "#ffffff",
|
|
|
|
|
|
distanceDisplayCondition: true,
|
|
|
|
|
|
distanceDisplayCondition_far: 500000,
|
|
|
|
|
|
distanceDisplayCondition_near: 0
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
drawShowRadius: true
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
|
|
|
|
|
|
// this.updateGraphicStyle();
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 在图层绑定Popup弹窗
|
|
|
|
|
|
bindLayerPopup() {
|
|
|
|
|
|
this.graphicLayer.bindPopup(function(event) {
|
|
|
|
|
|
console.log("event", event);
|
|
|
|
|
|
const data = event.graphic.style;
|
|
|
|
|
|
const attr = {};
|
|
|
|
|
|
// attr["类型"] = event.graphic.type;
|
|
|
|
|
|
// attr["来源"] = "我是layer上绑定的Popup";
|
|
|
|
|
|
// attr["备注"] = "我支持鼠标交互";
|
|
|
|
|
|
attr["名称"] = data.label.text;
|
|
|
|
|
|
// attr["描述"] = attr.description || "默认描述"; // 使用图形属性中的描述信息
|
|
|
|
|
|
|
|
|
|
|
|
return mars3d.Util.getTemplateHtml({
|
|
|
|
|
|
title: "矢量图层",
|
|
|
|
|
|
template: "all",
|
|
|
|
|
|
attr
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 绑定图形点击事件
|
|
|
|
|
|
bindGraphicClick() {
|
|
|
|
|
|
const that = this;
|
|
|
|
|
|
this.graphicLayer.on(mars3d.EventType.click, function(event) {
|
|
|
|
|
|
that.selectedGraphic = event.graphic;
|
|
|
|
|
|
console.log("event.graphic", event.graphic);
|
|
|
|
|
|
console.log("this.itemdata", that.itemdata);
|
|
|
|
|
|
console.log("this.itemdata", that.itemdata.fillColor);
|
2024-10-17 18:04:47 +08:00
|
|
|
|
that.itemdata.collColor = event.graphic.style.color;
|
2024-10-11 16:46:40 +08:00
|
|
|
|
that.itemdata.textColor = event.graphic.style.label.color;
|
|
|
|
|
|
that.itemdata.texttitle = event.graphic.style.label.text;
|
2024-10-17 18:04:47 +08:00
|
|
|
|
that.itemdata.transpitem = event.graphic.style.opacity;
|
|
|
|
|
|
that.itemdata.swtichitem =
|
|
|
|
|
|
event.graphic.style.outlineStyle.materialType == "PolylineDash"
|
|
|
|
|
|
? true
|
|
|
|
|
|
: false;
|
|
|
|
|
|
if (event.graphic.type == "polygon") {
|
|
|
|
|
|
that.itemdata.fillColor = event.graphic.style.outlineColor;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
that.itemdata.fillColor =
|
|
|
|
|
|
event.graphic.style.outlineStyle.materialOptions.color;
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
|
|
|
|
|
|
// 重新绑定弹窗
|
|
|
|
|
|
that.bindLayerPopup();
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 更新图形样式
|
|
|
|
|
|
updateGraphicStyle() {
|
|
|
|
|
|
if (this.selectedGraphic) {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
console.log("this.selectedGraphic", this.selectedGraphic);
|
|
|
|
|
|
console.log("this.selectedGraphic.id", this.selectedGraphic.id);
|
|
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
this.selectedGraphic.style.color = this.itemdata.collColor;
|
2024-10-11 16:46:40 +08:00
|
|
|
|
this.selectedGraphic.style.label.color = this.itemdata.textColor;
|
2024-10-17 18:04:47 +08:00
|
|
|
|
this.selectedGraphic.style.label.text = this.itemdata.texttitle;
|
|
|
|
|
|
this.selectedGraphic.style.opacity = this.itemdata.transpitem;
|
|
|
|
|
|
this.selectedGraphic.style.outlineStyle.materialType = this.itemdata
|
|
|
|
|
|
.swtichitem
|
|
|
|
|
|
? mars3d.MaterialType.PolylineDash
|
|
|
|
|
|
: "";
|
|
|
|
|
|
if (this.selectedGraphic.type == "polygon") {
|
|
|
|
|
|
this.selectedGraphic.style.outlineColor = this.itemdata.fillColor;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.selectedGraphic.style.outlineStyle.materialOptions.color = this.itemdata.fillColor;
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
|
|
|
|
|
|
// // 移除之前的监听器
|
|
|
|
|
|
// map.off(mars3d.EventType.postUpdate, updateGraphicStyle);
|
|
|
|
|
|
|
|
|
|
|
|
// // 添加新的监听器
|
|
|
|
|
|
// map.on(mars3d.EventType.postUpdate, function (event) {
|
|
|
|
|
|
// console.log("更新了", event);
|
|
|
|
|
|
// // 在这里可以进行其他操作
|
|
|
|
|
|
// });
|
|
|
|
|
|
const graphic = this.graphicLayer.getGraphicById(
|
|
|
|
|
|
this.selectedGraphic.id
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// console.log("graphic", graphic);
|
|
|
|
|
|
// console.dir("111111",graphic)
|
|
|
|
|
|
// console.log("graphic", graphic.redraw());
|
|
|
|
|
|
graphic.redraw();
|
|
|
|
|
|
|
|
|
|
|
|
// 重新渲染地图
|
|
|
|
|
|
// this.map.render();
|
|
|
|
|
|
// 关闭弹窗
|
|
|
|
|
|
this.graphicLayer.unbindPopup();
|
|
|
|
|
|
|
|
|
|
|
|
// 清理 selectedGraphic.value
|
|
|
|
|
|
// this.selectedGraphic = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 删除
|
|
|
|
|
|
deleteSelectedGraphic() {
|
|
|
|
|
|
if (this.selectedGraphic) {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
this.updateGraphicStyle();
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
this.graphicLayer.removeGraphic(this.selectedGraphic);
|
|
|
|
|
|
this.selectedGraphic = null;
|
2024-10-15 15:35:35 +08:00
|
|
|
|
this.itemdata = {};
|
2024-10-11 16:46:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 保存区域
|
|
|
|
|
|
saveArea() {
|
2024-10-15 15:35:35 +08:00
|
|
|
|
if (this.graphicLayer) {
|
|
|
|
|
|
this.updateGraphicStyle();
|
2024-10-11 16:46:40 +08:00
|
|
|
|
|
2024-10-15 15:35:35 +08:00
|
|
|
|
const graphics = this.graphicLayer.getGraphics();
|
|
|
|
|
|
const features = graphics
|
|
|
|
|
|
.map(graphic => {
|
|
|
|
|
|
const geometry = graphic.positions; // 获取图形的坐标点
|
|
|
|
|
|
console.log("图形坐标点:", geometry); // 调试信息
|
|
|
|
|
|
|
|
|
|
|
|
// 将笛卡尔坐标转换为经纬度坐标
|
|
|
|
|
|
const positions = geometry.map(point => {
|
|
|
|
|
|
const cartographic = Cesium.Cartographic.fromCartesian(point);
|
|
|
|
|
|
return [
|
|
|
|
|
|
Cesium.Math.toDegrees(cartographic.longitude),
|
|
|
|
|
|
Cesium.Math.toDegrees(cartographic.latitude)
|
|
|
|
|
|
];
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const properties = {
|
2024-10-17 18:04:47 +08:00
|
|
|
|
fillColor:
|
|
|
|
|
|
graphic.style.outlineColor ||
|
|
|
|
|
|
graphic.style.outlineStyle.materialOptions.color,
|
|
|
|
|
|
collColor: graphic.style.color,
|
2024-10-15 15:35:35 +08:00
|
|
|
|
textColor: graphic.style.label.color,
|
2024-10-17 18:04:47 +08:00
|
|
|
|
texttitle: graphic.style.label.text,
|
|
|
|
|
|
transpitem: graphic.style.opacity,
|
|
|
|
|
|
swtichitem:
|
|
|
|
|
|
graphic.style.outlineStyle.materialType == "PolylineDash"
|
|
|
|
|
|
? true
|
|
|
|
|
|
: false,
|
|
|
|
|
|
radius: graphic.style.radius
|
2024-10-11 16:46:40 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
2024-10-15 15:35:35 +08:00
|
|
|
|
// 根据图形的类型(如多边形、线等)创建相应的GeoJSON几何对象
|
|
|
|
|
|
let geoJSONGeometry;
|
|
|
|
|
|
console.log("graphic.type", graphic.type);
|
|
|
|
|
|
|
|
|
|
|
|
if (graphic.type === "polygonP") {
|
|
|
|
|
|
geoJSONGeometry = {
|
|
|
|
|
|
type: "polygon",
|
|
|
|
|
|
coordinates: [positions]
|
|
|
|
|
|
};
|
|
|
|
|
|
} else if (graphic.type === "polygon") {
|
|
|
|
|
|
geoJSONGeometry = {
|
|
|
|
|
|
type: "Polygon",
|
|
|
|
|
|
coordinates: [positions]
|
|
|
|
|
|
};
|
|
|
|
|
|
} else if (graphic.type === "polyline") {
|
|
|
|
|
|
geoJSONGeometry = {
|
|
|
|
|
|
type: "LineString",
|
|
|
|
|
|
coordinates: positions
|
|
|
|
|
|
};
|
2024-10-17 18:04:47 +08:00
|
|
|
|
} else if (graphic.type === "circle") {
|
|
|
|
|
|
geoJSONGeometry = {
|
|
|
|
|
|
type: "Circle",
|
|
|
|
|
|
coordinates: positions
|
|
|
|
|
|
};
|
2024-10-15 15:35:35 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
// 其他类型的图形处理
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
type: "Feature",
|
|
|
|
|
|
geometry: geoJSONGeometry,
|
|
|
|
|
|
properties: properties
|
|
|
|
|
|
};
|
|
|
|
|
|
})
|
|
|
|
|
|
.filter(feature => feature !== null); // 过滤掉无效的图形
|
|
|
|
|
|
|
|
|
|
|
|
const geoJSON = {
|
|
|
|
|
|
type: "FeatureCollection",
|
|
|
|
|
|
features: features
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
console.log("导出的GeoJSON数据", JSON.stringify(geoJSON, null, 2));
|
|
|
|
|
|
|
|
|
|
|
|
const a = geoJSON.features;
|
|
|
|
|
|
const formattedCoordinates = a
|
|
|
|
|
|
.map(feature => {
|
|
|
|
|
|
return feature.geometry.coordinates
|
|
|
|
|
|
.map(coord => {
|
|
|
|
|
|
return `${coord[0]}|${coord[1]}`;
|
|
|
|
|
|
})
|
|
|
|
|
|
.join(", ");
|
|
|
|
|
|
})
|
|
|
|
|
|
.join(", ");
|
|
|
|
|
|
|
|
|
|
|
|
console.log(formattedCoordinates);
|
|
|
|
|
|
this.itemdata = {
|
|
|
|
|
|
// 填充色
|
|
|
|
|
|
fillColor: "",
|
|
|
|
|
|
// 文字颜色
|
|
|
|
|
|
textColor: "",
|
|
|
|
|
|
// 填充文字
|
|
|
|
|
|
texttitle: ""
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
this.$parent.$parent.MarsBoxareadata = JSON.stringify(geoJSON);
|
|
|
|
|
|
this.$parent.$parent.fenceShapedata = formattedCoordinates;
|
|
|
|
|
|
// this.$parent.submit("form");
|
|
|
|
|
|
this.$parent.$parent.MarsBoxSwtich = false;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.$parent.$parent.MarsBoxSwtich = false;
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
beforeDestroy() {
|
|
|
|
|
|
// 组件销毁前,销毁地图
|
|
|
|
|
|
if (this.map) {
|
|
|
|
|
|
this.map.destroy();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
2024-10-17 18:04:47 +08:00
|
|
|
|
::v-deep .cesium-viewer {
|
|
|
|
|
|
// background: red !important;
|
|
|
|
|
|
|
|
|
|
|
|
.cesium-viewer-toolbar {
|
|
|
|
|
|
width: 100px;
|
|
|
|
|
|
height: 100px;
|
|
|
|
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
// background: red !important;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 15px; /* 调整到左下角 */
|
|
|
|
|
|
top: 670px; /* 调整到左下角 */
|
|
|
|
|
|
z-index: 9999 !important; /* 确保在地图上方 */
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// .mars3d-locationba {
|
|
|
|
|
|
// background: red !important;
|
|
|
|
|
|
|
|
|
|
|
|
// .mars3d-locationbar-content {
|
|
|
|
|
|
// margin-top: 10px !important;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
.cesium-baseLayerPicker-dropDown {
|
|
|
|
|
|
top: -242px;
|
|
|
|
|
|
right: -304px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cesium-viewer-geocoderContainer {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
margin: 0 3px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -41px;
|
|
|
|
|
|
left: -1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
.mars3d-com {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
2024-10-21 10:36:27 +08:00
|
|
|
|
.mars-3d-deleter {
|
|
|
|
|
|
width: 300px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
padding: 0 15px;
|
|
|
|
|
|
height: 42px;
|
|
|
|
|
|
// border-left: 5px solid linear-gradient(180deg, #3170e2 0%, #52b2ee 100%);
|
|
|
|
|
|
// border-bottom: 2px solid #4faced;
|
|
|
|
|
|
background: rgba(11, 22, 51, 0.3);
|
|
|
|
|
|
background-image: url("~@/assets/images/mapbox/Group 31.png");
|
|
|
|
|
|
background-position: center center;
|
|
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
|
|
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
// box-sizing: border-box;
|
|
|
|
|
|
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 50px;
|
|
|
|
|
|
top: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mars3d-jinwei {
|
|
|
|
|
|
height: 220px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mars3djinwie-box {
|
|
|
|
|
|
height: 220px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mars3d-box,
|
|
|
|
|
|
.mars3djinwie-box {
|
2024-10-11 16:46:40 +08:00
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 50px;
|
2024-10-21 10:36:27 +08:00
|
|
|
|
top: 70px;
|
2024-10-11 16:46:40 +08:00
|
|
|
|
|
|
|
|
|
|
width: 300px;
|
2024-10-17 18:04:47 +08:00
|
|
|
|
height: 420px;
|
2024-10-21 10:36:27 +08:00
|
|
|
|
background-image: url("~@/assets/images/mapbox/Rectangle 24.png");
|
|
|
|
|
|
// background-position: center center;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
background-repeat: no-repeat;
|
2024-10-11 16:46:40 +08:00
|
|
|
|
z-index: 1000;
|
|
|
|
|
|
padding: 0 15px 15px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
// position: relative;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
|
|
|
|
|
|
.mars-3d-header {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
height: 45px;
|
|
|
|
|
|
line-height: 45px;
|
|
|
|
|
|
padding-left: 15px !important;
|
|
|
|
|
|
padding-right: 15px !important;
|
2024-10-21 10:36:27 +08:00
|
|
|
|
background-image: url("~@/assets/images/mapbox/Rectangle 22.png");
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
background-repeat: no-repeat;
|
2024-10-11 16:46:40 +08:00
|
|
|
|
border: 1px solid #344c7b;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
border: 10px 10px 0 0 !important;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
|
2024-10-17 18:04:47 +08:00
|
|
|
|
::v-deep .el-radio-group {
|
|
|
|
|
|
// background: skyblue !important;
|
|
|
|
|
|
|
|
|
|
|
|
.el-radio__label {
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
i {
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mars3d-Controls {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
|
|
|
|
|
.mars3d-item {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
|
|
.mar3d-title {
|
|
|
|
|
|
width: 100px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-21 10:36:27 +08:00
|
|
|
|
.distinction {
|
|
|
|
|
|
// background: skyblue;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
// align-items: flex-start;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
input {
|
|
|
|
|
|
width: 140px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
::v-deep .el-color-picker--small .el-color-picker__trigger {
|
|
|
|
|
|
width: 23px !important;
|
|
|
|
|
|
height: 23px !important;
|
|
|
|
|
|
margin-right: 8px !important;
|
|
|
|
|
|
margin-top: 5px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-11 16:46:40 +08:00
|
|
|
|
.mar3d-con {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2024-10-17 18:04:47 +08:00
|
|
|
|
|
|
|
|
|
|
.block {
|
2024-10-21 10:36:27 +08:00
|
|
|
|
width: 180px;
|
|
|
|
|
|
|
|
|
|
|
|
::v-deep .el-slider__runway {
|
|
|
|
|
|
background-image: url("~@/assets/images/mapbox/Rectangle 34624274.png") !important;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
|
|
|
|
|
|
|
|
.el-slider__bar {
|
|
|
|
|
|
background: transparent !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-slider__button {
|
|
|
|
|
|
// background: yellow !important;
|
|
|
|
|
|
background-image: url("~@/assets/images/mapbox/Group 1000015866.png") !important;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
|
|
border: 0px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-17 18:04:47 +08:00
|
|
|
|
}
|
2024-10-11 16:46:40 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|