raain-ui 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/RELEASE.md +3 -0
- package/drawers/CartesianDrawer.d.ts +26 -0
- package/drawers/CartesianDrawer.js +73 -0
- package/drawers/CartesianDrawerOptimization.d.ts +10 -0
- package/drawers/CartesianDrawerOptimization.js +42 -0
- package/drawers/CartesianGridValue.d.ts +15 -0
- package/drawers/CartesianGridValue.js +25 -0
- package/drawers/GridValue.d.ts +12 -0
- package/drawers/GridValue.js +75 -0
- package/drawers/PolarDrawer.d.ts +28 -0
- package/drawers/PolarDrawer.js +187 -0
- package/drawers/PolarDrawerOptimization.d.ts +14 -0
- package/drawers/PolarDrawerOptimization.js +54 -0
- package/drawers/PolarGridValue.d.ts +13 -0
- package/drawers/PolarGridValue.js +50 -0
- package/factories/ElementsFactory.d.ts +96 -0
- package/factories/ElementsFactory.js +762 -0
- package/index.d.ts +22 -0
- package/index.js +39 -0
- package/layers/CartesianLayer.d.ts +24 -0
- package/layers/CartesianLayer.js +96 -0
- package/layers/CompositeLayer.d.ts +17 -0
- package/layers/CompositeLayer.js +69 -0
- package/layers/IPixiLayer.d.ts +7 -0
- package/layers/IPixiLayer.js +3 -0
- package/layers/IPixiUniqueLayer.d.ts +8 -0
- package/layers/IPixiUniqueLayer.js +3 -0
- package/layers/MarkersLayer.d.ts +16 -0
- package/layers/MarkersLayer.js +73 -0
- package/layers/PixiGridLayer.d.ts +58 -0
- package/layers/PixiGridLayer.js +188 -0
- package/layers/PolarLayer.d.ts +26 -0
- package/layers/PolarLayer.js +124 -0
- package/layers/PolarLayerConfig.d.ts +9 -0
- package/layers/PolarLayerConfig.js +32 -0
- package/package.json +49 -0
- package/timeframes/FrameContainer.d.ts +9 -0
- package/timeframes/FrameContainer.js +13 -0
- package/timeframes/TimeframeContainer.d.ts +12 -0
- package/timeframes/TimeframeContainer.js +34 -0
- package/timeframes/TimeframeContainers.d.ts +9 -0
- package/timeframes/TimeframeContainers.js +84 -0
- package/tools/CartesianMapValue.d.ts +12 -0
- package/tools/CartesianMapValue.js +25 -0
- package/tools/MapLatLng.d.ts +7 -0
- package/tools/MapLatLng.js +14 -0
- package/tools/MapTools.d.ts +11 -0
- package/tools/MapTools.js +32 -0
- package/tools/PolarMapValue.d.ts +21 -0
- package/tools/PolarMapValue.js +67 -0
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# raain-ui
|
|
2
|
+
|
|
3
|
+
Please read the [specifications](./specs).
|
|
4
|
+
|
|
5
|
+
or try the [example](./example) :
|
|
6
|
+
```bash
|
|
7
|
+
npm i
|
|
8
|
+
npm run build
|
|
9
|
+
cd example/
|
|
10
|
+
npm start
|
|
11
|
+
```
|
|
12
|
+
=> http://localhost:1234
|
|
13
|
+
|
|
14
|
+
## History
|
|
15
|
+
|
|
16
|
+
See [Release notes](./RELEASE.md).
|
|
17
|
+
|
|
18
|
+
## License
|
|
19
|
+
MIT
|
package/RELEASE.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LatLng, Point } from 'leaflet';
|
|
2
|
+
import { CartesianMapValue } from '../tools/CartesianMapValue';
|
|
3
|
+
import { CartesianGridValue } from './CartesianGridValue';
|
|
4
|
+
import { CartesianDrawerOptimization } from './CartesianDrawerOptimization';
|
|
5
|
+
export declare class CartesianDrawer {
|
|
6
|
+
private cartesianMap2Points;
|
|
7
|
+
private cartesianMap2Display;
|
|
8
|
+
private cartesianMapZoom;
|
|
9
|
+
private type;
|
|
10
|
+
private geoValues;
|
|
11
|
+
private version;
|
|
12
|
+
private optimizations;
|
|
13
|
+
private distanceRatio;
|
|
14
|
+
private centerPoint;
|
|
15
|
+
constructor(cartesianMap2Points: (mapValue: CartesianMapValue) => {
|
|
16
|
+
p1: Point;
|
|
17
|
+
p2: Point;
|
|
18
|
+
}, cartesianMap2Display: (mapValue: CartesianMapValue) => boolean, cartesianMapZoom: () => number, type: string);
|
|
19
|
+
getVersion(): string;
|
|
20
|
+
setConfiguration(theme: number, range: number, optimizations: CartesianDrawerOptimization[]): void;
|
|
21
|
+
getOptimization(): CartesianDrawerOptimization;
|
|
22
|
+
updateValues(geoValues: CartesianMapValue[], version: string): void;
|
|
23
|
+
hasChanged(center: LatLng, centerPoint: Point): boolean;
|
|
24
|
+
renderCartesianMapValues(center: LatLng, centerPoint: Point, drawShape: (gridValue: CartesianGridValue) => boolean): number;
|
|
25
|
+
private getDistanceRatio;
|
|
26
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CartesianDrawer = void 0;
|
|
4
|
+
const leaflet_1 = require("leaflet");
|
|
5
|
+
const CartesianGridValue_1 = require("./CartesianGridValue");
|
|
6
|
+
const MapTools_1 = require("../tools/MapTools");
|
|
7
|
+
const CartesianDrawerOptimization_1 = require("./CartesianDrawerOptimization");
|
|
8
|
+
class CartesianDrawer {
|
|
9
|
+
constructor(cartesianMap2Points, cartesianMap2Display, cartesianMapZoom, type) {
|
|
10
|
+
this.cartesianMap2Points = cartesianMap2Points;
|
|
11
|
+
this.cartesianMap2Display = cartesianMap2Display;
|
|
12
|
+
this.cartesianMapZoom = cartesianMapZoom;
|
|
13
|
+
this.type = type;
|
|
14
|
+
this.geoValues = [];
|
|
15
|
+
this.distanceRatio = 0;
|
|
16
|
+
this.centerPoint = new leaflet_1.Point(0, 0);
|
|
17
|
+
this.optimizations = CartesianDrawerOptimization_1.CartesianDrawerOptimization.Defaults();
|
|
18
|
+
}
|
|
19
|
+
getVersion() {
|
|
20
|
+
return this.version;
|
|
21
|
+
}
|
|
22
|
+
setConfiguration(theme, range, optimizations) {
|
|
23
|
+
this.optimizations = optimizations;
|
|
24
|
+
}
|
|
25
|
+
getOptimization() {
|
|
26
|
+
const optimizations = this.optimizations.filter((o) => {
|
|
27
|
+
return this.type.toLowerCase().indexOf(o.type.toLowerCase()) > 0;
|
|
28
|
+
});
|
|
29
|
+
if (optimizations.length === 1) {
|
|
30
|
+
return optimizations[0];
|
|
31
|
+
}
|
|
32
|
+
console.warn('no optimization found for cartesian drawer - please consider to use one');
|
|
33
|
+
return CartesianDrawerOptimization_1.CartesianDrawerOptimization.Defaults()[0];
|
|
34
|
+
}
|
|
35
|
+
updateValues(geoValues, version) {
|
|
36
|
+
console.log('updateValues', version);
|
|
37
|
+
this.geoValues = geoValues;
|
|
38
|
+
this.version = version;
|
|
39
|
+
}
|
|
40
|
+
hasChanged(center, centerPoint) {
|
|
41
|
+
if (!centerPoint.equals(this.centerPoint)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return this.distanceRatio !== this.getDistanceRatio(center);
|
|
45
|
+
}
|
|
46
|
+
renderCartesianMapValues(center, centerPoint, drawShape) {
|
|
47
|
+
let done = 0;
|
|
48
|
+
const distanceRatio = this.getDistanceRatio(center);
|
|
49
|
+
this.distanceRatio = distanceRatio;
|
|
50
|
+
this.centerPoint = centerPoint;
|
|
51
|
+
const optimization = this.getOptimization();
|
|
52
|
+
const filteredValues = optimization.filteringValues(this.cartesianMapZoom(), this.geoValues, this.cartesianMap2Display);
|
|
53
|
+
for (const mapValue of filteredValues) {
|
|
54
|
+
if (done > optimization.hardLimit) {
|
|
55
|
+
console.log('hard limit reached ', optimization === null || optimization === void 0 ? void 0 : optimization.hardLimit);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
const points = this.cartesianMap2Points(mapValue);
|
|
59
|
+
const gridValue = CartesianGridValue_1.CartesianGridValue.Create(mapValue, points, centerPoint, distanceRatio, optimization);
|
|
60
|
+
if (drawShape(gridValue)) {
|
|
61
|
+
done++;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return done;
|
|
65
|
+
}
|
|
66
|
+
getDistanceRatio(centerPoint) {
|
|
67
|
+
const distanceRatio = MapTools_1.MapTools.getCartesianDistanceRatio(centerPoint, this.geoValues, this.cartesianMap2Points);
|
|
68
|
+
// console.log('distanceRatio: ', distanceRatio);
|
|
69
|
+
return distanceRatio;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.CartesianDrawer = CartesianDrawer;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FydGVzaWFuRHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyYXdlcnMvQ2FydGVzaWFuRHJhd2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFzQztBQUd0Qyw2REFBd0Q7QUFDeEQsZ0RBQTJDO0FBQzNDLCtFQUEwRTtBQUUxRSxNQUFhLGVBQWU7SUFReEIsWUFBb0IsbUJBQThFLEVBQzlFLG9CQUE4RCxFQUM5RCxnQkFBOEIsRUFDOUIsSUFBWTtRQUhaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMkQ7UUFDOUUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEwQztRQUM5RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWM7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLHlEQUEyQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFTSxVQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQ2IsS0FBYSxFQUNiLGFBQTRDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FB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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CartesianMapValue } from '../tools/CartesianMapValue';
|
|
2
|
+
export declare class CartesianDrawerOptimization {
|
|
3
|
+
type: string;
|
|
4
|
+
hardLimit: number;
|
|
5
|
+
bypass: boolean;
|
|
6
|
+
considerZoom: boolean;
|
|
7
|
+
constructor(type: string, hardLimit: number, bypass: boolean, considerZoom: boolean);
|
|
8
|
+
static Defaults(): CartesianDrawerOptimization[];
|
|
9
|
+
filteringValues(zoom: number, geoValues: CartesianMapValue[], cartesianMap2Display: (mapValue: CartesianMapValue) => boolean): CartesianMapValue[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CartesianDrawerOptimization = void 0;
|
|
4
|
+
class CartesianDrawerOptimization {
|
|
5
|
+
constructor(type, hardLimit, bypass, considerZoom) {
|
|
6
|
+
this.type = type;
|
|
7
|
+
this.hardLimit = hardLimit;
|
|
8
|
+
this.bypass = bypass;
|
|
9
|
+
this.considerZoom = considerZoom;
|
|
10
|
+
}
|
|
11
|
+
static Defaults() {
|
|
12
|
+
return [
|
|
13
|
+
new CartesianDrawerOptimization('default', 60000, false, false),
|
|
14
|
+
new CartesianDrawerOptimization('radar', 60000, true, true),
|
|
15
|
+
new CartesianDrawerOptimization('rain', 60000, false, false),
|
|
16
|
+
new CartesianDrawerOptimization('zoom', 60000, false, true),
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
filteringValues(zoom, geoValues, cartesianMap2Display) {
|
|
20
|
+
let valuesToDisplay = geoValues.filter(v => v.value > 0.4);
|
|
21
|
+
if (cartesianMap2Display) {
|
|
22
|
+
valuesToDisplay = valuesToDisplay.filter(cartesianMap2Display);
|
|
23
|
+
}
|
|
24
|
+
if (this.considerZoom) {
|
|
25
|
+
const zoomLimit = 8;
|
|
26
|
+
if (zoom < zoomLimit) {
|
|
27
|
+
const each = zoomLimit + 1 - zoom;
|
|
28
|
+
let count = 0;
|
|
29
|
+
valuesToDisplay = valuesToDisplay.filter(v => {
|
|
30
|
+
if (++count >= each) {
|
|
31
|
+
count = 0;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return valuesToDisplay;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.CartesianDrawerOptimization = CartesianDrawerOptimization;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FydGVzaWFuRHJhd2VyT3B0aW1pemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyYXdlcnMvQ2FydGVzaWFuRHJhd2VyT3B0aW1pemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsMkJBQTJCO0lBQ3BDLFlBQW1CLElBQVksRUFDWixTQUFpQixFQUNqQixNQUFlLEVBQ2YsWUFBcUI7UUFIckIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFTO0lBQ3hDLENBQUM7SUFHRCxNQUFNLENBQUMsUUFBUTtRQUNYLE9BQU87WUFDSCxJQUFJLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUMvRCxJQUFJLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUMzRCxJQUFJLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM1RCxJQUFJLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztTQUM5RCxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZLEVBQ1osU0FBOEIsRUFDOUIsb0JBQThEO1FBRTFFLElBQUksZUFBZSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksb0JBQW9CLEVBQUU7WUFDdEIsZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUNsRTtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxJQUFJLEdBQUcsU0FBUyxFQUFFO2dCQUNsQixNQUFNLElBQUksR0FBRyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN6QyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRTt3QkFDakIsS0FBSyxHQUFHLENBQUMsQ0FBQzt3QkFDVixPQUFPLElBQUksQ0FBQztxQkFDZjtvQkFDRCxPQUFPLEtBQUssQ0FBQztnQkFDakIsQ0FBQyxDQUFDLENBQUM7YUFDTjtTQUNKO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBekNELGtFQXlDQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CartesianMapValue } from '../tools/CartesianMapValue';
|
|
2
|
+
import { Point } from 'leaflet';
|
|
3
|
+
import { CartesianDrawerOptimization } from './CartesianDrawerOptimization';
|
|
4
|
+
import { GridValue } from './GridValue';
|
|
5
|
+
export declare class CartesianGridValue extends GridValue {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
constructor(color: number, transparency: number, x: number, y: number, width: number, height: number, id?: string);
|
|
11
|
+
static Create(src: CartesianMapValue, srcPoints: {
|
|
12
|
+
p1: Point;
|
|
13
|
+
p2: Point;
|
|
14
|
+
}, center: Point, ratio: number, optimization: CartesianDrawerOptimization): CartesianGridValue;
|
|
15
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CartesianGridValue = void 0;
|
|
4
|
+
const GridValue_1 = require("./GridValue");
|
|
5
|
+
const MapTools_1 = require("../tools/MapTools");
|
|
6
|
+
class CartesianGridValue extends GridValue_1.GridValue {
|
|
7
|
+
constructor(color, transparency, x, y, width, height, id) {
|
|
8
|
+
super(color, transparency, id);
|
|
9
|
+
this.x = x;
|
|
10
|
+
this.y = y;
|
|
11
|
+
this.width = width;
|
|
12
|
+
this.height = height;
|
|
13
|
+
}
|
|
14
|
+
static Create(src, srcPoints, center, ratio, optimization) {
|
|
15
|
+
let { transparency, value } = GridValue_1.GridValue.translateColor(src.value);
|
|
16
|
+
if ((optimization === null || optimization === void 0 ? void 0 : optimization.bypass) && 0.2 <= src.value) {
|
|
17
|
+
value = '#000000';
|
|
18
|
+
transparency = 0.6;
|
|
19
|
+
}
|
|
20
|
+
const x = srcPoints.p1.x, y = srcPoints.p1.y, width = srcPoints.p2.x - srcPoints.p1.x, height = srcPoints.p2.y - srcPoints.p1.y;
|
|
21
|
+
return new CartesianGridValue(MapTools_1.MapTools.hexStringToNumber(value), transparency, x, y, width, height, '' + Math.round(src.value * 100) / 100);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.CartesianGridValue = CartesianGridValue;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FydGVzaWFuR3JpZFZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyYXdlcnMvQ2FydGVzaWFuR3JpZFZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDJDQUFzQztBQUN0QyxnREFBMkM7QUFFM0MsTUFBYSxrQkFBbUIsU0FBUSxxQkFBUztJQUU3QyxZQUNJLEtBQWEsRUFDYixZQUFvQixFQUNiLENBQVMsRUFDVCxDQUFTLEVBQ1QsS0FBYSxFQUNiLE1BQWMsRUFDckIsRUFBVztRQUNYLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBTHhCLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ1QsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFdBQU0sR0FBTixNQUFNLENBQVE7SUFHekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBc0IsRUFDdEIsU0FBbUMsRUFDbkMsTUFBYSxFQUNiLEtBQWEsRUFDYixZQUF5QztRQUVuRCxJQUFJLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBQyxHQUFHLHFCQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE1BQU0sS0FBSSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtZQUMxQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDdEI7UUFFRCxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDcEIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNsQixLQUFLLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZDLE1BQU0sR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU3QyxPQUFPLElBQUksa0JBQWtCLENBQ3pCLG1CQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQ2pDLFlBQVksRUFDWixDQUFDLEVBQ0QsQ0FBQyxFQUNELEtBQUssRUFDTCxNQUFNLEVBQ04sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQ3pDLENBQUM7SUFDTixDQUFDO0NBRUo7QUExQ0QsZ0RBMENDIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class GridValue {
|
|
2
|
+
private color;
|
|
3
|
+
private transparency;
|
|
4
|
+
id?: string;
|
|
5
|
+
constructor(color: number, transparency: number, id?: string);
|
|
6
|
+
protected static translateColor(srcValue: any): {
|
|
7
|
+
value: string;
|
|
8
|
+
transparency: number;
|
|
9
|
+
};
|
|
10
|
+
getColor(forcedColor?: number): number;
|
|
11
|
+
getTransparency(forcedOpacity?: number): number;
|
|
12
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GridValue = void 0;
|
|
4
|
+
class GridValue {
|
|
5
|
+
constructor(color, transparency, id) {
|
|
6
|
+
this.color = color;
|
|
7
|
+
this.transparency = transparency;
|
|
8
|
+
this.id = id;
|
|
9
|
+
}
|
|
10
|
+
static translateColor(srcValue) {
|
|
11
|
+
let value = '#000000';
|
|
12
|
+
let transparency = 1; // 1 => invisible
|
|
13
|
+
if (0 < srcValue && srcValue < 0.4) {
|
|
14
|
+
value = '#000e98';
|
|
15
|
+
transparency = 0.9;
|
|
16
|
+
}
|
|
17
|
+
else if (srcValue < 1) {
|
|
18
|
+
value = '#0013C0';
|
|
19
|
+
transparency = 0.7;
|
|
20
|
+
}
|
|
21
|
+
else if (srcValue < 3) {
|
|
22
|
+
value = '#00CEF9';
|
|
23
|
+
transparency = 0.65;
|
|
24
|
+
}
|
|
25
|
+
else if (srcValue < 10) {
|
|
26
|
+
value = '#009A0F';
|
|
27
|
+
transparency = 0.6;
|
|
28
|
+
}
|
|
29
|
+
else if (srcValue < 20) {
|
|
30
|
+
value = '#6DED00';
|
|
31
|
+
transparency = 0.55;
|
|
32
|
+
}
|
|
33
|
+
else if (srcValue < 30) {
|
|
34
|
+
value = '#FFF300';
|
|
35
|
+
transparency = 0.50;
|
|
36
|
+
}
|
|
37
|
+
else if (srcValue < 50) {
|
|
38
|
+
value = '#aa72f3';
|
|
39
|
+
transparency = 0.45;
|
|
40
|
+
}
|
|
41
|
+
else if (srcValue < 100) {
|
|
42
|
+
value = '#f67bec';
|
|
43
|
+
transparency = 0.4;
|
|
44
|
+
}
|
|
45
|
+
else if (srcValue < 150) {
|
|
46
|
+
value = '#ff23cd';
|
|
47
|
+
transparency = 0.3;
|
|
48
|
+
}
|
|
49
|
+
else if (srcValue < 200) {
|
|
50
|
+
value = '#ff0707';
|
|
51
|
+
transparency = 0.3;
|
|
52
|
+
}
|
|
53
|
+
else if (srcValue < 250) {
|
|
54
|
+
value = '#c2042f';
|
|
55
|
+
transparency = 0.3;
|
|
56
|
+
}
|
|
57
|
+
else if (srcValue < 300) {
|
|
58
|
+
value = '#7e0321';
|
|
59
|
+
transparency = 0.3;
|
|
60
|
+
}
|
|
61
|
+
else if (300 <= srcValue) {
|
|
62
|
+
value = '#000000';
|
|
63
|
+
transparency = 0.3;
|
|
64
|
+
}
|
|
65
|
+
return { value, transparency };
|
|
66
|
+
}
|
|
67
|
+
getColor(forcedColor) {
|
|
68
|
+
return forcedColor ? forcedColor : this.color;
|
|
69
|
+
}
|
|
70
|
+
getTransparency(forcedOpacity) {
|
|
71
|
+
return forcedOpacity ? forcedOpacity : this.transparency;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.GridValue = GridValue;
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JpZFZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyYXdlcnMvR3JpZFZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsU0FBUztJQUVsQixZQUNZLEtBQWEsRUFDYixZQUFvQixFQUNyQixFQUFXO1FBRlYsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3JCLE9BQUUsR0FBRixFQUFFLENBQVM7SUFDdEIsQ0FBQztJQUVTLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUTtRQUVwQyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdEIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBRXZDLElBQUksQ0FBQyxHQUFHLFFBQVEsSUFBSSxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2hDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDbEIsWUFBWSxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUFNLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNyQixLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDdEI7YUFBTSxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDckIsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUNsQixZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDbEIsWUFBWSxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUFNLElBQUksUUFBUSxHQUFHLEVBQUUsRUFBRTtZQUN0QixLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDdkI7YUFBTSxJQUFJLFFBQVEsR0FBRyxFQUFFLEVBQUU7WUFDdEIsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUNsQixZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDbEIsWUFBWSxHQUFHLElBQUksQ0FBQztTQUN2QjthQUFNLElBQUksUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUN2QixLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDdEI7YUFBTSxJQUFJLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDdkIsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUNsQixZQUFZLEdBQUcsR0FBRyxDQUFDO1NBQ3RCO2FBQU0sSUFBSSxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDbEIsWUFBWSxHQUFHLEdBQUcsQ0FBQztTQUN0QjthQUFNLElBQUksUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUN2QixLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2xCLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDdEI7YUFBTSxJQUFJLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDdkIsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUNsQixZQUFZLEdBQUcsR0FBRyxDQUFDO1NBQ3RCO2FBQU0sSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFO1lBQ3hCLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDbEIsWUFBWSxHQUFHLEdBQUcsQ0FBQztTQUN0QjtRQUVELE9BQU8sRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxXQUFvQjtRQUNoQyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlLENBQUMsYUFBc0I7UUFDekMsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3RCxDQUFDO0NBRUo7QUFqRUQsOEJBaUVDIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LatLng, Point } from 'leaflet';
|
|
2
|
+
import { PolarGridValue } from './PolarGridValue';
|
|
3
|
+
import { PolarMapValue } from '../tools/PolarMapValue';
|
|
4
|
+
import { PolarDrawerOptimization } from './PolarDrawerOptimization';
|
|
5
|
+
export declare class PolarDrawer {
|
|
6
|
+
private polarMap2Point;
|
|
7
|
+
private polarMap2Display;
|
|
8
|
+
private polarMapZoom;
|
|
9
|
+
private type;
|
|
10
|
+
private geoValues;
|
|
11
|
+
private version;
|
|
12
|
+
private optimizations;
|
|
13
|
+
private possibleDrawing;
|
|
14
|
+
private distanceRatio;
|
|
15
|
+
private centerPoint;
|
|
16
|
+
constructor(polarMap2Point: (pv: PolarMapValue) => Point, polarMap2Display: (pv: PolarMapValue) => boolean, polarMapZoom: () => number, type: string);
|
|
17
|
+
getVersion(): string;
|
|
18
|
+
setConfiguration(theme: number, range: number, optimizations: PolarDrawerOptimization[]): void;
|
|
19
|
+
getOptimization(): PolarDrawerOptimization;
|
|
20
|
+
updateValues(geoValues: PolarMapValue[], version: string): void;
|
|
21
|
+
hasChanged(center: LatLng, centerPoint: Point): boolean;
|
|
22
|
+
renderPolarMapValues(center: LatLng, centerPoint: Point, drawPolarSharp: (polar1: PolarGridValue, polar2?: PolarGridValue) => boolean): number;
|
|
23
|
+
_getNextOffset(index: any, edgeCount: any): number;
|
|
24
|
+
protected getPossibleDrawing(): number;
|
|
25
|
+
private getDistanceRatio;
|
|
26
|
+
private getAzimuthStepInDegrees;
|
|
27
|
+
private getEdgeCount;
|
|
28
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PolarDrawer = void 0;
|
|
4
|
+
const leaflet_1 = require("leaflet");
|
|
5
|
+
const PolarGridValue_1 = require("./PolarGridValue");
|
|
6
|
+
const PolarMapValue_1 = require("../tools/PolarMapValue");
|
|
7
|
+
const PolarDrawerOptimization_1 = require("./PolarDrawerOptimization");
|
|
8
|
+
const MapTools_1 = require("../tools/MapTools");
|
|
9
|
+
class PolarDrawer {
|
|
10
|
+
constructor(polarMap2Point, polarMap2Display, polarMapZoom, type) {
|
|
11
|
+
this.polarMap2Point = polarMap2Point;
|
|
12
|
+
this.polarMap2Display = polarMap2Display;
|
|
13
|
+
this.polarMapZoom = polarMapZoom;
|
|
14
|
+
this.type = type;
|
|
15
|
+
this.geoValues = [];
|
|
16
|
+
this.possibleDrawing = 0;
|
|
17
|
+
this.distanceRatio = 0;
|
|
18
|
+
this.centerPoint = new leaflet_1.Point(0, 0);
|
|
19
|
+
this.optimizations = PolarDrawerOptimization_1.PolarDrawerOptimization.Defaults();
|
|
20
|
+
}
|
|
21
|
+
getVersion() {
|
|
22
|
+
return this.version;
|
|
23
|
+
}
|
|
24
|
+
setConfiguration(theme, range, optimizations) {
|
|
25
|
+
this.optimizations = optimizations;
|
|
26
|
+
}
|
|
27
|
+
getOptimization() {
|
|
28
|
+
const optimizations = this.optimizations.filter((o) => {
|
|
29
|
+
return this.type.toLowerCase().indexOf(o.type.toLowerCase()) > 0;
|
|
30
|
+
});
|
|
31
|
+
if (optimizations.length === 1) {
|
|
32
|
+
return optimizations[0];
|
|
33
|
+
}
|
|
34
|
+
console.warn('no optimization found for polar drawer - please consider to use one');
|
|
35
|
+
return PolarDrawerOptimization_1.PolarDrawerOptimization.Defaults()[0];
|
|
36
|
+
}
|
|
37
|
+
updateValues(geoValues, version) {
|
|
38
|
+
console.log('updateValues', version);
|
|
39
|
+
this.geoValues = geoValues;
|
|
40
|
+
this.version = version;
|
|
41
|
+
}
|
|
42
|
+
hasChanged(center, centerPoint) {
|
|
43
|
+
if (!centerPoint.equals(this.centerPoint)) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (this.distanceRatio !== this.getDistanceRatio(centerPoint)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return this.possibleDrawing !== this.getPossibleDrawing();
|
|
50
|
+
}
|
|
51
|
+
renderPolarMapValues(center, centerPoint, drawPolarSharp) {
|
|
52
|
+
let done = 0;
|
|
53
|
+
const edgeCount = this.getEdgeCount();
|
|
54
|
+
const distanceRatio = this.getDistanceRatio(centerPoint);
|
|
55
|
+
const azimuthStepInDegrees = this.getAzimuthStepInDegrees();
|
|
56
|
+
const optimizationValues = {
|
|
57
|
+
x1: null,
|
|
58
|
+
x2: null
|
|
59
|
+
};
|
|
60
|
+
if (distanceRatio <= 0) {
|
|
61
|
+
console.warn('distanceRatio is 0 - no sense ? ', center, centerPoint);
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
const optimization = this.getOptimization();
|
|
65
|
+
this.possibleDrawing = this.getPossibleDrawing();
|
|
66
|
+
this.distanceRatio = distanceRatio;
|
|
67
|
+
this.centerPoint = centerPoint;
|
|
68
|
+
const filteredValues = optimization.filteringValues(this.polarMapZoom(), this.geoValues, this.polarMap2Display);
|
|
69
|
+
for (let [i, polarValue] of filteredValues.entries()) {
|
|
70
|
+
if (done > optimization.hardLimit) {
|
|
71
|
+
console.log('hard limit reached ', optimization.hardLimit);
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
polarValue = PolarMapValue_1.PolarMapValue.Duplicate(polarValue);
|
|
75
|
+
polarValue.setCenter({ latitude: center.lat, longitude: center.lng });
|
|
76
|
+
// console.log('rendered polarValue : ', polarValue);
|
|
77
|
+
if (optimization.groupAzimuths()) {
|
|
78
|
+
const drawValue = (x1, pv2, forceDraw) => {
|
|
79
|
+
if (!x1 || !pv2) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const x2 = PolarGridValue_1.PolarGridValue.Create(pv2, distanceRatio, optimization);
|
|
83
|
+
x2.polarAzimuthInDegrees = x1.polarAzimuthInDegrees + azimuthStepInDegrees;
|
|
84
|
+
let drawDone = false;
|
|
85
|
+
if (!forceDraw && x2.getTransparency() === x1.getTransparency()) {
|
|
86
|
+
// same value => optimize drawing
|
|
87
|
+
optimizationValues.x2 = x2;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
if (x1.getTransparency() < 1) {
|
|
91
|
+
drawDone = drawPolarSharp(x1, x2);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
drawDone = true;
|
|
95
|
+
}
|
|
96
|
+
optimizationValues.x2 = null;
|
|
97
|
+
if (drawDone) {
|
|
98
|
+
done++;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return drawDone;
|
|
102
|
+
};
|
|
103
|
+
if (!this.polarMap2Display(polarValue)) {
|
|
104
|
+
drawValue(optimizationValues.x1, polarValue, true);
|
|
105
|
+
optimizationValues.x1 = null;
|
|
106
|
+
}
|
|
107
|
+
else if (((i % edgeCount) === (edgeCount - 1))) {
|
|
108
|
+
drawValue(optimizationValues.x1, polarValue, true);
|
|
109
|
+
optimizationValues.x1 = null;
|
|
110
|
+
i = this._getNextOffset(i, edgeCount) - 1;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const drawDone = drawValue(optimizationValues.x1, polarValue);
|
|
114
|
+
if (drawDone || !optimizationValues.x1) {
|
|
115
|
+
optimizationValues.x1 = PolarGridValue_1.PolarGridValue.Create(polarValue, distanceRatio, optimization);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const x = PolarGridValue_1.PolarGridValue.Create(polarValue, distanceRatio, optimization);
|
|
121
|
+
done += drawPolarSharp(x) ? 1 : 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
console.log('Polar done vs possible:', done, this.possibleDrawing);
|
|
125
|
+
return done;
|
|
126
|
+
}
|
|
127
|
+
_getNextOffset(index, edgeCount) {
|
|
128
|
+
const preciseId = (index + 1) / edgeCount;
|
|
129
|
+
const edgeId = Math.floor(preciseId);
|
|
130
|
+
let newIndex = (edgeId + 1) * edgeCount;
|
|
131
|
+
if (preciseId === edgeId) {
|
|
132
|
+
newIndex = edgeId * edgeCount;
|
|
133
|
+
}
|
|
134
|
+
return newIndex;
|
|
135
|
+
}
|
|
136
|
+
getPossibleDrawing() {
|
|
137
|
+
let count = 0;
|
|
138
|
+
const nonNullValues = this.geoValues.filter(v => v.value);
|
|
139
|
+
for (const mapValue of nonNullValues) {
|
|
140
|
+
if (this.polarMap2Display(mapValue)) {
|
|
141
|
+
count++;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return count;
|
|
145
|
+
}
|
|
146
|
+
getDistanceRatio(centerPoint) {
|
|
147
|
+
if (this.geoValues.length < 1) {
|
|
148
|
+
return 0;
|
|
149
|
+
}
|
|
150
|
+
const distanceRatio = MapTools_1.MapTools.getPolarDistanceRatio(centerPoint, this.geoValues[this.geoValues.length - 1], this.polarMap2Point);
|
|
151
|
+
// console.log('distanceRatio: ', distanceRatio);
|
|
152
|
+
return distanceRatio;
|
|
153
|
+
}
|
|
154
|
+
getAzimuthStepInDegrees() {
|
|
155
|
+
if (this.geoValues.length <= 1) {
|
|
156
|
+
return 360;
|
|
157
|
+
}
|
|
158
|
+
const firstGeoValue = this.geoValues[0];
|
|
159
|
+
let azimuthDiff = 360;
|
|
160
|
+
const sameAzimuth = firstGeoValue.polarAzimuthInDegrees;
|
|
161
|
+
for (const polarValue of this.geoValues) {
|
|
162
|
+
if (sameAzimuth !== polarValue.polarAzimuthInDegrees) {
|
|
163
|
+
azimuthDiff = polarValue.polarAzimuthInDegrees - sameAzimuth;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// console.log('azimuthStepInDegrees: ', azimuthDiff);
|
|
168
|
+
return azimuthDiff;
|
|
169
|
+
}
|
|
170
|
+
getEdgeCount() {
|
|
171
|
+
if (this.geoValues.length <= 1) {
|
|
172
|
+
return 1;
|
|
173
|
+
}
|
|
174
|
+
let sameEdgeValuesCount = 0;
|
|
175
|
+
const firstGeoValue = this.geoValues[0];
|
|
176
|
+
for (const polarValue of this.geoValues) {
|
|
177
|
+
if (firstGeoValue.polarAzimuthInDegrees !== polarValue.polarAzimuthInDegrees) {
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
sameEdgeValuesCount++;
|
|
181
|
+
}
|
|
182
|
+
// console.log('sameEdgeValuesCount: ', sameEdgeValuesCount);
|
|
183
|
+
return sameEdgeValuesCount;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.PolarDrawer = PolarDrawer;
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9sYXJEcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZHJhd2Vycy9Qb2xhckRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBc0M7QUFDdEMscURBQWdEO0FBQ2hELDBEQUFxRDtBQUNyRCx1RUFBa0U7QUFDbEUsZ0RBQTJDO0FBRTNDLE1BQWEsV0FBVztJQVNwQixZQUFvQixjQUE0QyxFQUM1QyxnQkFBZ0QsRUFDaEQsWUFBMEIsRUFDMUIsSUFBWTtRQUhaLG1CQUFjLEdBQWQsY0FBYyxDQUE4QjtRQUM1QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdDO1FBQ2hELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxpREFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRU0sVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBYSxFQUNiLEtBQWEsRUFDYixhQUF3QztRQUM1RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sZUFBZTtRQUNsQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElB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
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PolarMapValue } from '../tools/PolarMapValue';
|
|
2
|
+
export declare class PolarDrawerOptimization {
|
|
3
|
+
type: string;
|
|
4
|
+
hardLimit: number;
|
|
5
|
+
min: number;
|
|
6
|
+
max: number;
|
|
7
|
+
step: number;
|
|
8
|
+
bypass: boolean;
|
|
9
|
+
considerZoom: boolean;
|
|
10
|
+
constructor(type: string, hardLimit: number, min: number, max: number, step: number, bypass: boolean, considerZoom: boolean);
|
|
11
|
+
static Defaults(): PolarDrawerOptimization[];
|
|
12
|
+
filteringValues(zoom: number, geoValues: PolarMapValue[], polarMap2Display: (mapValue: PolarMapValue) => boolean): PolarMapValue[];
|
|
13
|
+
groupAzimuths(): boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PolarDrawerOptimization = void 0;
|
|
4
|
+
class PolarDrawerOptimization {
|
|
5
|
+
constructor(type, hardLimit, min, max, step, bypass, considerZoom) {
|
|
6
|
+
this.type = type;
|
|
7
|
+
this.hardLimit = hardLimit;
|
|
8
|
+
this.min = min;
|
|
9
|
+
this.max = max;
|
|
10
|
+
this.step = step;
|
|
11
|
+
this.bypass = bypass;
|
|
12
|
+
this.considerZoom = considerZoom;
|
|
13
|
+
}
|
|
14
|
+
static Defaults() {
|
|
15
|
+
return [
|
|
16
|
+
new PolarDrawerOptimization('default', 40001, 0, 100, 10, false, false),
|
|
17
|
+
new PolarDrawerOptimization('radar', 40002, 0.2, 100, 5, true, true),
|
|
18
|
+
new PolarDrawerOptimization('rain', 40003, 0, 76, 10, false, true),
|
|
19
|
+
new PolarDrawerOptimization('zoom', 40003, 0, 76, 10, false, true),
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
filteringValues(zoom, geoValues, polarMap2Display) {
|
|
23
|
+
// non null values
|
|
24
|
+
let valuesToDisplay = geoValues.filter(v => v.value > 0);
|
|
25
|
+
// into the map
|
|
26
|
+
if (polarMap2Display) {
|
|
27
|
+
valuesToDisplay = valuesToDisplay.filter(polarMap2Display);
|
|
28
|
+
}
|
|
29
|
+
// reduced in case of zoom
|
|
30
|
+
if (this.considerZoom) {
|
|
31
|
+
const zoomLimit = 10;
|
|
32
|
+
if (zoom < zoomLimit) {
|
|
33
|
+
const each = zoomLimit + 1 - zoom;
|
|
34
|
+
let count = 0;
|
|
35
|
+
valuesToDisplay = valuesToDisplay.filter(v => {
|
|
36
|
+
if (++count >= each) {
|
|
37
|
+
count = 0;
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return valuesToDisplay;
|
|
45
|
+
}
|
|
46
|
+
groupAzimuths() {
|
|
47
|
+
if (this.type === '???') {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.PolarDrawerOptimization = PolarDrawerOptimization;
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9sYXJEcmF3ZXJPcHRpbWl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZHJhd2Vycy9Qb2xhckRyYXdlck9wdGltaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLHVCQUF1QjtJQUNoQyxZQUFtQixJQUFZLEVBQ1osU0FBaUIsRUFDakIsR0FBVyxFQUNYLEdBQVcsRUFDWCxJQUFZLEVBQ1osTUFBZSxFQUNmLFlBQXFCO1FBTnJCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixpQkFBWSxHQUFaLFlBQVksQ0FBUztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDWCxPQUFPO1lBQ0gsSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDdkUsSUFBSSx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEUsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDbEUsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7U0FDckUsQ0FBQztJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWSxFQUNaLFNBQTBCLEVBQzFCLGdCQUFzRDtRQUVsRSxrQkFBa0I7UUFDbEIsSUFBSSxlQUFlLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekQsZUFBZTtRQUNmLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM5RDtRQUVELDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksSUFBSSxHQUFHLFNBQVMsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDZCxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDekMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUU7d0JBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUM7d0JBQ1YsT0FBTyxJQUFJLENBQUM7cUJBQ2Y7b0JBQ0QsT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDSjtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBdkRELDBEQXVEQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PolarMapValue } from '../tools/PolarMapValue';
|
|
2
|
+
import { PolarDrawerOptimization } from './PolarDrawerOptimization';
|
|
3
|
+
import { Point } from 'leaflet';
|
|
4
|
+
import { GridValue } from './GridValue';
|
|
5
|
+
export declare class PolarGridValue extends GridValue {
|
|
6
|
+
polarAzimuthInDegrees: number;
|
|
7
|
+
private polarDistanceRelative;
|
|
8
|
+
constructor(color: number, transparency: number, polarAzimuthInDegrees: number, polarDistanceRelative: number, id?: string);
|
|
9
|
+
static Create(src: PolarMapValue, distanceRatio: number, optimization: PolarDrawerOptimization): PolarGridValue;
|
|
10
|
+
getPolarDistanceRelative(): number;
|
|
11
|
+
setPolarDistanceRelative(d: number): void;
|
|
12
|
+
getPositionFrom(centerPoint: Point): Point;
|
|
13
|
+
}
|