bruce-models 3.1.3 → 3.1.5
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/dist/bruce-models.es5.js +2 -547
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +1 -534
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/bruce-models.js +1 -5
- package/dist/lib/bruce-models.js.map +1 -1
- package/dist/types/bruce-models.d.ts +1 -5
- package/dist/types/custom-form/custom-form-content.d.ts +1 -1
- package/package.json +1 -1
- package/dist/lib/entity/getters/batched-data-getter.js +0 -85
- package/dist/lib/entity/getters/batched-data-getter.js.map +0 -1
- package/dist/lib/entity/getters/entity-filter-getter.js +0 -321
- package/dist/lib/entity/getters/entity-filter-getter.js.map +0 -1
- package/dist/lib/entity/getters/entity-globe.js +0 -192
- package/dist/lib/entity/getters/entity-globe.js.map +0 -1
- package/dist/lib/entity/getters/view-monitor.js +0 -3
- package/dist/lib/entity/getters/view-monitor.js.map +0 -1
- package/dist/types/entity/getters/batched-data-getter.d.ts +0 -26
- package/dist/types/entity/getters/entity-filter-getter.d.ts +0 -61
- package/dist/types/entity/getters/entity-globe.d.ts +0 -21
- package/dist/types/entity/getters/view-monitor.d.ts +0 -13
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityGlobe = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* This is a helper for making entity requests based on a grid area.
|
|
6
|
-
* It will return grid cells based on given view-area then will remember when stuff-
|
|
7
|
-
* was fully-fetched for those cells to avoid making duplicate requests.
|
|
8
|
-
*/
|
|
9
|
-
var EntityGlobe;
|
|
10
|
-
(function (EntityGlobe) {
|
|
11
|
-
class Cell {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.Fetched = false;
|
|
14
|
-
this.IsFetched = null;
|
|
15
|
-
this.FetchPageIndex = 0;
|
|
16
|
-
this.Boundaries = null;
|
|
17
|
-
this.Fetching = false;
|
|
18
|
-
}
|
|
19
|
-
GetBounds() {
|
|
20
|
-
// Entity data works in -180 to 180 range.
|
|
21
|
-
function prepareRangeForBounds(range) {
|
|
22
|
-
if (range > 180) {
|
|
23
|
-
return range - 360;
|
|
24
|
-
}
|
|
25
|
-
return range;
|
|
26
|
-
}
|
|
27
|
-
// Add minor decimal as API crashes when giving it whole numbers.
|
|
28
|
-
const maxLon = prepareRangeForBounds(this.Boundaries.maxLongitude) + 0.00001;
|
|
29
|
-
const minLon = prepareRangeForBounds(this.Boundaries.minLongitude) - 0.00001;
|
|
30
|
-
const maxLat = prepareRangeForBounds(this.Boundaries.maxLatitude) + 0.00001;
|
|
31
|
-
const minLat = prepareRangeForBounds(this.Boundaries.minLatitude) - 0.00001;
|
|
32
|
-
return {
|
|
33
|
-
east: maxLon,
|
|
34
|
-
north: maxLat,
|
|
35
|
-
south: minLat,
|
|
36
|
-
west: minLon
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
EntityGlobe.Cell = Cell;
|
|
41
|
-
class Grid {
|
|
42
|
-
constructor() {
|
|
43
|
-
this.cells = {};
|
|
44
|
-
}
|
|
45
|
-
GetCellsForView(cameraPos, viewRect) {
|
|
46
|
-
const cells = [];
|
|
47
|
-
const minLat = viewRect.south;
|
|
48
|
-
const minLon = viewRect.west;
|
|
49
|
-
const maxLat = viewRect.north;
|
|
50
|
-
const maxLon = viewRect.east;
|
|
51
|
-
const MAX_CELLS = 150;
|
|
52
|
-
const cellDegreeSize = getCellSizeFromHeight(viewRect.alt);
|
|
53
|
-
let curMinLon = floorValueToCellSize(cellDegreeSize, minLon);
|
|
54
|
-
let curMinLat = floorValueToCellSize(cellDegreeSize, minLat);
|
|
55
|
-
// For larger views we add additional padding because our view-area culling is too strong.
|
|
56
|
-
if (cellDegreeSize >= 2) {
|
|
57
|
-
curMinLon -= cellDegreeSize;
|
|
58
|
-
curMinLat -= cellDegreeSize;
|
|
59
|
-
}
|
|
60
|
-
let centerX = cameraPos === null || cameraPos === void 0 ? void 0 : cameraPos.longitude;
|
|
61
|
-
let centerY = cameraPos === null || cameraPos === void 0 ? void 0 : cameraPos.latitude;
|
|
62
|
-
if (isNaN(centerX) || isNaN(centerY)) {
|
|
63
|
-
centerX = (minLon + maxLon) / 2;
|
|
64
|
-
centerY = (minLat + maxLat) / 2;
|
|
65
|
-
}
|
|
66
|
-
let width = Math.ceil((maxLon - curMinLon) / cellDegreeSize);
|
|
67
|
-
let height = Math.ceil((maxLat - curMinLat) / cellDegreeSize);
|
|
68
|
-
// For larger views we add additional padding because our view-area culling is too strong.
|
|
69
|
-
if (cellDegreeSize >= 2) {
|
|
70
|
-
width += 1;
|
|
71
|
-
height += 1;
|
|
72
|
-
}
|
|
73
|
-
const cellDistances = [];
|
|
74
|
-
for (let x = 0; x < width; x++) {
|
|
75
|
-
for (let y = 0; y < height; y++) {
|
|
76
|
-
const lon = x * cellDegreeSize + curMinLon;
|
|
77
|
-
const lat = y * cellDegreeSize + curMinLat;
|
|
78
|
-
const cellCenterX = lon + cellDegreeSize / 2;
|
|
79
|
-
const cellCenterY = lat + cellDegreeSize / 2;
|
|
80
|
-
const dist = Math.sqrt(Math.pow(cellCenterX - centerX, 2) + Math.pow(cellCenterY - centerY, 2));
|
|
81
|
-
cellDistances.push({ x, y, dist });
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
cellDistances.sort((a, b) => a.dist - b.dist);
|
|
85
|
-
for (const { x, y } of cellDistances) {
|
|
86
|
-
const lon = x * cellDegreeSize + curMinLon;
|
|
87
|
-
const lat = y * cellDegreeSize + curMinLat;
|
|
88
|
-
const [id, cell] = getOrCreateCell(this.cells, cellDegreeSize, lon, lon + cellDegreeSize, lat, lat + cellDegreeSize);
|
|
89
|
-
cells.push(cell);
|
|
90
|
-
if (cells.length >= MAX_CELLS) {
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return cells;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
EntityGlobe.Grid = Grid;
|
|
98
|
-
})(EntityGlobe = exports.EntityGlobe || (exports.EntityGlobe = {}));
|
|
99
|
-
function intersects(l, r) {
|
|
100
|
-
const { west: w, south: s, north: n, east: e } = l;
|
|
101
|
-
const { west: wr, south: sr, north: nr, east: er } = r;
|
|
102
|
-
return !(e <= wr || w >= er || n <= sr || s >= nr);
|
|
103
|
-
}
|
|
104
|
-
function contains(l, r) {
|
|
105
|
-
const { west: w, south: s, north: n, east: e } = l;
|
|
106
|
-
const { west: wr, south: sr, north: nr, east: er } = r;
|
|
107
|
-
return !(er < e || wr > w || nr > n || sr < s);
|
|
108
|
-
}
|
|
109
|
-
function crop(rect, by) {
|
|
110
|
-
let { west: w, south: s, north: n, east: e } = rect;
|
|
111
|
-
const { west: wc, south: sc, north: nc, east: ec } = by;
|
|
112
|
-
w = Math.max(w, ec);
|
|
113
|
-
e = Math.min(e, wc);
|
|
114
|
-
s = Math.max(s, nc);
|
|
115
|
-
n = Math.min(n, sc);
|
|
116
|
-
return { west: w, south: s, north: n, east: e };
|
|
117
|
-
}
|
|
118
|
-
function intersection(l, r) {
|
|
119
|
-
const { west: w, south: s, north: n, east: e } = l;
|
|
120
|
-
const { west: wr, south: sr, north: nr, east: er } = r;
|
|
121
|
-
const x = Math.min(e, er) - Math.max(w, wr);
|
|
122
|
-
const y = Math.min(n, nr) - Math.max(s, sr);
|
|
123
|
-
return (x > 0 && y > 0) ? x * y : 0;
|
|
124
|
-
}
|
|
125
|
-
function area(rect) {
|
|
126
|
-
let { west: w, south: s, north: n, east: e } = rect;
|
|
127
|
-
return Math.abs((e - w) * (n - s));
|
|
128
|
-
}
|
|
129
|
-
function floorValueToCellSize(size, value) {
|
|
130
|
-
return Math.floor(value / size) * size;
|
|
131
|
-
}
|
|
132
|
-
function getCellSizeFromHeight(height) {
|
|
133
|
-
if (height < 1000) {
|
|
134
|
-
return 0.01;
|
|
135
|
-
}
|
|
136
|
-
if (height < 5000) {
|
|
137
|
-
return 0.025;
|
|
138
|
-
}
|
|
139
|
-
else if (height < 10000) {
|
|
140
|
-
return 0.05;
|
|
141
|
-
}
|
|
142
|
-
else if (height < 30000) {
|
|
143
|
-
return 0.1;
|
|
144
|
-
}
|
|
145
|
-
else if (height < 70000) {
|
|
146
|
-
return 0.2;
|
|
147
|
-
}
|
|
148
|
-
else if (height < 100000) {
|
|
149
|
-
return 0.3;
|
|
150
|
-
}
|
|
151
|
-
else if (height < 150000) {
|
|
152
|
-
return 0.4;
|
|
153
|
-
}
|
|
154
|
-
else if (height < 200000) {
|
|
155
|
-
return 0.5;
|
|
156
|
-
}
|
|
157
|
-
else if (height < 300000) {
|
|
158
|
-
return 0.6;
|
|
159
|
-
}
|
|
160
|
-
else if (height < 500000) {
|
|
161
|
-
return 1;
|
|
162
|
-
}
|
|
163
|
-
else if (height < 1000000) {
|
|
164
|
-
return 1.3;
|
|
165
|
-
}
|
|
166
|
-
else if (height < 1200000) {
|
|
167
|
-
return 1.8;
|
|
168
|
-
}
|
|
169
|
-
return 4;
|
|
170
|
-
}
|
|
171
|
-
function isCellFetched(cell) {
|
|
172
|
-
if (cell.Fetched) {
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
function getOrCreateCell(cells, cellSize, lon, maxLon, lat, maxLat) {
|
|
178
|
-
const id = cellSize + "_" + lon + "_" + maxLon + "_" + lat + "_" + maxLat;
|
|
179
|
-
let cell = cells[id];
|
|
180
|
-
if (!cell) {
|
|
181
|
-
cell = cells[id] = new EntityGlobe.Cell();
|
|
182
|
-
cell.Boundaries = {
|
|
183
|
-
minLatitude: lat,
|
|
184
|
-
maxLatitude: maxLat,
|
|
185
|
-
minLongitude: lon,
|
|
186
|
-
maxLongitude: maxLon
|
|
187
|
-
};
|
|
188
|
-
cell.IsFetched = () => isCellFetched(cell);
|
|
189
|
-
}
|
|
190
|
-
return [id, cell];
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=entity-globe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-globe.js","sourceRoot":"","sources":["../../../../src/entity/getters/entity-globe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view-monitor.js","sourceRoot":"","sources":["../../../../src/entity/getters/view-monitor.ts"],"names":[],"mappings":""}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { BruceEvent } from "../../common/bruce-event";
|
|
2
|
-
import { ViewMonitor } from "./view-monitor";
|
|
3
|
-
/**
|
|
4
|
-
* This is a batched "arbitrary data" getter.
|
|
5
|
-
* You feed it an array of data, then it will emit that data in batches when the view changes.
|
|
6
|
-
*/
|
|
7
|
-
export declare namespace BatchedDataGetter {
|
|
8
|
-
class Getter<T> {
|
|
9
|
-
private viewPort;
|
|
10
|
-
private viewPortRemoval;
|
|
11
|
-
private batchSize;
|
|
12
|
-
private viewRect;
|
|
13
|
-
private viewCenter;
|
|
14
|
-
private getterInterval;
|
|
15
|
-
private data;
|
|
16
|
-
private onUpdate;
|
|
17
|
-
get OnUpdate(): BruceEvent<T[]>;
|
|
18
|
-
constructor(data: T[], viewPort: ViewMonitor.IMonitor, batchSize: number);
|
|
19
|
-
Start(): void;
|
|
20
|
-
Dispose(): void;
|
|
21
|
-
private updateViewport;
|
|
22
|
-
private updateBounds;
|
|
23
|
-
private startGetterLoop;
|
|
24
|
-
private processBatch;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { BruceApi } from "../../api/bruce-api";
|
|
2
|
-
import { BruceEvent } from "../../common/bruce-event";
|
|
3
|
-
import { IDictionary } from "../../common/dictionary";
|
|
4
|
-
import { Entity } from "../entity";
|
|
5
|
-
import { EntityGlobe } from "./entity-globe";
|
|
6
|
-
import { ViewMonitor } from "./view-monitor";
|
|
7
|
-
/**
|
|
8
|
-
* This is a batched entity getter.
|
|
9
|
-
* It will scan for entity records in a view-area and emit them in batches.
|
|
10
|
-
* It will restart scanning if the camera moves.
|
|
11
|
-
*/
|
|
12
|
-
export declare namespace EntityFilterGetter {
|
|
13
|
-
enum EStatus {
|
|
14
|
-
Scanning = "SCANNING",
|
|
15
|
-
Loading = "LOADING"
|
|
16
|
-
}
|
|
17
|
-
interface IStatusUpdate {
|
|
18
|
-
msg: EStatus;
|
|
19
|
-
revoking: boolean;
|
|
20
|
-
}
|
|
21
|
-
class Getter {
|
|
22
|
-
private onUpdate;
|
|
23
|
-
get OnUpdate(): BruceEvent<Entity.IEntity[]>;
|
|
24
|
-
LastStateUpdates: IDictionary<IStatusUpdate>;
|
|
25
|
-
private onStateUpdate;
|
|
26
|
-
get OnStateUpdate(): BruceEvent<IStatusUpdate>;
|
|
27
|
-
private onScanUpdate;
|
|
28
|
-
get OnScanUpdate(): BruceEvent<EntityGlobe.Cell[]>;
|
|
29
|
-
private api;
|
|
30
|
-
private viewPort;
|
|
31
|
-
private viewPortChangeRemoval;
|
|
32
|
-
private cells;
|
|
33
|
-
private registeredItems;
|
|
34
|
-
private getterLoopId;
|
|
35
|
-
private viaCdn;
|
|
36
|
-
private typeId;
|
|
37
|
-
private batchSize;
|
|
38
|
-
private tagIds;
|
|
39
|
-
private minHeight;
|
|
40
|
-
private maxHeight;
|
|
41
|
-
private attrFilter;
|
|
42
|
-
private viewRect;
|
|
43
|
-
private viewCenter;
|
|
44
|
-
constructor(api: BruceApi.Api, viewPort: ViewMonitor.IMonitor, typeId: string, batchSize?: number, attrFilter?: IDictionary<any>, viaCdn?: boolean);
|
|
45
|
-
/**
|
|
46
|
-
* Returns id that represents the combined menu item parameters.
|
|
47
|
-
* If integrity changes while a request is running, the request will not emit a response.
|
|
48
|
-
* @returns
|
|
49
|
-
*/
|
|
50
|
-
private getIntegrityId;
|
|
51
|
-
private viewAreaSub;
|
|
52
|
-
private viewAreaDispose;
|
|
53
|
-
GetMenuItems(): string[];
|
|
54
|
-
IncludeMenuItem(menuItemId: string, layerIds: number[], minHeight: number, maxHeight: number): void;
|
|
55
|
-
ExcludeMenuItem(menuItemId: string): void;
|
|
56
|
-
private updateBounds;
|
|
57
|
-
private updateState;
|
|
58
|
-
private postStatus;
|
|
59
|
-
private startGetterLoop;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Bounds } from "../../common/bounds";
|
|
2
|
-
import { Carto } from "../../common/carto";
|
|
3
|
-
/**
|
|
4
|
-
* This is a helper for making entity requests based on a grid area.
|
|
5
|
-
* It will return grid cells based on given view-area then will remember when stuff-
|
|
6
|
-
* was fully-fetched for those cells to avoid making duplicate requests.
|
|
7
|
-
*/
|
|
8
|
-
export declare namespace EntityGlobe {
|
|
9
|
-
class Cell {
|
|
10
|
-
Fetched: boolean;
|
|
11
|
-
IsFetched: () => boolean;
|
|
12
|
-
FetchPageIndex: number;
|
|
13
|
-
Boundaries: Bounds.IBounds;
|
|
14
|
-
Fetching: boolean;
|
|
15
|
-
GetBounds(): Bounds.IReqBounds;
|
|
16
|
-
}
|
|
17
|
-
class Grid {
|
|
18
|
-
private cells;
|
|
19
|
-
GetCellsForView(cameraPos: Carto.ICarto, viewRect: Bounds.IReqBounds): Cell[];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Bounds, BruceEvent, Carto } from "../../bruce-models";
|
|
2
|
-
export declare namespace ViewMonitor {
|
|
3
|
-
interface IArea {
|
|
4
|
-
bounds: Bounds.IReqBounds;
|
|
5
|
-
target: Carto.ICarto;
|
|
6
|
-
}
|
|
7
|
-
interface IMonitor {
|
|
8
|
-
Updated(): BruceEvent<IArea>;
|
|
9
|
-
GetBounds(): Bounds.IReqBounds;
|
|
10
|
-
GetTarget(): Carto.ICarto;
|
|
11
|
-
DoUpdate(): void;
|
|
12
|
-
}
|
|
13
|
-
}
|