From febd720588509f0f72d6a08a7bee90bdbbd6e542 Mon Sep 17 00:00:00 2001 From: portree_kid Date: Mon, 27 Jul 2020 07:04:53 +0200 Subject: [PATCH] https://github.com/Portree-Kid/flightgear-airports/issues/82 --- src/renderer/check/mapper.js | 6 ++--- src/renderer/components/EditBar.vue | 2 +- src/renderer/components/Upload.vue | 24 ++++++++++++++----- .../loaders/TaxiwaySegmentExtender.js | 18 +++++++------- src/renderer/utils/check.js | 5 ++-- 5 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/renderer/check/mapper.js b/src/renderer/check/mapper.js index a6fe025..26f0ac7 100644 --- a/src/renderer/check/mapper.js +++ b/src/renderer/check/mapper.js @@ -31,9 +31,8 @@ export function checkMapper(o) { 'box': o.box !== undefined ? o.box.getLatLngs() : null }; } else if (o instanceof L.RunwayNode) { - console.log(o) - - return { 'index': Number(o['glueindex']), '_leaflet_id': o._leaflet_id, 'lat': o._latlng.lat, 'lng': o._latlng.lng, 'type': 'runway' }; + console.log(o) + return { 'index': Number(o['glueindex']), '_leaflet_id': o._leaflet_id, 'lat': o._latlng.lat, 'lng': o._latlng.lng, 'type': 'runway' }; } else if (o instanceof L.HoldNode) { console.log(o) return { 'index': Number(o['glueindex']), '_leaflet_id': o._leaflet_id, 'type': o.holdPointType }; @@ -44,7 +43,6 @@ export function checkMapper(o) { } } else if (o instanceof L.Polyline) { console.log(o) - //_latlngs[""0""].__vertex.glueindex var latLngs = o.getLatLngs().map(l => ({ lat: l.lat, lng: l.lng, index: l.glueindex })); if (o.options.attributes===undefined) { return null; diff --git a/src/renderer/components/EditBar.vue b/src/renderer/components/EditBar.vue index 802300a..69780be 100644 --- a/src/renderer/components/EditBar.vue +++ b/src/renderer/components/EditBar.vue @@ -190,7 +190,7 @@ You should have received a copy of the GNU General Public License along with FG view.scanning = Boolean(workery.checking) workery.view = view } - }, 1000) + }, 500) }, test() { this.$parent.$parent.$refs.editLayer.test() diff --git a/src/renderer/components/Upload.vue b/src/renderer/components/Upload.vue index fd65def..aed9adb 100644 --- a/src/renderer/components/Upload.vue +++ b/src/renderer/components/Upload.vue @@ -117,7 +117,7 @@ view.scanning = Boolean(workery.checking) workery.view = view } - }, 1000) + }, 500) }, check () { try { @@ -137,15 +137,27 @@ worker.progress = 0 // var worker = new Worker(fileUrl('src/renderer/utils/worker.js')) this.worker = worker - var xml = [] + var groundnet = [] + this.$parent.$parent.$parent.$refs.editLayer.groundnetLayerGroup.eachLayer(l => { console.log(l) - xml.push(l) + if (l instanceof L.Polyline) { + l._latlngs[0].glueindex = this.begin; + l._latlngs.slice(-1)[0].glueindex = this.end; + l.extensions(this) + } + + groundnet.push(l) }) + var features = groundnet.map(mapper.checkMapper).filter(n => n) + var pavement = [] + this.$parent.$parent.$parent.$refs.pavementLayer.pavement.eachLayer(l => { + console.log(l) + pavement.push(l) + }) + var features2 = pavement.map(mapper.checkMapper).filter(n => n) - var features = xml.map(mapper.checkMapper).filter(n => n) - - worker.postMessage(['check', features ] ) + worker.postMessage(['check', features.concat(features2) ] ) this.pollData() // the reply var store = this.$store diff --git a/src/renderer/loaders/TaxiwaySegmentExtender.js b/src/renderer/loaders/TaxiwaySegmentExtender.js index 05e2d7c..e6f8566 100644 --- a/src/renderer/loaders/TaxiwaySegmentExtender.js +++ b/src/renderer/loaders/TaxiwaySegmentExtender.js @@ -33,15 +33,17 @@ exports.extendTaxiSegment = function (taxiwaySegment) { this.editLayer = editLayer; this._latlngs[0].glueindex = this.begin; this._latlngs.slice(-1)[0].glueindex = this.end; - if (typeof this.featureLookup[this.begin] === 'undefined') { - this.featureLookup[this.begin] = new Array(); + if(this.featureLookup) { + if (typeof this.featureLookup[this.begin] === 'undefined') { + this.featureLookup[this.begin] = new Array(); + } + if (typeof this.featureLookup[this.end] === 'undefined') { + this.featureLookup[this.end] = new Array(); + } + this.featureLookup[this.begin].push(this); + this.featureLookup[this.end].push(this); + this.bidirectional = true; } - if (typeof this.featureLookup[this.end] === 'undefined') { - this.featureLookup[this.end] = new Array(); - } - this.featureLookup[this.begin].push(this); - this.featureLookup[this.end].push(this); - this.bidirectional = true; }; taxiwaySegment.__proto__.select = function () { this.options.attributes.selected = true; diff --git a/src/renderer/utils/check.js b/src/renderer/utils/check.js index a288bc3..9b18cb2 100644 --- a/src/renderer/utils/check.js +++ b/src/renderer/utils/check.js @@ -98,11 +98,11 @@ async function checkGroundnet(data) { console.log(edges); if (edges === undefined) { - resolve({ id: -1, message: check_msg.NO_EDGES }); + resolve([{ id: -1, message: check_msg.NO_EDGES }]); } this.postMessage(['progress', 1]); if (runways.length === 0) { - resolve({ id: -1, message: check_msg.NO_RUNWAYS }); + resolve([{ id: -1, message: check_msg.NO_RUNWAYS }]); } this.postMessage(['progress', 1]); edges.forEach(edge => { @@ -380,6 +380,7 @@ async function checkGroundnet(data) { //Check if nodes no normal nodes are on runway normalNodes.forEach(normalNode => { + //debugger; if( runways.filter(r => turf.booleanContains(r, latToTurf(normalNode))).length > 0 ) { notOkNodes.push({ id: normalNode.index, message: check_msg.NON_RUNWAYNODE_ON_RUNWAY }); }