bruce-cesium 0.4.0 → 0.4.2
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-cesium.es5.js +46 -58
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +45 -57
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +30 -30
- package/dist/lib/rendering/entity-render-engine.js +848 -848
- package/dist/lib/rendering/menu-item-manager.js +252 -252
- package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
- package/dist/lib/rendering/render-addons/render-addon.js +2 -2
- package/dist/lib/rendering/render-helper.js +296 -296
- package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +146 -146
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +143 -143
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +234 -234
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +139 -139
- package/dist/lib/rendering/render-managers/render-manager.js +50 -50
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +236 -236
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +320 -320
- package/dist/lib/rendering/tile-render-engine.js +815 -831
- package/dist/lib/rendering/tile-render-engine.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +499 -499
- package/dist/lib/rendering/view-render-engine.js +305 -309
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +402 -394
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/lib/utils/drawing-utils.js +42 -42
- package/dist/lib/utils/entity-utils.js +99 -99
- package/dist/lib/utils/measure-utils.js +34 -34
- package/dist/lib/utils/view-utils.js +72 -72
- package/dist/lib/viewer/cesium-view-monitor.js +231 -231
- package/dist/lib/viewer/viewer-utils.js +85 -85
- package/dist/types/rendering/tile-render-engine.d.ts +2 -4
- package/dist/types/rendering/visuals-register.d.ts +2 -0
- package/package.json +76 -76
|
@@ -1,832 +1,816 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.TileRenderEngine = void 0;
|
|
40
|
-
var bruce_models_1 = require("bruce-models");
|
|
41
|
-
var Cesium = require("cesium");
|
|
42
|
-
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
43
|
-
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
44
|
-
var re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
|
|
45
|
-
/**
|
|
46
|
-
* Prepares a legacy imagery name for comparison.
|
|
47
|
-
* Legacy data did not have ids... we do what we can.
|
|
48
|
-
* @param name
|
|
49
|
-
* @returns
|
|
50
|
-
*/
|
|
51
|
-
function prepLegacyName(name) {
|
|
52
|
-
if (!name) {
|
|
53
|
-
return "";
|
|
54
|
-
}
|
|
55
|
-
name = name.replace(/\s/g, "");
|
|
56
|
-
name = name.replace(re, "");
|
|
57
|
-
name = name.toLowerCase();
|
|
58
|
-
if (name === "cwt") {
|
|
59
|
-
name = "cesiumworldterrain";
|
|
60
|
-
}
|
|
61
|
-
return name;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Constructs an terrain provider for a default terrain type.
|
|
65
|
-
* Warning: This does not add it to the viewer.
|
|
66
|
-
* @param id
|
|
67
|
-
* @returns
|
|
68
|
-
*/
|
|
69
|
-
function renderDefaultTerrTile(id) {
|
|
70
|
-
var provider;
|
|
71
|
-
switch (id) {
|
|
72
|
-
case bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain:
|
|
73
|
-
provider = Cesium.createWorldTerrain({
|
|
74
|
-
requestVertexNormals: true,
|
|
75
|
-
requestWaterMask: false
|
|
76
|
-
});
|
|
77
|
-
break;
|
|
78
|
-
case bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain:
|
|
79
|
-
provider = new Cesium.EllipsoidTerrainProvider();
|
|
80
|
-
break;
|
|
81
|
-
case bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ:
|
|
82
|
-
provider = new Cesium.CesiumTerrainProvider({
|
|
83
|
-
url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
|
|
84
|
-
requestVertexNormals: true,
|
|
85
|
-
});
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
return provider;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Maps a legacy terrain's name to a default terrain id.
|
|
92
|
-
* @param name
|
|
93
|
-
* @returns
|
|
94
|
-
*/
|
|
95
|
-
function legacyTerrIdToDefaultId(name) {
|
|
96
|
-
name = prepLegacyName(name);
|
|
97
|
-
switch (name) {
|
|
98
|
-
case "cesiumworldterrain":
|
|
99
|
-
return bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain;
|
|
100
|
-
case "linz":
|
|
101
|
-
return bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ;
|
|
102
|
-
case "flatterrain":
|
|
103
|
-
return bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Returns if a given legacy terrain's name correspondings to a default source.
|
|
108
|
-
* @param name
|
|
109
|
-
* @returns
|
|
110
|
-
*/
|
|
111
|
-
function isLegacyTerrainDefault(name) {
|
|
112
|
-
name = legacyTerrIdToDefaultId(name);
|
|
113
|
-
return bruce_models_1.ProjectViewTile.DefaultTerrains.find(function (x) { return x.id == name; }) != null;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Returns a best attempt at a unique id from a given legacy terrain source.
|
|
117
|
-
* @param source
|
|
118
|
-
* @returns
|
|
119
|
-
*/
|
|
120
|
-
function createLegacyTerrId(source) {
|
|
121
|
-
if (!source) {
|
|
122
|
-
return "";
|
|
123
|
-
}
|
|
124
|
-
if (isLegacyTerrainDefault(source.Name)) {
|
|
125
|
-
return source.Name;
|
|
126
|
-
}
|
|
127
|
-
if (source.SourceUrl) {
|
|
128
|
-
return source.SourceUrl;
|
|
129
|
-
}
|
|
130
|
-
return "";
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Returns a best attempt at a unique id from a given legacy imagery source.
|
|
134
|
-
* @param source
|
|
135
|
-
* @returns
|
|
136
|
-
*/
|
|
137
|
-
function createLegacyImageryId(source) {
|
|
138
|
-
if (!source) {
|
|
139
|
-
return "";
|
|
140
|
-
}
|
|
141
|
-
if (isLegacyImageryDefault(source.Name)) {
|
|
142
|
-
return source.Name;
|
|
143
|
-
}
|
|
144
|
-
if (source.SourceUrl) {
|
|
145
|
-
return source.SourceUrl;
|
|
146
|
-
}
|
|
147
|
-
return "";
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Turns Cesium collection of enabled imageries into an array.
|
|
151
|
-
* @param viewer
|
|
152
|
-
* @returns
|
|
153
|
-
*/
|
|
154
|
-
function gatherEnabledImageries(viewer) {
|
|
155
|
-
var collection = viewer.imageryLayers;
|
|
156
|
-
var layers = [];
|
|
157
|
-
for (var i = 0; i < collection.length; i++) {
|
|
158
|
-
var layer = collection.get(i);
|
|
159
|
-
layers.push(layer);
|
|
160
|
-
}
|
|
161
|
-
return layers;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Constructs an imagery provider for a default imagery type.
|
|
165
|
-
* Warning: This does not add it to the viewer.
|
|
166
|
-
* @param id
|
|
167
|
-
* @returns
|
|
168
|
-
*/
|
|
169
|
-
function renderDefaultMapTile(id) {
|
|
170
|
-
var provider;
|
|
171
|
-
switch (id) {
|
|
172
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial:
|
|
173
|
-
// TODO: Read account key if available.
|
|
174
|
-
provider = new Cesium.BingMapsImageryProvider({
|
|
175
|
-
url: "https://dev.virtualearth.net",
|
|
176
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL,
|
|
177
|
-
key: DEFAULT_BING_KEY
|
|
178
|
-
});
|
|
179
|
-
break;
|
|
180
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
|
|
181
|
-
// TODO: Read account key if available.
|
|
182
|
-
provider = new Cesium.BingMapsImageryProvider({
|
|
183
|
-
url: "https://dev.virtualearth.net",
|
|
184
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
|
|
185
|
-
key: DEFAULT_BING_KEY
|
|
186
|
-
});
|
|
187
|
-
break;
|
|
188
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads:
|
|
189
|
-
// TODO: Read account key if available.
|
|
190
|
-
provider = new Cesium.BingMapsImageryProvider({
|
|
191
|
-
url: "https://dev.virtualearth.net",
|
|
192
|
-
mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
|
|
193
|
-
key: DEFAULT_BING_KEY
|
|
194
|
-
});
|
|
195
|
-
break;
|
|
196
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite:
|
|
197
|
-
// TODO: Read account key if available.
|
|
198
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
199
|
-
mapId: "mapbox.satellite",
|
|
200
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
201
|
-
});
|
|
202
|
-
break;
|
|
203
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets:
|
|
204
|
-
// TODO: Read account key if available.
|
|
205
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
206
|
-
mapId: "satellite-streets-v11",
|
|
207
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
208
|
-
});
|
|
209
|
-
break;
|
|
210
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
|
|
211
|
-
// TODO: Read account key if available.
|
|
212
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
213
|
-
mapId: "streets-v11",
|
|
214
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
215
|
-
});
|
|
216
|
-
break;
|
|
217
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery:
|
|
218
|
-
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
219
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
220
|
-
enablePickFeatures: false
|
|
221
|
-
});
|
|
222
|
-
break;
|
|
223
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap:
|
|
224
|
-
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
225
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
226
|
-
enablePickFeatures: false
|
|
227
|
-
});
|
|
228
|
-
break;
|
|
229
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic:
|
|
230
|
-
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
231
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
232
|
-
enablePickFeatures: false
|
|
233
|
-
});
|
|
234
|
-
break;
|
|
235
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap:
|
|
236
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
237
|
-
url: "https://a.tile.openstreetmap.org/"
|
|
238
|
-
});
|
|
239
|
-
break;
|
|
240
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor:
|
|
241
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
242
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
243
|
-
});
|
|
244
|
-
break;
|
|
245
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner:
|
|
246
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
247
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
248
|
-
});
|
|
249
|
-
break;
|
|
250
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.Grid:
|
|
251
|
-
provider = new Cesium.GridImageryProvider({
|
|
252
|
-
tilingScheme: new Cesium.GeographicTilingScheme(),
|
|
253
|
-
cells: 0,
|
|
254
|
-
color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
255
|
-
glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
256
|
-
glowWidth: 4,
|
|
257
|
-
backgroundColor: Cesium.Color.TRANSPARENT,
|
|
258
|
-
tileWidth: 256,
|
|
259
|
-
tileHeight: 256,
|
|
260
|
-
canvasSize: 256
|
|
261
|
-
});
|
|
262
|
-
break;
|
|
263
|
-
}
|
|
264
|
-
return provider;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Maps a legacy imagery's name to a default imagery id.
|
|
268
|
-
* @param name
|
|
269
|
-
* @returns
|
|
270
|
-
*/
|
|
271
|
-
function legacyMapIdToDefaultId(name) {
|
|
272
|
-
name = prepLegacyName(name);
|
|
273
|
-
switch (name) {
|
|
274
|
-
case "bingmapsaerial":
|
|
275
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial;
|
|
276
|
-
case "bingmapsaerialwithlabels":
|
|
277
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels;
|
|
278
|
-
case "bingmapsroads":
|
|
279
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads;
|
|
280
|
-
case "mapboxsatellite":
|
|
281
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite;
|
|
282
|
-
case "mapboxstreets":
|
|
283
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets;
|
|
284
|
-
case "mapboxstreetsclassic":
|
|
285
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic;
|
|
286
|
-
case "esriworldimagery":
|
|
287
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery;
|
|
288
|
-
case "esriworldstreetmap":
|
|
289
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap;
|
|
290
|
-
case "esrinationalgeographic":
|
|
291
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic;
|
|
292
|
-
case "openstreetmap":
|
|
293
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap;
|
|
294
|
-
case "stamenwatercolor":
|
|
295
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor;
|
|
296
|
-
case "stamentoner":
|
|
297
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner;
|
|
298
|
-
case "grid":
|
|
299
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.Grid;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Returns if a given legacy imagery's name correspondings to a default source.
|
|
304
|
-
* @param name
|
|
305
|
-
* @returns
|
|
306
|
-
*/
|
|
307
|
-
function isLegacyImageryDefault(name) {
|
|
308
|
-
name = legacyMapIdToDefaultId(name);
|
|
309
|
-
return bruce_models_1.ProjectViewTile.DefaultImagery.find(function (x) { return x.id == name; }) != null;
|
|
310
|
-
}
|
|
311
|
-
var TileRenderEngine;
|
|
312
|
-
(function (TileRenderEngine) {
|
|
313
|
-
/**
|
|
314
|
-
* Legacy data did name comparisons instead of ids.
|
|
315
|
-
* We need to strip spacing, remove special characters, and make lowercase before comparison...
|
|
316
|
-
* @param nameA
|
|
317
|
-
* @param nameB
|
|
318
|
-
*/
|
|
319
|
-
function CompareLegacyNames(nameA, nameB) {
|
|
320
|
-
nameA = prepLegacyName(nameA);
|
|
321
|
-
nameB = prepLegacyName(nameB);
|
|
322
|
-
return nameA === nameB;
|
|
323
|
-
}
|
|
324
|
-
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
325
|
-
var Map;
|
|
326
|
-
(function (Map) {
|
|
327
|
-
var V1;
|
|
328
|
-
(function (V1) {
|
|
329
|
-
function Render(params) {
|
|
330
|
-
var enabled = gatherEnabledImageries(params.viewer);
|
|
331
|
-
var tile = params.data;
|
|
332
|
-
var bId = createLegacyImageryId(tile);
|
|
333
|
-
var layer = enabled.find(function (x) { return x._bId == bId; });
|
|
334
|
-
if (layer) {
|
|
335
|
-
// Already exists.
|
|
336
|
-
}
|
|
337
|
-
else if (isLegacyImageryDefault(tile.Name)) {
|
|
338
|
-
var defaultId = legacyMapIdToDefaultId(tile.Name);
|
|
339
|
-
var provider = renderDefaultMapTile(defaultId);
|
|
340
|
-
if (provider) {
|
|
341
|
-
layer = new Cesium.ImageryLayer(provider);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
else if (tile.SourceUrl) {
|
|
345
|
-
var provider = null;
|
|
346
|
-
var min = tile.Minimum;
|
|
347
|
-
var max = tile.Maximum;
|
|
348
|
-
if (min != undefined && min <= -1) {
|
|
349
|
-
min = undefined;
|
|
350
|
-
}
|
|
351
|
-
if (max != undefined && max <= -1) {
|
|
352
|
-
max = undefined;
|
|
353
|
-
}
|
|
354
|
-
switch (tile.Type) {
|
|
355
|
-
case "BruceImagery":
|
|
356
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
357
|
-
url: tile.SourceUrl,
|
|
358
|
-
tileHeight: 256,
|
|
359
|
-
tileWidth: 256
|
|
360
|
-
});
|
|
361
|
-
break;
|
|
362
|
-
case "ArcGisImagery":
|
|
363
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
364
|
-
url: tile.SourceUrl,
|
|
365
|
-
fileExtension: tile.FileExtension,
|
|
366
|
-
minimumLevel: min,
|
|
367
|
-
maximumLevel: max
|
|
368
|
-
});
|
|
369
|
-
break;
|
|
370
|
-
case "TileMapImagery":
|
|
371
|
-
provider = new Cesium.TileMapServiceImageryProvider({
|
|
372
|
-
url: tile.SourceUrl,
|
|
373
|
-
fileExtension: tile.FileExtension,
|
|
374
|
-
minimumLevel: min,
|
|
375
|
-
maximumLevel: max
|
|
376
|
-
});
|
|
377
|
-
break;
|
|
378
|
-
case "OpenStreetMapImagery":
|
|
379
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
380
|
-
url: tile.SourceUrl,
|
|
381
|
-
fileExtension: tile.FileExtension,
|
|
382
|
-
minimumLevel: min,
|
|
383
|
-
maximumLevel: max
|
|
384
|
-
});
|
|
385
|
-
break;
|
|
386
|
-
case "MapBoxImagery":
|
|
387
|
-
// TODO: Read default account key when missing.
|
|
388
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
389
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
390
|
-
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
391
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
392
|
-
+ tile.ProgramKey
|
|
393
|
-
});
|
|
394
|
-
break;
|
|
395
|
-
}
|
|
396
|
-
if (provider) {
|
|
397
|
-
layer = new Cesium.ImageryLayer(provider);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
if (layer) {
|
|
401
|
-
layer._bId = bId;
|
|
402
|
-
layer._bName = tile.Name;
|
|
403
|
-
if (!params.viewer.imageryLayers.contains(layer)) {
|
|
404
|
-
params.viewer.imageryLayers.add(layer);
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
return layer;
|
|
408
|
-
}
|
|
409
|
-
V1.Render = Render;
|
|
410
|
-
function RenderView(params) {
|
|
411
|
-
var _a;
|
|
412
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
413
|
-
var api, view, bookmark, vSettings, bSettings, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
|
|
414
|
-
return __generator(this, function (_b) {
|
|
415
|
-
switch (_b.label) {
|
|
416
|
-
case 0:
|
|
417
|
-
api = params.apiGetter.getApi();
|
|
418
|
-
return [4 /*yield*/, bruce_models_1.ProjectView.Get(api, params.viewId)];
|
|
419
|
-
case 1:
|
|
420
|
-
view = _b.sent();
|
|
421
|
-
bookmark = null;
|
|
422
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
423
|
-
return [4 /*yield*/, bruce_models_1.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
424
|
-
case 2:
|
|
425
|
-
bookmark = (_b.sent());
|
|
426
|
-
_b.label = 3;
|
|
427
|
-
case 3:
|
|
428
|
-
vSettings = view.Settings;
|
|
429
|
-
bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
430
|
-
data = [];
|
|
431
|
-
dataNames = [];
|
|
432
|
-
if (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) {
|
|
433
|
-
for (i = 0; i < bSettings.imagery.length; i++) {
|
|
434
|
-
source = bSettings.imagery[i];
|
|
435
|
-
dataNames.push(source.title);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
else if (vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultMapTiles) {
|
|
439
|
-
dataNames.push(vSettings.DefaultMapTiles);
|
|
440
|
-
}
|
|
441
|
-
tiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) !== null && _a !== void 0 ? _a : [];
|
|
442
|
-
return [4 /*yield*/, bruce_models_1.ProjectViewLegacyTile.MergeMapTemplateData(params.apiGetter, tiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) == null)];
|
|
443
|
-
case 4:
|
|
444
|
-
_b.sent();
|
|
445
|
-
for (i = 0; i < dataNames.length; i++) {
|
|
446
|
-
name_1 = dataNames[i];
|
|
447
|
-
for (j = 0; j < tiles.length; j++) {
|
|
448
|
-
tile = tiles[j];
|
|
449
|
-
if (CompareLegacyNames(tile.Name, name_1)) {
|
|
450
|
-
data.push(tile);
|
|
451
|
-
break;
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
enabled = gatherEnabledImageries(params.viewer);
|
|
456
|
-
layers = [];
|
|
457
|
-
// Gather layers we want to render.
|
|
458
|
-
// Any new layer is added to viewer at the bottom.
|
|
459
|
-
if (params.ignoreIds) {
|
|
460
|
-
_loop_1 = function (i) {
|
|
461
|
-
var id = params.ignoreIds[i];
|
|
462
|
-
var layer = enabled.find(function (x) {
|
|
463
|
-
var layer = x;
|
|
464
|
-
if (layer._bId === id) {
|
|
465
|
-
return true;
|
|
466
|
-
}
|
|
467
|
-
});
|
|
468
|
-
if (layer) {
|
|
469
|
-
layers.push(layer);
|
|
470
|
-
}
|
|
471
|
-
};
|
|
472
|
-
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
473
|
-
_loop_1(i);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
for (i = 0; i < data.length; i++) {
|
|
477
|
-
tile = data[i];
|
|
478
|
-
layer = Render({
|
|
479
|
-
apiGetter: params.apiGetter,
|
|
480
|
-
viewer: params.viewer,
|
|
481
|
-
data: tile,
|
|
482
|
-
});
|
|
483
|
-
if (layer) {
|
|
484
|
-
layers.push(layer);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
// Sort currently enabled (after new ones added) to match desired order.
|
|
488
|
-
enabled = gatherEnabledImageries(params.viewer);
|
|
489
|
-
enabled.sort(function (a, b) {
|
|
490
|
-
var indexA = layers.indexOf(a);
|
|
491
|
-
var indexB = layers.indexOf(b);
|
|
492
|
-
if (indexA < 0 && indexB < 0) {
|
|
493
|
-
return 0;
|
|
494
|
-
}
|
|
495
|
-
if (indexA < 0) {
|
|
496
|
-
return 1;
|
|
497
|
-
}
|
|
498
|
-
if (indexB < 0) {
|
|
499
|
-
return -1;
|
|
500
|
-
}
|
|
501
|
-
return indexA - indexB;
|
|
502
|
-
});
|
|
503
|
-
// Move enabled layers to match desired order.
|
|
504
|
-
// Remove any layers that aren't in enabled list.
|
|
505
|
-
for (i = 0; i < enabled.length; i++) {
|
|
506
|
-
layer = enabled[i];
|
|
507
|
-
if (layers.includes(layer)) {
|
|
508
|
-
params.viewer.imageryLayers.raiseToTop(layer);
|
|
509
|
-
}
|
|
510
|
-
else {
|
|
511
|
-
params.viewer.imageryLayers.remove(layer);
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
return [2 /*return*/];
|
|
515
|
-
}
|
|
516
|
-
});
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
|
-
V1.RenderView = RenderView;
|
|
520
|
-
})(V1 = Map.V1 || (Map.V1 = {}));
|
|
521
|
-
var V2;
|
|
522
|
-
(function (V2) {
|
|
523
|
-
function GetOrCreateLayer(viewer, apiGetter, meta) {
|
|
524
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
525
|
-
var enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, settings, layer;
|
|
526
|
-
return __generator(this, function (_a) {
|
|
527
|
-
switch (_a.label) {
|
|
528
|
-
case 0:
|
|
529
|
-
enabled = gatherEnabledImageries(viewer);
|
|
530
|
-
for (i = 0; i < enabled.length; i++) {
|
|
531
|
-
layer = enabled[i];
|
|
532
|
-
layerMeta = layer._bMeta;
|
|
533
|
-
if (layerMeta && layerMeta.tilesetId === meta.tilesetId && layerMeta.accountId === meta.accountId) {
|
|
534
|
-
return [2 /*return*/, layer];
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
defaultImg = meta.accountId ? null : bruce_models_1.ProjectViewTile.DefaultImagery.find(function (x) { return x.id === meta.tilesetId; });
|
|
538
|
-
provider = null;
|
|
539
|
-
if (!defaultImg) return [3 /*break*/, 1];
|
|
540
|
-
provider = renderDefaultMapTile(defaultImg.id);
|
|
541
|
-
return [3 /*break*/, 3];
|
|
542
|
-
case 1:
|
|
543
|
-
api = apiGetter.getApi(meta.accountId);
|
|
544
|
-
return [4 /*yield*/, bruce_models_1.Tileset.Get(api, meta.tilesetId)];
|
|
545
|
-
case 2:
|
|
546
|
-
tileset = _a.sent();
|
|
547
|
-
if (tileset.type === bruce_models_1.Tileset.EType.GeoMap) {
|
|
548
|
-
provider = new Cesium.TileMapServiceImageryProvider({
|
|
549
|
-
url: bruce_models_1.Tileset.GetPublicFileUrl(api, meta.tilesetId, ""),
|
|
550
|
-
fileExtension: ".png"
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
else if (tileset.type === bruce_models_1.Tileset.EType.ExternalGeoMap) {
|
|
554
|
-
settings = tileset.settings;
|
|
555
|
-
switch (settings.mapType) {
|
|
556
|
-
case bruce_models_1.TilesetExtMapTiles.EType.CesiumIon:
|
|
557
|
-
provider = new Cesium.IonImageryProvider({
|
|
558
|
-
assetId: settings.ionId,
|
|
559
|
-
// TODO
|
|
560
|
-
accessToken: null
|
|
561
|
-
});
|
|
562
|
-
break;
|
|
563
|
-
case bruce_models_1.TilesetExtMapTiles.EType.MapBoxImagery:
|
|
564
|
-
// TODO: Read default account key when missing.
|
|
565
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
566
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
567
|
-
+ settings.mapBoxAccount + "/" + settings.mapBoxStyleId +
|
|
568
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
569
|
-
+ settings.mapBoxKey
|
|
570
|
-
});
|
|
571
|
-
break;
|
|
572
|
-
case bruce_models_1.TilesetExtMapTiles.EType.OpenStreetMapImagery:
|
|
573
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
574
|
-
url: settings.url,
|
|
575
|
-
fileExtension: settings.sourceExt
|
|
576
|
-
});
|
|
577
|
-
break;
|
|
578
|
-
case bruce_models_1.TilesetExtMapTiles.EType.TileMapImagery:
|
|
579
|
-
provider = new Cesium.TileMapServiceImageryProvider({
|
|
580
|
-
url: settings.url,
|
|
581
|
-
fileExtension: settings.sourceExt
|
|
582
|
-
});
|
|
583
|
-
break;
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
else if (tileset.type === bruce_models_1.Tileset.EType.EntitiesMap) {
|
|
587
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
588
|
-
url: bruce_models_1.Tileset.GetPublicFileUrl(api, meta.tilesetId, "{z}/{x}/{y}.png"),
|
|
589
|
-
tileHeight: 256,
|
|
590
|
-
tileWidth: 256
|
|
591
|
-
});
|
|
592
|
-
}
|
|
593
|
-
_a.label = 3;
|
|
594
|
-
case 3:
|
|
595
|
-
if (provider) {
|
|
596
|
-
layer = viewer.imageryLayers.addImageryProvider(provider);
|
|
597
|
-
layer._bMeta = meta;
|
|
598
|
-
viewer.imageryLayers.lowerToBottom(layer);
|
|
599
|
-
return [2 /*return*/, layer];
|
|
600
|
-
}
|
|
601
|
-
return [2 /*return*/, null];
|
|
602
|
-
}
|
|
603
|
-
});
|
|
604
|
-
});
|
|
605
|
-
}
|
|
606
|
-
V2.GetOrCreateLayer = GetOrCreateLayer;
|
|
607
|
-
function Render(params) {
|
|
608
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
609
|
-
var
|
|
610
|
-
return __generator(this, function (_a) {
|
|
611
|
-
switch (_a.label) {
|
|
612
|
-
case 0:
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
var
|
|
651
|
-
var
|
|
652
|
-
if (
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
}
|
|
662
|
-
for (i = 0; i <
|
|
663
|
-
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
return [4 /*yield*/, bruce_models_1.
|
|
733
|
-
case
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
if (
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
}
|
|
748
|
-
return [
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
if (
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
if (provider) {
|
|
817
|
-
provider._bMeta = {
|
|
818
|
-
accountId: params.source.accountId,
|
|
819
|
-
tilesetId: params.source.tilesetId
|
|
820
|
-
};
|
|
821
|
-
params.viewer.terrainProvider = provider;
|
|
822
|
-
}
|
|
823
|
-
return [2 /*return*/];
|
|
824
|
-
}
|
|
825
|
-
});
|
|
826
|
-
});
|
|
827
|
-
}
|
|
828
|
-
V2.Render = Render;
|
|
829
|
-
})(V2 = Terrain.V2 || (Terrain.V2 = {}));
|
|
830
|
-
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
831
|
-
})(TileRenderEngine = exports.TileRenderEngine || (exports.TileRenderEngine = {}));
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.TileRenderEngine = void 0;
|
|
40
|
+
var bruce_models_1 = require("bruce-models");
|
|
41
|
+
var Cesium = require("cesium");
|
|
42
|
+
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
43
|
+
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
44
|
+
var re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
|
|
45
|
+
/**
|
|
46
|
+
* Prepares a legacy imagery name for comparison.
|
|
47
|
+
* Legacy data did not have ids... we do what we can.
|
|
48
|
+
* @param name
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
function prepLegacyName(name) {
|
|
52
|
+
if (!name) {
|
|
53
|
+
return "";
|
|
54
|
+
}
|
|
55
|
+
name = name.replace(/\s/g, "");
|
|
56
|
+
name = name.replace(re, "");
|
|
57
|
+
name = name.toLowerCase();
|
|
58
|
+
if (name === "cwt") {
|
|
59
|
+
name = "cesiumworldterrain";
|
|
60
|
+
}
|
|
61
|
+
return name;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Constructs an terrain provider for a default terrain type.
|
|
65
|
+
* Warning: This does not add it to the viewer.
|
|
66
|
+
* @param id
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
function renderDefaultTerrTile(id) {
|
|
70
|
+
var provider;
|
|
71
|
+
switch (id) {
|
|
72
|
+
case bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain:
|
|
73
|
+
provider = Cesium.createWorldTerrain({
|
|
74
|
+
requestVertexNormals: true,
|
|
75
|
+
requestWaterMask: false
|
|
76
|
+
});
|
|
77
|
+
break;
|
|
78
|
+
case bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain:
|
|
79
|
+
provider = new Cesium.EllipsoidTerrainProvider();
|
|
80
|
+
break;
|
|
81
|
+
case bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ:
|
|
82
|
+
provider = new Cesium.CesiumTerrainProvider({
|
|
83
|
+
url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
|
|
84
|
+
requestVertexNormals: true,
|
|
85
|
+
});
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
return provider;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Maps a legacy terrain's name to a default terrain id.
|
|
92
|
+
* @param name
|
|
93
|
+
* @returns
|
|
94
|
+
*/
|
|
95
|
+
function legacyTerrIdToDefaultId(name) {
|
|
96
|
+
name = prepLegacyName(name);
|
|
97
|
+
switch (name) {
|
|
98
|
+
case "cesiumworldterrain":
|
|
99
|
+
return bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain;
|
|
100
|
+
case "linz":
|
|
101
|
+
return bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ;
|
|
102
|
+
case "flatterrain":
|
|
103
|
+
return bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns if a given legacy terrain's name correspondings to a default source.
|
|
108
|
+
* @param name
|
|
109
|
+
* @returns
|
|
110
|
+
*/
|
|
111
|
+
function isLegacyTerrainDefault(name) {
|
|
112
|
+
name = legacyTerrIdToDefaultId(name);
|
|
113
|
+
return bruce_models_1.ProjectViewTile.DefaultTerrains.find(function (x) { return x.id == name; }) != null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns a best attempt at a unique id from a given legacy terrain source.
|
|
117
|
+
* @param source
|
|
118
|
+
* @returns
|
|
119
|
+
*/
|
|
120
|
+
function createLegacyTerrId(source) {
|
|
121
|
+
if (!source) {
|
|
122
|
+
return "";
|
|
123
|
+
}
|
|
124
|
+
if (isLegacyTerrainDefault(source.Name)) {
|
|
125
|
+
return source.Name;
|
|
126
|
+
}
|
|
127
|
+
if (source.SourceUrl) {
|
|
128
|
+
return source.SourceUrl;
|
|
129
|
+
}
|
|
130
|
+
return "";
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Returns a best attempt at a unique id from a given legacy imagery source.
|
|
134
|
+
* @param source
|
|
135
|
+
* @returns
|
|
136
|
+
*/
|
|
137
|
+
function createLegacyImageryId(source) {
|
|
138
|
+
if (!source) {
|
|
139
|
+
return "";
|
|
140
|
+
}
|
|
141
|
+
if (isLegacyImageryDefault(source.Name)) {
|
|
142
|
+
return source.Name;
|
|
143
|
+
}
|
|
144
|
+
if (source.SourceUrl) {
|
|
145
|
+
return source.SourceUrl;
|
|
146
|
+
}
|
|
147
|
+
return "";
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Turns Cesium collection of enabled imageries into an array.
|
|
151
|
+
* @param viewer
|
|
152
|
+
* @returns
|
|
153
|
+
*/
|
|
154
|
+
function gatherEnabledImageries(viewer) {
|
|
155
|
+
var collection = viewer.imageryLayers;
|
|
156
|
+
var layers = [];
|
|
157
|
+
for (var i = 0; i < collection.length; i++) {
|
|
158
|
+
var layer = collection.get(i);
|
|
159
|
+
layers.push(layer);
|
|
160
|
+
}
|
|
161
|
+
return layers;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Constructs an imagery provider for a default imagery type.
|
|
165
|
+
* Warning: This does not add it to the viewer.
|
|
166
|
+
* @param id
|
|
167
|
+
* @returns
|
|
168
|
+
*/
|
|
169
|
+
function renderDefaultMapTile(id) {
|
|
170
|
+
var provider;
|
|
171
|
+
switch (id) {
|
|
172
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial:
|
|
173
|
+
// TODO: Read account key if available.
|
|
174
|
+
provider = new Cesium.BingMapsImageryProvider({
|
|
175
|
+
url: "https://dev.virtualearth.net",
|
|
176
|
+
mapStyle: Cesium.BingMapsStyle.AERIAL,
|
|
177
|
+
key: DEFAULT_BING_KEY
|
|
178
|
+
});
|
|
179
|
+
break;
|
|
180
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
|
|
181
|
+
// TODO: Read account key if available.
|
|
182
|
+
provider = new Cesium.BingMapsImageryProvider({
|
|
183
|
+
url: "https://dev.virtualearth.net",
|
|
184
|
+
mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
|
|
185
|
+
key: DEFAULT_BING_KEY
|
|
186
|
+
});
|
|
187
|
+
break;
|
|
188
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads:
|
|
189
|
+
// TODO: Read account key if available.
|
|
190
|
+
provider = new Cesium.BingMapsImageryProvider({
|
|
191
|
+
url: "https://dev.virtualearth.net",
|
|
192
|
+
mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
|
|
193
|
+
key: DEFAULT_BING_KEY
|
|
194
|
+
});
|
|
195
|
+
break;
|
|
196
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite:
|
|
197
|
+
// TODO: Read account key if available.
|
|
198
|
+
provider = new Cesium.MapboxImageryProvider({
|
|
199
|
+
mapId: "mapbox.satellite",
|
|
200
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
201
|
+
});
|
|
202
|
+
break;
|
|
203
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets:
|
|
204
|
+
// TODO: Read account key if available.
|
|
205
|
+
provider = new Cesium.MapboxImageryProvider({
|
|
206
|
+
mapId: "satellite-streets-v11",
|
|
207
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
208
|
+
});
|
|
209
|
+
break;
|
|
210
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
|
|
211
|
+
// TODO: Read account key if available.
|
|
212
|
+
provider = new Cesium.MapboxImageryProvider({
|
|
213
|
+
mapId: "streets-v11",
|
|
214
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
215
|
+
});
|
|
216
|
+
break;
|
|
217
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery:
|
|
218
|
+
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
219
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
220
|
+
enablePickFeatures: false
|
|
221
|
+
});
|
|
222
|
+
break;
|
|
223
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap:
|
|
224
|
+
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
225
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
226
|
+
enablePickFeatures: false
|
|
227
|
+
});
|
|
228
|
+
break;
|
|
229
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic:
|
|
230
|
+
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
231
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
232
|
+
enablePickFeatures: false
|
|
233
|
+
});
|
|
234
|
+
break;
|
|
235
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap:
|
|
236
|
+
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
237
|
+
url: "https://a.tile.openstreetmap.org/"
|
|
238
|
+
});
|
|
239
|
+
break;
|
|
240
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor:
|
|
241
|
+
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
242
|
+
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
243
|
+
});
|
|
244
|
+
break;
|
|
245
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner:
|
|
246
|
+
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
247
|
+
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
248
|
+
});
|
|
249
|
+
break;
|
|
250
|
+
case bruce_models_1.ProjectViewTile.EDefaultImagery.Grid:
|
|
251
|
+
provider = new Cesium.GridImageryProvider({
|
|
252
|
+
tilingScheme: new Cesium.GeographicTilingScheme(),
|
|
253
|
+
cells: 0,
|
|
254
|
+
color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
255
|
+
glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
256
|
+
glowWidth: 4,
|
|
257
|
+
backgroundColor: Cesium.Color.TRANSPARENT,
|
|
258
|
+
tileWidth: 256,
|
|
259
|
+
tileHeight: 256,
|
|
260
|
+
canvasSize: 256
|
|
261
|
+
});
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
return provider;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Maps a legacy imagery's name to a default imagery id.
|
|
268
|
+
* @param name
|
|
269
|
+
* @returns
|
|
270
|
+
*/
|
|
271
|
+
function legacyMapIdToDefaultId(name) {
|
|
272
|
+
name = prepLegacyName(name);
|
|
273
|
+
switch (name) {
|
|
274
|
+
case "bingmapsaerial":
|
|
275
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial;
|
|
276
|
+
case "bingmapsaerialwithlabels":
|
|
277
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels;
|
|
278
|
+
case "bingmapsroads":
|
|
279
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads;
|
|
280
|
+
case "mapboxsatellite":
|
|
281
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite;
|
|
282
|
+
case "mapboxstreets":
|
|
283
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets;
|
|
284
|
+
case "mapboxstreetsclassic":
|
|
285
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic;
|
|
286
|
+
case "esriworldimagery":
|
|
287
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery;
|
|
288
|
+
case "esriworldstreetmap":
|
|
289
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap;
|
|
290
|
+
case "esrinationalgeographic":
|
|
291
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic;
|
|
292
|
+
case "openstreetmap":
|
|
293
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap;
|
|
294
|
+
case "stamenwatercolor":
|
|
295
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor;
|
|
296
|
+
case "stamentoner":
|
|
297
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner;
|
|
298
|
+
case "grid":
|
|
299
|
+
return bruce_models_1.ProjectViewTile.EDefaultImagery.Grid;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Returns if a given legacy imagery's name correspondings to a default source.
|
|
304
|
+
* @param name
|
|
305
|
+
* @returns
|
|
306
|
+
*/
|
|
307
|
+
function isLegacyImageryDefault(name) {
|
|
308
|
+
name = legacyMapIdToDefaultId(name);
|
|
309
|
+
return bruce_models_1.ProjectViewTile.DefaultImagery.find(function (x) { return x.id == name; }) != null;
|
|
310
|
+
}
|
|
311
|
+
var TileRenderEngine;
|
|
312
|
+
(function (TileRenderEngine) {
|
|
313
|
+
/**
|
|
314
|
+
* Legacy data did name comparisons instead of ids.
|
|
315
|
+
* We need to strip spacing, remove special characters, and make lowercase before comparison...
|
|
316
|
+
* @param nameA
|
|
317
|
+
* @param nameB
|
|
318
|
+
*/
|
|
319
|
+
function CompareLegacyNames(nameA, nameB) {
|
|
320
|
+
nameA = prepLegacyName(nameA);
|
|
321
|
+
nameB = prepLegacyName(nameB);
|
|
322
|
+
return nameA === nameB;
|
|
323
|
+
}
|
|
324
|
+
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
325
|
+
var Map;
|
|
326
|
+
(function (Map) {
|
|
327
|
+
var V1;
|
|
328
|
+
(function (V1) {
|
|
329
|
+
function Render(params) {
|
|
330
|
+
var enabled = gatherEnabledImageries(params.viewer);
|
|
331
|
+
var tile = params.data;
|
|
332
|
+
var bId = createLegacyImageryId(tile);
|
|
333
|
+
var layer = enabled.find(function (x) { return x._bId == bId; });
|
|
334
|
+
if (layer) {
|
|
335
|
+
// Already exists.
|
|
336
|
+
}
|
|
337
|
+
else if (isLegacyImageryDefault(tile.Name)) {
|
|
338
|
+
var defaultId = legacyMapIdToDefaultId(tile.Name);
|
|
339
|
+
var provider = renderDefaultMapTile(defaultId);
|
|
340
|
+
if (provider) {
|
|
341
|
+
layer = new Cesium.ImageryLayer(provider);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else if (tile.SourceUrl) {
|
|
345
|
+
var provider = null;
|
|
346
|
+
var min = tile.Minimum;
|
|
347
|
+
var max = tile.Maximum;
|
|
348
|
+
if (min != undefined && min <= -1) {
|
|
349
|
+
min = undefined;
|
|
350
|
+
}
|
|
351
|
+
if (max != undefined && max <= -1) {
|
|
352
|
+
max = undefined;
|
|
353
|
+
}
|
|
354
|
+
switch (tile.Type) {
|
|
355
|
+
case "BruceImagery":
|
|
356
|
+
provider = new Cesium.UrlTemplateImageryProvider({
|
|
357
|
+
url: tile.SourceUrl,
|
|
358
|
+
tileHeight: 256,
|
|
359
|
+
tileWidth: 256
|
|
360
|
+
});
|
|
361
|
+
break;
|
|
362
|
+
case "ArcGisImagery":
|
|
363
|
+
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
364
|
+
url: tile.SourceUrl,
|
|
365
|
+
fileExtension: tile.FileExtension,
|
|
366
|
+
minimumLevel: min,
|
|
367
|
+
maximumLevel: max
|
|
368
|
+
});
|
|
369
|
+
break;
|
|
370
|
+
case "TileMapImagery":
|
|
371
|
+
provider = new Cesium.TileMapServiceImageryProvider({
|
|
372
|
+
url: tile.SourceUrl,
|
|
373
|
+
fileExtension: tile.FileExtension,
|
|
374
|
+
minimumLevel: min,
|
|
375
|
+
maximumLevel: max
|
|
376
|
+
});
|
|
377
|
+
break;
|
|
378
|
+
case "OpenStreetMapImagery":
|
|
379
|
+
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
380
|
+
url: tile.SourceUrl,
|
|
381
|
+
fileExtension: tile.FileExtension,
|
|
382
|
+
minimumLevel: min,
|
|
383
|
+
maximumLevel: max
|
|
384
|
+
});
|
|
385
|
+
break;
|
|
386
|
+
case "MapBoxImagery":
|
|
387
|
+
// TODO: Read default account key when missing.
|
|
388
|
+
provider = new Cesium.UrlTemplateImageryProvider({
|
|
389
|
+
url: "https://api.mapbox.com/styles/v1/"
|
|
390
|
+
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
391
|
+
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
392
|
+
+ tile.ProgramKey
|
|
393
|
+
});
|
|
394
|
+
break;
|
|
395
|
+
}
|
|
396
|
+
if (provider) {
|
|
397
|
+
layer = new Cesium.ImageryLayer(provider);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
if (layer) {
|
|
401
|
+
layer._bId = bId;
|
|
402
|
+
layer._bName = tile.Name;
|
|
403
|
+
if (!params.viewer.imageryLayers.contains(layer)) {
|
|
404
|
+
params.viewer.imageryLayers.add(layer);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return layer;
|
|
408
|
+
}
|
|
409
|
+
V1.Render = Render;
|
|
410
|
+
function RenderView(params) {
|
|
411
|
+
var _a;
|
|
412
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
413
|
+
var api, view, bookmark, vSettings, bSettings, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
|
|
414
|
+
return __generator(this, function (_b) {
|
|
415
|
+
switch (_b.label) {
|
|
416
|
+
case 0:
|
|
417
|
+
api = params.apiGetter.getApi();
|
|
418
|
+
return [4 /*yield*/, bruce_models_1.ProjectView.Get(api, params.viewId)];
|
|
419
|
+
case 1:
|
|
420
|
+
view = _b.sent();
|
|
421
|
+
bookmark = null;
|
|
422
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
423
|
+
return [4 /*yield*/, bruce_models_1.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
424
|
+
case 2:
|
|
425
|
+
bookmark = (_b.sent());
|
|
426
|
+
_b.label = 3;
|
|
427
|
+
case 3:
|
|
428
|
+
vSettings = view.Settings;
|
|
429
|
+
bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
430
|
+
data = [];
|
|
431
|
+
dataNames = [];
|
|
432
|
+
if (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) {
|
|
433
|
+
for (i = 0; i < bSettings.imagery.length; i++) {
|
|
434
|
+
source = bSettings.imagery[i];
|
|
435
|
+
dataNames.push(source.title);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
else if (vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultMapTiles) {
|
|
439
|
+
dataNames.push(vSettings.DefaultMapTiles);
|
|
440
|
+
}
|
|
441
|
+
tiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) !== null && _a !== void 0 ? _a : [];
|
|
442
|
+
return [4 /*yield*/, bruce_models_1.ProjectViewLegacyTile.MergeMapTemplateData(params.apiGetter, tiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) == null)];
|
|
443
|
+
case 4:
|
|
444
|
+
_b.sent();
|
|
445
|
+
for (i = 0; i < dataNames.length; i++) {
|
|
446
|
+
name_1 = dataNames[i];
|
|
447
|
+
for (j = 0; j < tiles.length; j++) {
|
|
448
|
+
tile = tiles[j];
|
|
449
|
+
if (CompareLegacyNames(tile.Name, name_1)) {
|
|
450
|
+
data.push(tile);
|
|
451
|
+
break;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
enabled = gatherEnabledImageries(params.viewer);
|
|
456
|
+
layers = [];
|
|
457
|
+
// Gather layers we want to render.
|
|
458
|
+
// Any new layer is added to viewer at the bottom.
|
|
459
|
+
if (params.ignoreIds) {
|
|
460
|
+
_loop_1 = function (i) {
|
|
461
|
+
var id = params.ignoreIds[i];
|
|
462
|
+
var layer = enabled.find(function (x) {
|
|
463
|
+
var layer = x;
|
|
464
|
+
if (layer._bId === id) {
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
if (layer) {
|
|
469
|
+
layers.push(layer);
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
473
|
+
_loop_1(i);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
for (i = 0; i < data.length; i++) {
|
|
477
|
+
tile = data[i];
|
|
478
|
+
layer = Render({
|
|
479
|
+
apiGetter: params.apiGetter,
|
|
480
|
+
viewer: params.viewer,
|
|
481
|
+
data: tile,
|
|
482
|
+
});
|
|
483
|
+
if (layer) {
|
|
484
|
+
layers.push(layer);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
// Sort currently enabled (after new ones added) to match desired order.
|
|
488
|
+
enabled = gatherEnabledImageries(params.viewer);
|
|
489
|
+
enabled.sort(function (a, b) {
|
|
490
|
+
var indexA = layers.indexOf(a);
|
|
491
|
+
var indexB = layers.indexOf(b);
|
|
492
|
+
if (indexA < 0 && indexB < 0) {
|
|
493
|
+
return 0;
|
|
494
|
+
}
|
|
495
|
+
if (indexA < 0) {
|
|
496
|
+
return 1;
|
|
497
|
+
}
|
|
498
|
+
if (indexB < 0) {
|
|
499
|
+
return -1;
|
|
500
|
+
}
|
|
501
|
+
return indexA - indexB;
|
|
502
|
+
});
|
|
503
|
+
// Move enabled layers to match desired order.
|
|
504
|
+
// Remove any layers that aren't in enabled list.
|
|
505
|
+
for (i = 0; i < enabled.length; i++) {
|
|
506
|
+
layer = enabled[i];
|
|
507
|
+
if (layers.includes(layer)) {
|
|
508
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
params.viewer.imageryLayers.remove(layer);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
return [2 /*return*/];
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
V1.RenderView = RenderView;
|
|
520
|
+
})(V1 = Map.V1 || (Map.V1 = {}));
|
|
521
|
+
var V2;
|
|
522
|
+
(function (V2) {
|
|
523
|
+
function GetOrCreateLayer(viewer, apiGetter, meta) {
|
|
524
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
525
|
+
var enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, settings, layer;
|
|
526
|
+
return __generator(this, function (_a) {
|
|
527
|
+
switch (_a.label) {
|
|
528
|
+
case 0:
|
|
529
|
+
enabled = gatherEnabledImageries(viewer);
|
|
530
|
+
for (i = 0; i < enabled.length; i++) {
|
|
531
|
+
layer = enabled[i];
|
|
532
|
+
layerMeta = layer._bMeta;
|
|
533
|
+
if (layerMeta && layerMeta.tilesetId === meta.tilesetId && layerMeta.accountId === meta.accountId) {
|
|
534
|
+
return [2 /*return*/, layer];
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
defaultImg = meta.accountId ? null : bruce_models_1.ProjectViewTile.DefaultImagery.find(function (x) { return x.id === meta.tilesetId; });
|
|
538
|
+
provider = null;
|
|
539
|
+
if (!defaultImg) return [3 /*break*/, 1];
|
|
540
|
+
provider = renderDefaultMapTile(defaultImg.id);
|
|
541
|
+
return [3 /*break*/, 3];
|
|
542
|
+
case 1:
|
|
543
|
+
api = apiGetter.getApi(meta.accountId);
|
|
544
|
+
return [4 /*yield*/, bruce_models_1.Tileset.Get(api, meta.tilesetId)];
|
|
545
|
+
case 2:
|
|
546
|
+
tileset = _a.sent();
|
|
547
|
+
if (tileset.type === bruce_models_1.Tileset.EType.GeoMap) {
|
|
548
|
+
provider = new Cesium.TileMapServiceImageryProvider({
|
|
549
|
+
url: bruce_models_1.Tileset.GetPublicFileUrl(api, meta.tilesetId, ""),
|
|
550
|
+
fileExtension: ".png"
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
else if (tileset.type === bruce_models_1.Tileset.EType.ExternalGeoMap) {
|
|
554
|
+
settings = tileset.settings;
|
|
555
|
+
switch (settings.mapType) {
|
|
556
|
+
case bruce_models_1.TilesetExtMapTiles.EType.CesiumIon:
|
|
557
|
+
provider = new Cesium.IonImageryProvider({
|
|
558
|
+
assetId: settings.ionId,
|
|
559
|
+
// TODO
|
|
560
|
+
accessToken: null
|
|
561
|
+
});
|
|
562
|
+
break;
|
|
563
|
+
case bruce_models_1.TilesetExtMapTiles.EType.MapBoxImagery:
|
|
564
|
+
// TODO: Read default account key when missing.
|
|
565
|
+
provider = new Cesium.UrlTemplateImageryProvider({
|
|
566
|
+
url: "https://api.mapbox.com/styles/v1/"
|
|
567
|
+
+ settings.mapBoxAccount + "/" + settings.mapBoxStyleId +
|
|
568
|
+
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
569
|
+
+ settings.mapBoxKey
|
|
570
|
+
});
|
|
571
|
+
break;
|
|
572
|
+
case bruce_models_1.TilesetExtMapTiles.EType.OpenStreetMapImagery:
|
|
573
|
+
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
574
|
+
url: settings.url,
|
|
575
|
+
fileExtension: settings.sourceExt
|
|
576
|
+
});
|
|
577
|
+
break;
|
|
578
|
+
case bruce_models_1.TilesetExtMapTiles.EType.TileMapImagery:
|
|
579
|
+
provider = new Cesium.TileMapServiceImageryProvider({
|
|
580
|
+
url: settings.url,
|
|
581
|
+
fileExtension: settings.sourceExt
|
|
582
|
+
});
|
|
583
|
+
break;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
else if (tileset.type === bruce_models_1.Tileset.EType.EntitiesMap) {
|
|
587
|
+
provider = new Cesium.UrlTemplateImageryProvider({
|
|
588
|
+
url: bruce_models_1.Tileset.GetPublicFileUrl(api, meta.tilesetId, "{z}/{x}/{y}.png"),
|
|
589
|
+
tileHeight: 256,
|
|
590
|
+
tileWidth: 256
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
_a.label = 3;
|
|
594
|
+
case 3:
|
|
595
|
+
if (provider) {
|
|
596
|
+
layer = viewer.imageryLayers.addImageryProvider(provider);
|
|
597
|
+
layer._bMeta = meta;
|
|
598
|
+
viewer.imageryLayers.lowerToBottom(layer);
|
|
599
|
+
return [2 /*return*/, layer];
|
|
600
|
+
}
|
|
601
|
+
return [2 /*return*/, null];
|
|
602
|
+
}
|
|
603
|
+
});
|
|
604
|
+
});
|
|
605
|
+
}
|
|
606
|
+
V2.GetOrCreateLayer = GetOrCreateLayer;
|
|
607
|
+
function Render(params) {
|
|
608
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
609
|
+
var i, enabled, curEnabled, toDisable, curEnabledArr, _loop_2, i, i, _loop_3, i;
|
|
610
|
+
return __generator(this, function (_a) {
|
|
611
|
+
switch (_a.label) {
|
|
612
|
+
case 0:
|
|
613
|
+
i = 0;
|
|
614
|
+
_a.label = 1;
|
|
615
|
+
case 1:
|
|
616
|
+
if (!(i < params.tiles.length)) return [3 /*break*/, 4];
|
|
617
|
+
enabled = params.tiles[i];
|
|
618
|
+
return [4 /*yield*/, GetOrCreateLayer(params.viewer, params.apiGetter, {
|
|
619
|
+
accountId: enabled.accountId,
|
|
620
|
+
tilesetId: enabled.tilesetId,
|
|
621
|
+
})];
|
|
622
|
+
case 2:
|
|
623
|
+
_a.sent();
|
|
624
|
+
_a.label = 3;
|
|
625
|
+
case 3:
|
|
626
|
+
i++;
|
|
627
|
+
return [3 /*break*/, 1];
|
|
628
|
+
case 4:
|
|
629
|
+
curEnabled = params.viewer.imageryLayers;
|
|
630
|
+
toDisable = [];
|
|
631
|
+
curEnabledArr = [];
|
|
632
|
+
_loop_2 = function (i) {
|
|
633
|
+
var layer = curEnabled.get(i);
|
|
634
|
+
var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
|
|
635
|
+
var disable = !params.tiles.find(function (x) { return x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId); });
|
|
636
|
+
if (disable) {
|
|
637
|
+
toDisable.push(layer);
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
curEnabledArr.push(layer);
|
|
641
|
+
}
|
|
642
|
+
};
|
|
643
|
+
for (i = 0; i < curEnabled.length; i++) {
|
|
644
|
+
_loop_2(i);
|
|
645
|
+
}
|
|
646
|
+
for (i = 0; i < toDisable.length; i++) {
|
|
647
|
+
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
648
|
+
}
|
|
649
|
+
_loop_3 = function (i) {
|
|
650
|
+
var enabled = params.tiles[i];
|
|
651
|
+
var layer = curEnabledArr.find(function (x) { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
|
|
652
|
+
if (layer) {
|
|
653
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
654
|
+
layer.alpha = Number(enabled.alpha == null ? 1 : enabled.alpha);
|
|
655
|
+
layer.brightness = Number(enabled.brightness == null ? 1 : enabled.brightness);
|
|
656
|
+
layer.contrast = Number(enabled.contrast == null ? 1 : enabled.contrast);
|
|
657
|
+
layer.hue = Number(enabled.hue == null ? 0 : enabled.hue);
|
|
658
|
+
layer.saturation = Number(enabled.saturation == null ? 1 : enabled.saturation);
|
|
659
|
+
layer.gamma = Number(enabled.gamma == null ? 1 : enabled.gamma);
|
|
660
|
+
}
|
|
661
|
+
};
|
|
662
|
+
for (i = 0; i < params.tiles.length; i++) {
|
|
663
|
+
_loop_3(i);
|
|
664
|
+
}
|
|
665
|
+
return [2 /*return*/];
|
|
666
|
+
}
|
|
667
|
+
});
|
|
668
|
+
});
|
|
669
|
+
}
|
|
670
|
+
V2.Render = Render;
|
|
671
|
+
})(V2 = Map.V2 || (Map.V2 = {}));
|
|
672
|
+
})(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
|
|
673
|
+
var Terrain;
|
|
674
|
+
(function (Terrain) {
|
|
675
|
+
var V1;
|
|
676
|
+
(function (V1) {
|
|
677
|
+
function Render(params) {
|
|
678
|
+
var _a;
|
|
679
|
+
var bId = createLegacyTerrId(params.data);
|
|
680
|
+
var curProvider = params.viewer.terrainProvider;
|
|
681
|
+
if (curProvider._bId && curProvider._bId === bId) {
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
684
|
+
var provider = null;
|
|
685
|
+
if (isLegacyTerrainDefault(params.data.Name)) {
|
|
686
|
+
var id = legacyTerrIdToDefaultId(params.data.Name);
|
|
687
|
+
provider = renderDefaultTerrTile(id);
|
|
688
|
+
}
|
|
689
|
+
else if (params.data.SourceUrl) {
|
|
690
|
+
provider = new Cesium.CesiumTerrainProvider({
|
|
691
|
+
url: params.data.SourceUrl,
|
|
692
|
+
requestWaterMask: params.data.RequestWaterMask,
|
|
693
|
+
requestVertexNormals: true
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
if (provider) {
|
|
697
|
+
provider._bId = bId;
|
|
698
|
+
provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
|
|
699
|
+
params.viewer.terrainProvider = provider;
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
V1.Render = Render;
|
|
703
|
+
function RenderView(params) {
|
|
704
|
+
var _a, _b;
|
|
705
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
706
|
+
var api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
|
|
707
|
+
return __generator(this, function (_c) {
|
|
708
|
+
switch (_c.label) {
|
|
709
|
+
case 0:
|
|
710
|
+
api = params.apiGetter.getApi();
|
|
711
|
+
return [4 /*yield*/, bruce_models_1.ProjectView.Get(api, params.viewId)];
|
|
712
|
+
case 1:
|
|
713
|
+
view = _c.sent();
|
|
714
|
+
bookmark = null;
|
|
715
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
716
|
+
return [4 /*yield*/, bruce_models_1.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
717
|
+
case 2:
|
|
718
|
+
bookmark = (_c.sent());
|
|
719
|
+
_c.label = 3;
|
|
720
|
+
case 3:
|
|
721
|
+
vSettings = view.Settings;
|
|
722
|
+
bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
723
|
+
terrainTiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) !== null && _a !== void 0 ? _a : [];
|
|
724
|
+
terrainTile = null;
|
|
725
|
+
terrainTileName = null;
|
|
726
|
+
if ((_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.terrain) {
|
|
727
|
+
terrainTileName = bSettings.terrain;
|
|
728
|
+
}
|
|
729
|
+
else {
|
|
730
|
+
terrainTileName = vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultTerrain;
|
|
731
|
+
}
|
|
732
|
+
return [4 /*yield*/, bruce_models_1.ProjectViewLegacyTile.MergeTerrainTemplateData(params.apiGetter, terrainTiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) == null)];
|
|
733
|
+
case 4:
|
|
734
|
+
_c.sent();
|
|
735
|
+
for (i = 0; i < terrainTiles.length; i++) {
|
|
736
|
+
tile = terrainTiles[i];
|
|
737
|
+
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
738
|
+
terrainTile = tile;
|
|
739
|
+
break;
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
if (terrainTile) {
|
|
743
|
+
Render({
|
|
744
|
+
data: terrainTile,
|
|
745
|
+
viewer: params.viewer,
|
|
746
|
+
});
|
|
747
|
+
}
|
|
748
|
+
return [2 /*return*/];
|
|
749
|
+
}
|
|
750
|
+
});
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
V1.RenderView = RenderView;
|
|
754
|
+
})(V1 = Terrain.V1 || (Terrain.V1 = {}));
|
|
755
|
+
var V2;
|
|
756
|
+
(function (V2) {
|
|
757
|
+
function Render(params) {
|
|
758
|
+
var _a;
|
|
759
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
760
|
+
var enabledMeta, defaultTerr, provider, api, tileset, url, vertexes, settings;
|
|
761
|
+
return __generator(this, function (_b) {
|
|
762
|
+
switch (_b.label) {
|
|
763
|
+
case 0:
|
|
764
|
+
enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
|
|
765
|
+
if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
|
|
766
|
+
(enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
|
|
767
|
+
return [2 /*return*/];
|
|
768
|
+
}
|
|
769
|
+
defaultTerr = params.tile.accountId ? null : bruce_models_1.ProjectViewTile.DefaultTerrains.find(function (x) { return x.id === params.tile.tilesetId; });
|
|
770
|
+
provider = null;
|
|
771
|
+
if (!defaultTerr) return [3 /*break*/, 1];
|
|
772
|
+
provider = renderDefaultTerrTile(defaultTerr.id);
|
|
773
|
+
return [3 /*break*/, 3];
|
|
774
|
+
case 1:
|
|
775
|
+
api = params.apiGetter.getApi(params.tile.accountId);
|
|
776
|
+
return [4 /*yield*/, bruce_models_1.Tileset.Get(api, params.tile.tilesetId)];
|
|
777
|
+
case 2:
|
|
778
|
+
tileset = _b.sent();
|
|
779
|
+
url = void 0;
|
|
780
|
+
vertexes = true;
|
|
781
|
+
if (tileset.type === bruce_models_1.Tileset.EType.Terrain) {
|
|
782
|
+
url = bruce_models_1.Tileset.GetPublicFileUrl(api, tileset.id, "");
|
|
783
|
+
}
|
|
784
|
+
else if (tileset.type === bruce_models_1.Tileset.EType.ExternalTerrain) {
|
|
785
|
+
settings = tileset.settings;
|
|
786
|
+
url = settings.url;
|
|
787
|
+
vertexes = settings.requestVertexNormals == null ? true : settings.requestVertexNormals;
|
|
788
|
+
}
|
|
789
|
+
else {
|
|
790
|
+
console.error("Invalid tileset type.", tileset);
|
|
791
|
+
}
|
|
792
|
+
if (url) {
|
|
793
|
+
provider = new Cesium.CesiumTerrainProvider({
|
|
794
|
+
url: url,
|
|
795
|
+
requestVertexNormals: vertexes
|
|
796
|
+
});
|
|
797
|
+
}
|
|
798
|
+
_b.label = 3;
|
|
799
|
+
case 3:
|
|
800
|
+
if (provider) {
|
|
801
|
+
provider._bMeta = {
|
|
802
|
+
accountId: params.tile.accountId,
|
|
803
|
+
tilesetId: params.tile.tilesetId
|
|
804
|
+
};
|
|
805
|
+
params.viewer.terrainProvider = provider;
|
|
806
|
+
}
|
|
807
|
+
return [2 /*return*/];
|
|
808
|
+
}
|
|
809
|
+
});
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
V2.Render = Render;
|
|
813
|
+
})(V2 = Terrain.V2 || (Terrain.V2 = {}));
|
|
814
|
+
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
815
|
+
})(TileRenderEngine = exports.TileRenderEngine || (exports.TileRenderEngine = {}));
|
|
832
816
|
//# sourceMappingURL=tile-render-engine.js.map
|