Change messaginging, allow adding more message types later
This commit is contained in:
+14
-8
@@ -7,7 +7,7 @@ import { createUrl, parseUrl } from './url/UrlHandler.js';
|
||||
import { wktToGeoJSON } from '@terraformer/wkt';
|
||||
import PPENHandler from './files/ppenhandler.js';
|
||||
import type { GeoJsonObject } from 'geojson';
|
||||
import type { SearchStatusMessage, StartSearchMessage } from './worker/messages.js';
|
||||
import type { FromWorkerMessage, ToWorkerMessage } from './worker/messages.js';
|
||||
|
||||
// Outside influences
|
||||
let mapHandler = new MapHandler();
|
||||
@@ -286,10 +286,13 @@ function updateState() {
|
||||
|
||||
// In case of messages from the web worker, do work
|
||||
worker.onmessage = e => {
|
||||
let message = e.data as SearchStatusMessage;
|
||||
state.foundPath = message.path;
|
||||
state.calculating = false;
|
||||
updateState();
|
||||
let fromWorker = e.data as FromWorkerMessage;
|
||||
let message = fromWorker.message;
|
||||
if (message.type == 'SearchFinished') {
|
||||
state.foundPath = message.path;
|
||||
state.calculating = false;
|
||||
updateState();
|
||||
}
|
||||
}
|
||||
|
||||
function calculateRoute(): void {
|
||||
@@ -326,9 +329,12 @@ function calculateRoute(): void {
|
||||
weights.push(weightsRow);
|
||||
}
|
||||
|
||||
let startSearchMessage: StartSearchMessage = {
|
||||
weights: weights
|
||||
};
|
||||
let startSearchMessage: ToWorkerMessage = {
|
||||
message: {
|
||||
type: "StartSearch",
|
||||
weights: weights
|
||||
}
|
||||
}
|
||||
|
||||
worker.postMessage(startSearchMessage);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user