mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-07-05 15:47:34 +00:00
128 lines
3.7 KiB
JavaScript
128 lines
3.7 KiB
JavaScript
import { waveData } from './WaveData.js'
|
|
|
|
let builder = null
|
|
|
|
onmessage = (e) => {
|
|
let params = e.data.params
|
|
if (!builder) {
|
|
let uvData = params.uvData
|
|
let [header, uData, vData] = uvData
|
|
builder = new waveData.buildGrid({
|
|
header,
|
|
data: function (i) {
|
|
return [uData[i], vData[i]]
|
|
},
|
|
interpolate: waveData.bilinearInterpolateVector
|
|
})
|
|
}
|
|
let time1 = new Date().getTime()
|
|
if (params.velocityScale_o) waveData.velocityScale_o = params.velocityScale_o
|
|
let result = waveData.reCreate(params, builder, true)
|
|
let time2 = new Date().getTime()
|
|
let time = time2 - time1
|
|
let data = {
|
|
params,
|
|
columns: result.columns,
|
|
pixels: result.mask.imageData,
|
|
time: time
|
|
}
|
|
postMessage(data)
|
|
}
|
|
|
|
// var builder = null;
|
|
|
|
// function parseData(params) {
|
|
// axios({
|
|
// method: "POST",
|
|
// url: params.url,
|
|
// // contentType:'application/json',
|
|
// data: {
|
|
// date: params.date,
|
|
// modelType: params.modelType,
|
|
// element: params.element,
|
|
// level: params.level
|
|
// }
|
|
// }).then(file => {
|
|
// if (file != null) {
|
|
// let data = file.data.data;
|
|
// var field = [];
|
|
// var w = data.gridWidth;
|
|
// var h = data.gridHeight;
|
|
// var n = 2 * w * h;
|
|
// var i = 0;
|
|
// var total = 0;
|
|
// var weight = 0;
|
|
// for (var x = 0; x < w; x++) {
|
|
// field[x] = [];
|
|
// for (var y = 0; y < h; y++) {
|
|
// var vx = Number(data.field[i++]);
|
|
// var vy = Number(data.field[i++]);
|
|
// var v = { x: vx, y: vy };
|
|
// // Uncomment to test a constant field:
|
|
// // v = new Vector(10, 0);
|
|
// var ux = x / (w - 1);
|
|
// var uy = y / (h - 1);
|
|
// var lon = data.x0 * (1 - ux) + data.x1 * ux;
|
|
// var lat = data.y0 * (1 - uy) + data.y1 * uy;
|
|
|
|
// field[x][y] = v;
|
|
// }
|
|
// }
|
|
// var udatas = [], vdatas = [], ydatas = [], xdatas = [];
|
|
// var _length = field.length;
|
|
// for (var y = data.gridHeight - 1; y >= 0; y--) {
|
|
// for (var x = 0; x < data.gridWidth; x++) {
|
|
// xdatas.push(field[x][y].x);
|
|
// ydatas.push(field[x][y].y);
|
|
// }
|
|
// }
|
|
// var header = {
|
|
// "nx": data.gridWidth,
|
|
// "ny": data.gridHeight,
|
|
// "basicAngle": 0,
|
|
// "subDivisions": 0,
|
|
// "lo1": data.x0,
|
|
// "la1": data.y0,
|
|
// "lo2": data.x1,
|
|
// "la2": data.y1,
|
|
// // "dx": Number(360/(data.gridWidth-1)).toFixed(0),
|
|
// // "dy": Number(180/(data.gridHeight-1)).toFixed(0)
|
|
// // "dx": Math.round(360 * 10 / (data.gridWidth - 1)) / 10,
|
|
// // "dy": Math.round(180 * 10 / (data.gridHeight - 1)) / 10
|
|
// "dx": 1.0,
|
|
// "dy": 1.0
|
|
// };
|
|
|
|
// /* var uData = file[0].data;
|
|
// var vData = file[1].data;*/
|
|
// var uData = xdatas;
|
|
// var vData = ydatas;
|
|
|
|
// var build = {};
|
|
// //lxl注释
|
|
// build.header = header;
|
|
// build.data = function(i) {
|
|
// return [uData[i], vData[i]];
|
|
// };
|
|
// build.interpolate = waveData.bilinearInterpolateVector;
|
|
// builder = new waveData.buildGrid(build);
|
|
// }
|
|
// });
|
|
// }
|
|
|
|
// onmessage = (e) => {
|
|
// if (builder == null) {
|
|
// parseData(e.data.params.url);
|
|
// }
|
|
// //lxl20200828增加
|
|
// if (builder != null) {
|
|
// var time1 = new Date().getTime();
|
|
// var result = waveData.reCreate(e.data.params, builder, true);
|
|
// var time2 = new Date().getTime();
|
|
// var time = time2 - time1;
|
|
|
|
// var data = { params: e.data.params, columns: result.columns, pixels: result.mask.imageData, time: time };
|
|
// postMessage(data);
|
|
// }
|
|
// };
|