This commit is contained in:
yiqiuyang
2025-09-10 08:47:28 +08:00
parent dcb91f67c5
commit 8ea0f436b1
5 changed files with 481 additions and 343 deletions

View File

@ -30,19 +30,33 @@
:model="form"
>
<el-form-item label="起点">
<el-input v-model="form.startPoint" @blur="pointsChange('startPoint')"></el-input>
<el-input
v-model="form.startPoint"
@blur="pointsChange('startPoint')"
></el-input>
</el-form-item>
<el-form-item label="终点">
<el-input v-model="form.endPoint" @blur="pointsChange('endPoint')"></el-input>
<el-input
v-model="form.endPoint"
@blur="pointsChange('endPoint')"
></el-input>
</el-form-item>
<el-form-item label="途径点">
<div v-for="(item, index) in form.viaPoints" :key="index">
<el-input v-model="item.points" placeholder="" @blur="pointsChange('viaPoints', item)"></el-input>
<el-input
v-model="item.points"
placeholder=""
@blur="pointsChange('viaPoints', item)"
></el-input>
</div>
</el-form-item>
<el-form-item label="避让点">
<div v-for="(item, index) in form.avoidPoints" :key="index">
<el-input v-model="item.points" placeholder="" @blur="pointsChange('avoidPoints', item)"></el-input>
<el-input
v-model="item.points"
placeholder=""
@blur="pointsChange('avoidPoints', item)"
></el-input>
</div>
</el-form-item>
<el-form-item label="避让区域">
@ -61,7 +75,12 @@
<el-button @click="clear">清除所有</el-button>
</el-form-item> -->
</el-form>
<input type="file" ref="fileInput" @change="handleFileUpload" style="display: none;" />
<input
type="file"
ref="fileInput"
@change="handleFileUpload"
style="display: none"
/>
<div class="importJson" @click="triggerFileUpload">导入json文件</div>
</div>
<div class="control-panel">
@ -71,7 +90,7 @@
label-width="100px"
label-position="left"
size="mini"
>
>
<el-form-item label="宽度">
<el-input v-model="inputform.width"></el-input>
</el-form-item>
@ -79,7 +98,10 @@
<el-input v-model="inputform.load" placeholder=""></el-input>
</el-form-item>
<el-form-item label="最小转弯半径">
<el-input v-model="inputform.minTurnRadius" placeholder=""></el-input>
<el-input
v-model="inputform.minTurnRadius"
placeholder=""
></el-input>
</el-form-item>
</el-form>
<div class="importJson" @click="openDialog">数据选择</div>
@ -87,21 +109,28 @@
</div>
<div id="map"></div>
<!-- <div id="mapbox"></div> -->
<div class="main-container" style="width: 452px;">
<div class="control-panel" style="width: 452px;">
<div style="font-size: 14px;margin-bottom: 10px;">
详细路线<br/>
起点{{form.startPoint}}
途径点{{form.viaPoints.length > 0 && form.viaPoints[0].points ? form.viaPoints.map(item => item.points).join(";") : ''}}),
避让点{{form.avoidPoints.length > 0 && form.avoidPoints[0].points ? form.avoidPoints.map(item => item.points).join(";") : ''}}),
终点{{form.endPoint}},
避让区域{{form.avoidAreas.length > 0 && form.avoidAreas[0].points ? form.avoidAreas.map(item => item.points).join(";") : ''}})<br/>
装备参数:最大车辆宽度{{inputform.width || 0}},最小转弯半径{{inputform.minTurnRadius || 0}}最大车辆载重{{inputform.load || 0}}
<div class="main-container" style="width: 452px">
<div class="control-panel" style="width: 452px">
<div style="font-size: 14px; margin-bottom: 10px">
详细路线<br />
起点{{ form.startPoint }} 途径点{{
form.viaPoints.length > 0 && form.viaPoints[0].points
? form.viaPoints.map((item) => item.points).join(';')
: ''
}}), 避让点{{
form.avoidPoints.length > 0 && form.avoidPoints[0].points
? form.avoidPoints.map((item) => item.points).join(';')
: ''
}}), 终点{{ form.endPoint }}, 避让区域{{
form.avoidAreas.length > 0 && form.avoidAreas[0].points
? form.avoidAreas.map((item) => item.points).join(';')
: ''
}})<br />
装备参数:最大车辆宽度{{ inputform.width || 0 }},最小转弯半径{{
inputform.minTurnRadius || 0
}}最大车辆载重{{ inputform.load || 0 }}
</div>
<vxe-table
ref="xTable"
:data="infoList"
>
<vxe-table ref="xTable" :data="infoList">
<vxe-column field="编码" title="编码" width="65px"></vxe-column>
<vxe-column field="名称" title="名称" width="80px"></vxe-column>
<vxe-column field="宽度" title="路宽"></vxe-column>
@ -116,8 +145,8 @@
<vxe-table
height="300px"
:data="tableData"
:row-config="{ isCurrent: true, isHover: true }"
:checkbox-config="{ checkField: 'checked', highlight: true }"
:row-config="{isCurrent: true, isHover: true}"
:checkbox-config="{checkField: 'checked', highlight: true}"
@checkbox-change="handleSelectionChange"
>
<vxe-column type="checkbox" width="50"></vxe-column>
@ -135,7 +164,7 @@
</template>
<script>
import router from '@/router';
import router from '@/router'
export default {
data() {
@ -146,14 +175,14 @@ export default {
inputform: {
width: '',
load: '',
minTurnRadius: ''
minTurnRadius: '',
},
form: {
startPoint: '',
endPoint: '',
viaPoints: [{ points: '', time: '' }],
avoidPoints: [{ points: '', time: '' }],
avoidAreas: [{ points: '', time: '' }],
viaPoints: [{points: '', time: ''}],
avoidPoints: [{points: '', time: ''}],
avoidAreas: [{points: '', time: ''}],
},
viewer: null,
graphicLayer: null,
@ -201,18 +230,22 @@ export default {
.catch((error) => {})
},
async initMap() {
this.viewer = new window.mars3d.Map('map', {
...this.mapOptions,
scene: {
center: {
lat: 27.729862392917948,
lng: 114.27980291774088,
alt: 3808,
heading: 5,
pitch: -35
}
},
} || {})
this.viewer = new window.mars3d.Map(
'map',
{
...this.mapOptions,
scene: {
// mode: Cesium.SceneMode.SCENE2D,
center: {
lat: 27.729862392917948,
lng: 114.27980291774088,
alt: 3808,
heading: 5,
pitch: -35,
},
},
} || {}
)
this.graphicLayer = new window.mars3d.layer.GraphicLayer()
this.viewer.addLayer(this.graphicLayer)
@ -245,7 +278,7 @@ export default {
point.remove()
})
this.viaPoints = []
this.form.viaPoints = [{ points: '', time: '' }]
this.form.viaPoints = [{points: '', time: ''}]
}
if (this.avoidPoints.length > 0) {
@ -254,7 +287,7 @@ export default {
point.remove()
})
this.avoidPoints = []
this.form.avoidPoints = [{ points: '', time: '' }]
this.form.avoidPoints = [{points: '', time: ''}]
}
if (this.avoidAreas.length > 0) {
@ -263,7 +296,7 @@ export default {
area.remove()
})
this.avoidAreas = []
this.form.avoidAreas = [{ points: '', time: '' }]
this.form.avoidAreas = [{points: '', time: ''}]
}
if (this.shortestPathLayer) {
// 清除最短路径图层
@ -311,133 +344,153 @@ export default {
// 弹框
async openDialog() {
await fetch('/data/minTurnRadius.json')
.then((response) => {
return response.json()
})
.then((data) => {
this.tableData = data
})
.catch((error) => {})
this.dialogVisible = true;
.then((response) => {
return response.json()
})
.then((data) => {
this.tableData = data
})
.catch((error) => {})
this.dialogVisible = true
},
handleSelectionChange({ records }) {
this.multipleSelection = records;
handleSelectionChange({records}) {
this.multipleSelection = records
},
confirmSelection() {
if (this.multipleSelection.length === 0) {
this.$message.warning('请至少选择一行数据');
return;
this.$message.warning('请至少选择一行数据')
return
}
const maxValues = this.multipleSelection.reduce((acc, item) => {
acc.width = Math.max(acc.width, item.width);
acc.load = Math.max(acc.load, item.load);
acc.minTurnRadius = Math.max(acc.minTurnRadius, item.minTurnRadius);
return acc;
}, { width: 0, load: 0, minTurnRadius: 0 });
this.inputform.width = maxValues.width;
this.inputform.load = maxValues.load;
this.inputform.minTurnRadius = maxValues.minTurnRadius;
this.dialogVisible = false;
const maxValues = this.multipleSelection.reduce(
(acc, item) => {
acc.width = Math.max(acc.width, item.width)
acc.load = Math.max(acc.load, item.load)
acc.minTurnRadius = Math.max(acc.minTurnRadius, item.minTurnRadius)
return acc
},
{width: 0, load: 0, minTurnRadius: 0}
)
this.inputform.width = maxValues.width
this.inputform.load = maxValues.load
this.inputform.minTurnRadius = maxValues.minTurnRadius
this.dialogVisible = false
},
// 导入json文件
triggerFileUpload() {
this.$refs.fileInput.click();
this.$refs.fileInput.click()
},
handleFileUpload(event) {
const file = event.target.files[0];
const file = event.target.files[0]
if (file) {
const reader = new FileReader();
const reader = new FileReader()
reader.onload = (e) => {
try {
const uploadedJson = JSON.parse(e.target.result);
this.importJson(uploadedJson);
const uploadedJson = JSON.parse(e.target.result)
this.importJson(uploadedJson)
} catch (error) {
console.error('解析 JSON 文件失败:', error);
this.$message.error('解析 JSON 文件失败');
console.error('解析 JSON 文件失败:', error)
this.$message.error('解析 JSON 文件失败')
}
};
reader.readAsText(file);
}
reader.readAsText(file)
}
},
async importJson(uploadedJson) {
if (!uploadedJson) {
this.$message.warning('请先选择一个 JSON 文件');
return;
};
this.$message.warning('请先选择一个 JSON 文件')
return
}
// 清除现有数据
this.clear();
this.clear()
// 加载起点
if (uploadedJson.startPoint) {
this.form.startPoint = uploadedJson.startPoint
this.addPointToMap('startPoint', this.form.startPoint);
this.addPointToMap('startPoint', this.form.startPoint)
}
// 加载终点
if (uploadedJson.endPoint) {
this.form.endPoint = uploadedJson.endPoint
this.addPointToMap('endPoint', this.form.endPoint);
this.addPointToMap('endPoint', this.form.endPoint)
}
// 加载途径点
if (uploadedJson.viaPoints) {
this.form.viaPoints = uploadedJson.viaPoints
uploadedJson.viaPoints.forEach(viaPoint => {
this.addPointToMap('viaPoints', viaPoint, viaPoint.time);
});
uploadedJson.viaPoints.forEach((viaPoint) => {
this.addPointToMap('viaPoints', viaPoint, viaPoint.time)
})
}
// 加载避让点
if (uploadedJson.avoidPoints) {
this.form.avoidPoints = uploadedJson.avoidPoints
uploadedJson.avoidPoints.forEach(avoidPoint => {
this.addPointToMap('avoidPoints', avoidPoint, avoidPoint.time);
});
uploadedJson.avoidPoints.forEach((avoidPoint) => {
this.addPointToMap('avoidPoints', avoidPoint, avoidPoint.time)
})
}
// 加载避让区域
if (uploadedJson.avoidAreas) {
this.form.avoidAreas = uploadedJson.avoidAreas
uploadedJson.avoidAreas.forEach(avoidArea => {
const time = Date.now();
this.addPolygonToMap('avoidAreas', avoidArea, avoidArea.time);
});
uploadedJson.avoidAreas.forEach((avoidArea) => {
const time = Date.now()
this.addPolygonToMap('avoidAreas', avoidArea, avoidArea.time)
})
}
},
addPointToMap(type, point, time) {
const coords = time ? point.points.split(',').map(Number) : point.split(',').map(Number);
const coords = time
? point.points.split(',').map(Number)
: point.split(',').map(Number)
const graphic = new window.mars3d.graphic.PointEntity({
position: new window.mars3d.LngLatPoint(coords[0], coords[1]),
style: {
pixelSize: 10,
color: type === 'startPoint' ? 'red' : type === 'endPoint' ? 'red' : type === 'viaPoints' ? 'blue' : 'orange',
color:
type === 'startPoint'
? 'red'
: type === 'endPoint'
? 'red'
: type === 'viaPoints'
? 'blue'
: 'orange',
label: {
text: type === 'startPoint' ? '起点' : type === 'endPoint' ? '终点' : type === 'viaPoints' ? '途径点' : '避让点',
text:
type === 'startPoint'
? '起点'
: type === 'endPoint'
? '终点'
: type === 'viaPoints'
? '途径点'
: '避让点',
font_size: 20,
color: '#ffffff',
outline: true,
outlineColor: '#000000',
pixelOffsetY: -20,
},
time: time
time: time,
},
});
this.graphicLayer.addGraphic(graphic);
})
this.graphicLayer.addGraphic(graphic)
if (type === 'startPoint') {
this.pointQD = graphic;
this.pointQD = graphic
} else if (type === 'endPoint') {
this.pointZD = graphic;
this.pointZD = graphic
} else if (type === 'viaPoints') {
this.viaPoints.push(graphic);
this.viaPoints.push(graphic)
} else if (type === 'avoidPoints') {
this.avoidPoints.push(graphic);
this.avoidPoints.push(graphic)
}
},
addPolygonToMap(type, area, time) {
const coords = JSON.parse(area.points);
const coords = JSON.parse(area.points)
const graphic = new window.mars3d.graphic.PolygonEntity({
positions: coords.map(coord => new window.mars3d.LngLatPoint(coord[0], coord[1])),
positions: coords.map(
(coord) => new window.mars3d.LngLatPoint(coord[0], coord[1])
),
style: {
color: 'red',
opacity: 0.4,
@ -445,103 +498,164 @@ export default {
outline: true,
outlineWidth: 1,
outlineColor: '#ffffff',
time: time
time: time,
},
});
this.graphicLayer.addGraphic(graphic);
})
this.graphicLayer.addGraphic(graphic)
if (type === 'avoidAreas') {
this.avoidAreas.push(graphic);
this.avoidAreas.push(graphic)
}
},
// 输入框失去焦点 反向编辑点
pointsChange(type, row) {
if (type === 'startPoint') {
if ((!this.form.startPoint || this.form.startPoint == '' || this.form.startPoint == null || this.form.startPoint == undefined) && this.pointQD) {
if (
(!this.form.startPoint ||
this.form.startPoint == '' ||
this.form.startPoint == null ||
this.form.startPoint == undefined) &&
this.pointQD
) {
this.pointQD.remove()
this.pointQD = null;
this.pointQD = null
return
}
this.updatePointPosition(this.pointQD, this.form.startPoint);
this.updatePointPosition(this.pointQD, this.form.startPoint)
} else if (type === 'endPoint') {
if ((!this.form.endPoint || this.form.endPoint == '' || this.form.endPoint == null || this.form.endPoint == undefined) && this.pointZD) {
if (
(!this.form.endPoint ||
this.form.endPoint == '' ||
this.form.endPoint == null ||
this.form.endPoint == undefined) &&
this.pointZD
) {
this.pointZD.remove()
this.pointZD = null;
this.pointZD = null
return
}
this.updatePointPosition(this.pointZD, this.form.endPoint);
this.updatePointPosition(this.pointZD, this.form.endPoint)
} else if (type === 'viaPoints') {
if (!row.points) {
const graphic = this.viaPoints.find(viaPoint => viaPoint.style.time === row.time);
if (this.form.viaPoints.length === 1 && this.form.viaPoints[0].points === '') {
if (!row.points) {
const graphic = this.viaPoints.find(
(viaPoint) => viaPoint.style.time === row.time
)
if (
this.form.viaPoints.length === 1 &&
this.form.viaPoints[0].points === ''
) {
// 如果只剩下一个空项,不删除图形,清空输入框值
this.form.viaPoints[0].points = '';
graphic?.remove();
this.viaPoints = this.viaPoints.filter(viaPoint => viaPoint.style.time !== row.time);
this.form.viaPoints[0].points = ''
graphic?.remove()
this.viaPoints = this.viaPoints.filter(
(viaPoint) => viaPoint.style.time !== row.time
)
} else {
this.form.viaPoints = this.form.viaPoints.filter(viaPoint => viaPoint.time !== row.time);
this.form.viaPoints = this.form.viaPoints.filter(
(viaPoint) => viaPoint.time !== row.time
)
}
graphic?.remove();
this.viaPoints = this.viaPoints.filter(viaPoint => viaPoint.style.time !== row.time);
graphic?.remove()
this.viaPoints = this.viaPoints.filter(
(viaPoint) => viaPoint.style.time !== row.time
)
} else {
const graphic = this.viaPoints.find(viaPoint => viaPoint.style.time === row.time);
this.updatePointPosition(graphic, row.points);
const graphic = this.viaPoints.find(
(viaPoint) => viaPoint.style.time === row.time
)
this.updatePointPosition(graphic, row.points)
}
} else if (type === 'avoidPoints') {
if (!row.points) {
const graphic = this.avoidPoints.find(avoidPoint => avoidPoint.style.time === row.time);
if (this.form.avoidPoints.length === 1 && this.form.avoidPoints[0].points === '') {
const graphic = this.avoidPoints.find(
(avoidPoint) => avoidPoint.style.time === row.time
)
if (
this.form.avoidPoints.length === 1 &&
this.form.avoidPoints[0].points === ''
) {
// 如果只剩下一个空项,不删除图形,清空输入框值
this.form.avoidPoints[0].points = '';
this.form.avoidPoints[0].points = ''
} else {
this.form.avoidPoints = this.form.avoidPoints.filter(avoidPoint => avoidPoint.time !== row.time);
this.form.avoidPoints = this.form.avoidPoints.filter(
(avoidPoint) => avoidPoint.time !== row.time
)
}
graphic?.remove();
this.avoidPoints = this.avoidPoints.filter(avoidPoint => avoidPoint.style.time !== row.time);
graphic?.remove()
this.avoidPoints = this.avoidPoints.filter(
(avoidPoint) => avoidPoint.style.time !== row.time
)
} else {
const graphic = this.avoidPoints.find(avoidPoint => avoidPoint.style.time === row.time);
this.updatePointPosition(graphic, row.points);
const graphic = this.avoidPoints.find(
(avoidPoint) => avoidPoint.style.time === row.time
)
this.updatePointPosition(graphic, row.points)
}
} else if (type === 'avoidAreas') {
if (!row.points) {
const graphic = this.avoidAreas.find(avoidArea => avoidArea.style.time === row.time);
if (this.form.avoidAreas.length === 1 && this.form.avoidAreas[0].points === '') {
const graphic = this.avoidAreas.find(
(avoidArea) => avoidArea.style.time === row.time
)
if (
this.form.avoidAreas.length === 1 &&
this.form.avoidAreas[0].points === ''
) {
// 如果只剩下一个空项,不删除图形,清空输入框值
this.form.avoidAreas[0].points = '';
this.form.avoidAreas[0].points = ''
} else {
this.form.avoidAreas = this.form.avoidAreas.filter(avoidArea => avoidArea.time !== row.time);
this.form.avoidAreas = this.form.avoidAreas.filter(
(avoidArea) => avoidArea.time !== row.time
)
}
graphic?.remove();
this.avoidAreas = this.avoidAreas.filter(avoidArea => avoidArea.style.time !== row.time);
graphic?.remove()
this.avoidAreas = this.avoidAreas.filter(
(avoidArea) => avoidArea.style.time !== row.time
)
} else {
const graphic = this.avoidAreas.find(avoidArea => avoidArea.style.time === row.time);
this.updatePolygonPosition(graphic, row.points);
const graphic = this.avoidAreas.find(
(avoidArea) => avoidArea.style.time === row.time
)
this.updatePolygonPosition(graphic, row.points)
}
}
},
handleEmptyArray(type) {
if (type === 'viaPoints' && this.form.viaPoints.length === 1 && this.form.viaPoints[0].points === '') {
this.form.viaPoints = [];
} else if (type === 'avoidPoints' && this.form.avoidPoints.length === 1 && this.form.avoidPoints[0].points === '') {
this.form.avoidPoints = [];
} else if (type === 'avoidAreas' && this.form.avoidAreas.length === 1 && this.form.avoidAreas[0].points === '') {
this.form.avoidAreas = [];
if (
type === 'viaPoints' &&
this.form.viaPoints.length === 1 &&
this.form.viaPoints[0].points === ''
) {
this.form.viaPoints = []
} else if (
type === 'avoidPoints' &&
this.form.avoidPoints.length === 1 &&
this.form.avoidPoints[0].points === ''
) {
this.form.avoidPoints = []
} else if (
type === 'avoidAreas' &&
this.form.avoidAreas.length === 1 &&
this.form.avoidAreas[0].points === ''
) {
this.form.avoidAreas = []
}
},
updatePointPosition(graphic, pointsStr) {
if (!graphic) return;
const coords = pointsStr.split(',').map(Number);
if (!graphic) return
const coords = pointsStr.split(',').map(Number)
if (coords.length === 2) {
graphic.position = new window.mars3d.LngLatPoint(coords[0], coords[1]);
graphic.position = new window.mars3d.LngLatPoint(coords[0], coords[1])
}
},
updatePolygonPosition(graphic, pointsStr) {
if (!graphic) return;
if (!graphic) return
try {
const coords = JSON.parse(pointsStr);
graphic.positions = coords.map(coord => new window.mars3d.LngLatPoint(coord[0], coord[1]));
const coords = JSON.parse(pointsStr)
graphic.positions = coords.map(
(coord) => new window.mars3d.LngLatPoint(coord[0], coord[1])
)
} catch (error) {
graphic.remove();
graphic.remove()
}
},
drawStartPoint() {
@ -566,7 +680,10 @@ export default {
},
success: (graphic) => {
this.pointQD = graphic
this.form.startPoint = [graphic.toGeoJSON().geometry.coordinates[0],graphic.toGeoJSON().geometry.coordinates[1]].join(",");
this.form.startPoint = [
graphic.toGeoJSON().geometry.coordinates[0],
graphic.toGeoJSON().geometry.coordinates[1],
].join(',')
},
})
},
@ -592,13 +709,16 @@ export default {
},
success: (graphic) => {
this.pointZD = graphic
this.form.endPoint = [graphic.toGeoJSON().geometry.coordinates[0],graphic.toGeoJSON().geometry.coordinates[1]].join(",");
this.form.endPoint = [
graphic.toGeoJSON().geometry.coordinates[0],
graphic.toGeoJSON().geometry.coordinates[1],
].join(',')
},
})
},
// 途径点
drawViaPoint() {
const time = Date.now();
const time = Date.now()
this.graphicLayer.startDraw({
type: 'point',
style: {
@ -612,23 +732,30 @@ export default {
outlineColor: '#000000',
pixelOffsetY: -20,
},
time: time
time: time,
},
success: (graphic) => {
this.viaPoints.push(graphic)
const points = [graphic.toGeoJSON().geometry.coordinates[0],graphic.toGeoJSON().geometry.coordinates[1]].join(",")
if(this.form.viaPoints.length == 1 && this.form.viaPoints[0].points == '' && !this.form.viaPoints[0].points){
const points = [
graphic.toGeoJSON().geometry.coordinates[0],
graphic.toGeoJSON().geometry.coordinates[1],
].join(',')
if (
this.form.viaPoints.length == 1 &&
this.form.viaPoints[0].points == '' &&
!this.form.viaPoints[0].points
) {
this.form.viaPoints[0].points = points
this.form.viaPoints[0].time = time
} else {
this.form.viaPoints.push({points,time})
this.form.viaPoints.push({points, time})
}
},
})
},
// 避让点
drawAvoidPoint() {
const time = Date.now();
const time = Date.now()
this.graphicLayer.startDraw({
type: 'point',
style: {
@ -642,12 +769,19 @@ export default {
outlineColor: '#000000',
pixelOffsetY: -20,
},
time: time
time: time,
},
success: (graphic) => {
this.avoidPoints.push(graphic)
const points = [graphic.toGeoJSON().geometry.coordinates[0],graphic.toGeoJSON().geometry.coordinates[1]].join(",")
if(this.form.avoidPoints.length == 1 && this.form.avoidPoints[0].points == '' && !this.form.avoidPoints[0].points){
const points = [
graphic.toGeoJSON().geometry.coordinates[0],
graphic.toGeoJSON().geometry.coordinates[1],
].join(',')
if (
this.form.avoidPoints.length == 1 &&
this.form.avoidPoints[0].points == '' &&
!this.form.avoidPoints[0].points
) {
this.form.avoidPoints[0].points = points
this.form.avoidPoints[0].time = time
} else {
@ -658,7 +792,7 @@ export default {
},
// 避让区域
drawAvoidArea() {
const time = Date.now();
const time = Date.now()
this.graphicLayer.startDraw({
type: 'polygon',
drawEndEventType: window.mars3d.EventType.dblClick,
@ -669,13 +803,19 @@ export default {
outline: true,
outlineWidth: 1,
outlineColor: '#ffffff',
time: time
time: time,
},
success: (graphic) => {
this.avoidAreas.push(graphic)
const avoidAreasGeoJSON = graphic.toGeoJSON()
const points = JSON.stringify(avoidAreasGeoJSON.geometry.coordinates[0])
if(this.form.avoidAreas.length == 1 && this.form.avoidAreas[0].points == '' && !this.form.avoidAreas[0].points){
const points = JSON.stringify(
avoidAreasGeoJSON.geometry.coordinates[0]
)
if (
this.form.avoidAreas.length == 1 &&
this.form.avoidAreas[0].points == '' &&
!this.form.avoidAreas[0].points
) {
this.form.avoidAreas[0].points = points
this.form.avoidAreas[0].time = time
} else {
@ -883,7 +1023,7 @@ export default {
},
})
this.shortestPathLayer.addGraphic(polyline)
this.infoList = path.infoList.map(item => item.properties)
this.infoList = path.infoList.map((item) => item.properties)
},
},
}
@ -995,4 +1135,4 @@ export default {
width: calc(100vw- 792px);
height: 100%;
}
</style>
</style>