This commit is contained in:
yiqiuyang
2025-09-10 09:44:48 +08:00
3 changed files with 34 additions and 37 deletions

View File

@ -1,26 +1,26 @@
[ [
{ {
"id": 1, "id": 1,
"width": 30, "width": 7,
"load": 500, "load": 3,
"minTurnRadius": 5 "minTurnRadius": 5
}, },
{ {
"id": 2, "id": 2,
"width": 10, "width": 11,
"load": 600, "load": 1,
"minTurnRadius": 6 "minTurnRadius": 6
}, },
{ {
"id": 3, "id": 3,
"width": 40, "width": 8,
"load": 700, "load": 7,
"minTurnRadius": 10 "minTurnRadius": 10
}, },
{ {
"id": 4, "id": 4,
"width": 20, "width": 10,
"load": 700, "load": 5,
"minTurnRadius": 2 "minTurnRadius": 2
} }
] ]

View File

@ -1,38 +1,22 @@
{ {
"startPoint": "114.262694,27.786216", "startPoint": "114.26344,27.800982",
"endPoint": "114.274729,27.777062", "endPoint": "114.284668,27.794961",
"viaPoints": [ "viaPoints": [
{ {
"time": "1694352000000", "time": "1694352000000",
"points": "114.263233,27.777047" "points": "114.272329,27.797299"
},
{
"time": "1694352001000",
"points": "114.265512,27.789935"
},
{
"time": "1694352002000",
"points": "114.256863,27.780437"
} }
], ],
"avoidPoints": [ "avoidPoints": [
{ {
"time": "1694352003000", "time": "1694352003000",
"points": "114.261166,27.800982" "points": "114.27882,27.792857"
},
{
"time": "1694352004000",
"points": "114.251312,27.786932"
} }
], ],
"avoidAreas": [ "avoidAreas": [
{ {
"time": "1694352005000", "time": "1694352005000",
"points": "[[114.267217,27.777566,0],[114.276695,27.78048,0],[114.276001,27.772547,0],[114.276001,27.772486,0]]" "points": "[[114.272797,27.7935,0],[114.27268,27.794201,0],[114.27537,27.795838,0]]"
},
{
"time": "1694352006000",
"points": "[[114.272317,27.786501,0],[114.281341,27.79818,0],[114.290389,27.779594,0],[114.284888,27.773934,0]]"
} }
] ]
} }

View File

@ -33,12 +33,16 @@
<el-input <el-input
v-model="form.startPoint" v-model="form.startPoint"
@blur="pointsChange('startPoint')" @blur="pointsChange('startPoint')"
@clear="pointsChange('startPoint')"
clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="终点"> <el-form-item label="终点">
<el-input <el-input
v-model="form.endPoint" v-model="form.endPoint"
@blur="pointsChange('endPoint')" @blur="pointsChange('endPoint')"
@clear="pointsChange('endPoint')"
clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="途径点"> <el-form-item label="途径点">
@ -47,6 +51,8 @@
v-model="item.points" v-model="item.points"
placeholder="" placeholder=""
@blur="pointsChange('viaPoints', item)" @blur="pointsChange('viaPoints', item)"
@clear="pointsChange('viaPoints', item)"
clearable
></el-input> ></el-input>
</div> </div>
</el-form-item> </el-form-item>
@ -56,17 +62,19 @@
v-model="item.points" v-model="item.points"
placeholder="" placeholder=""
@blur="pointsChange('avoidPoints', item)" @blur="pointsChange('avoidPoints', item)"
@clear="pointsChange('avoidPoints', item)"
clearable
></el-input> ></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="避让区域"> <el-form-item label="避让区域">
<div v-for="(item, index) in form.avoidAreas" :key="index"> <div v-for="(item, index) in form.avoidAreas" :key="index">
<el-input <el-input
type="textarea"
v-model="item.points" v-model="item.points"
:rows="4"
placeholder="" placeholder=""
@blur="pointsChange('avoidAreas', item)" @blur="pointsChange('avoidAreas', item)"
@clear="pointsChange('avoidAreas', item)"
clearable
></el-input> ></el-input>
</div> </div>
</el-form-item> </el-form-item>
@ -173,9 +181,9 @@ export default {
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
inputform: { inputform: {
width: '', width: 0,
load: '', load: 0,
minTurnRadius: '', minTurnRadius: 0,
}, },
form: { form: {
startPoint: '', startPoint: '',
@ -201,7 +209,6 @@ export default {
} }
}, },
async mounted() { async mounted() {
console.log('go')
this.viewer = null this.viewer = null
await this.getMapOption() await this.getMapOption()
this.$nextTick(async () => { this.$nextTick(async () => {
@ -235,6 +242,7 @@ export default {
{ {
...this.mapOptions, ...this.mapOptions,
scene: { scene: {
...this.mapOptions.scene,
// mode: Cesium.SceneMode.SCENE2D, // mode: Cesium.SceneMode.SCENE2D,
center: { center: {
lat: 27.729862392917948, lat: 27.729862392917948,
@ -509,6 +517,7 @@ export default {
}, },
// 输入框失去焦点 反向编辑点 // 输入框失去焦点 反向编辑点
pointsChange(type, row) { pointsChange(type, row) {
console.log('111', type)
if (type === 'startPoint') { if (type === 'startPoint') {
if ( if (
(!this.form.startPoint || (!this.form.startPoint ||
@ -953,10 +962,13 @@ export default {
const nextNode = pathNodes[j + 1] const nextNode = pathNodes[j + 1]
const segment = this.roadNetworkGeoJSON.features.find( const segment = this.roadNetworkGeoJSON.features.find(
(f) => (f) =>
(f.properties.FNODE_ == currentNode && ((f.properties.FNODE_ == currentNode &&
f.properties.TNODE_ == nextNode) || f.properties.TNODE_ == nextNode) ||
(f.properties.FNODE_ == nextNode && (f.properties.FNODE_ == nextNode &&
f.properties.TNODE_ == currentNode) f.properties.TNODE_ == currentNode) )&&
f.properties.载重吨 >= this.inputform.load &&
f.properties.宽度 >= this.inputform.width &&
f.properties.曲率半 <= this.inputform.minTurnRadius
) )
if (segment) { if (segment) {
fullPath.push(...segment.geometry.coordinates[0]) fullPath.push(...segment.geometry.coordinates[0])
@ -1014,6 +1026,7 @@ export default {
// 单独的路径绘制方法 // 单独的路径绘制方法
drawPath(path) { drawPath(path) {
const positions = path const positions = path
if (positions.fullPath.length == 0) return
const polyline = new window.mars3d.graphic.PolylinePrimitive({ const polyline = new window.mars3d.graphic.PolylinePrimitive({
positions: positions.fullPath, positions: positions.fullPath,
style: { style: {