bruce-cesium 3.2.7 → 3.2.9
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 +397 -295
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +394 -292
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/utils/entity-utils.js +187 -86
- package/dist/lib/utils/entity-utils.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/package.json +1 -1
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Cartes,
|
|
1
|
+
import { Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ProjectViewTile, DelayQueue, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, EntityRelationType, BruceEvent, EntityCoords, Api, EntitySource, MenuItem, EntityRelation, ProgramKey, ENVIRONMENT, AbstractApi, ProjectViewBookmark, EntityAttachment, EntityAttachmentType, EntityAttribute, ProjectView, ProjectViewLegacyTile, Camera } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartographic,
|
|
3
|
+
import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, SceneMode, DistanceDisplayCondition, NearFarScalar, Model, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, JulianDate, Primitive, Cesium3DTileFeature, HeadingPitchRange, Cesium3DTileColorBlendMode, KmlDataSource, Cesium3DTileStyle, Ion, SceneTransforms, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, PolygonPipeline, EllipsoidGeodesic, sampleTerrainMostDetailed, defined, Cesium3DTileset, Matrix4, Matrix3, IonResource, OrthographicFrustum, EasingFunction, CesiumInspector, ScreenSpaceEventHandler, ScreenSpaceEventType, BoundingSphere, GeometryInstance, Intersect, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, ColorMaterialProperty } from 'cesium';
|
|
4
4
|
|
|
5
5
|
/*! *****************************************************************************
|
|
6
6
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -484,213 +484,6 @@ var DrawingUtils;
|
|
|
484
484
|
DrawingUtils.RaisePos3d = RaisePos3d;
|
|
485
485
|
})(DrawingUtils || (DrawingUtils = {}));
|
|
486
486
|
|
|
487
|
-
var CESIUM_INSPECTOR_KEY = "_nextspace_inspector";
|
|
488
|
-
var ViewUtils;
|
|
489
|
-
(function (ViewUtils) {
|
|
490
|
-
function GatherLegacyMapTiles(params) {
|
|
491
|
-
var viewer = params.viewer;
|
|
492
|
-
var collection = viewer.imageryLayers;
|
|
493
|
-
var tiles = [];
|
|
494
|
-
for (var i = 0; i < collection.length; i++) {
|
|
495
|
-
var layer = collection.get(i);
|
|
496
|
-
if (layer._bName) {
|
|
497
|
-
tiles.push({
|
|
498
|
-
alpha: layer.alpha,
|
|
499
|
-
brightness: layer.brightness,
|
|
500
|
-
contrast: layer.contrast,
|
|
501
|
-
hue: layer.hue,
|
|
502
|
-
saturation: layer.saturation,
|
|
503
|
-
gamma: layer.gamma,
|
|
504
|
-
title: layer._bName,
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
return {
|
|
509
|
-
imagery: tiles.reverse()
|
|
510
|
-
};
|
|
511
|
-
}
|
|
512
|
-
ViewUtils.GatherLegacyMapTiles = GatherLegacyMapTiles;
|
|
513
|
-
function GatherLegacyTerrainTile(params) {
|
|
514
|
-
var viewer = params.viewer;
|
|
515
|
-
var enabled = viewer.terrainProvider;
|
|
516
|
-
if (enabled === null || enabled === void 0 ? void 0 : enabled._bName) {
|
|
517
|
-
return {
|
|
518
|
-
terrain: enabled._bName
|
|
519
|
-
};
|
|
520
|
-
}
|
|
521
|
-
return {
|
|
522
|
-
terrain: "flatterrain"
|
|
523
|
-
};
|
|
524
|
-
}
|
|
525
|
-
ViewUtils.GatherLegacyTerrainTile = GatherLegacyTerrainTile;
|
|
526
|
-
function GatherMapTiles(params) {
|
|
527
|
-
var viewer = params.viewer;
|
|
528
|
-
var imagery = viewer.imageryLayers;
|
|
529
|
-
var tiles = [];
|
|
530
|
-
var _loop_1 = function (i) {
|
|
531
|
-
var provider = imagery.get(i);
|
|
532
|
-
if (provider._bMeta) {
|
|
533
|
-
var idCombo_1 = provider._bMeta.accountId + provider._bMeta.tilesetId;
|
|
534
|
-
if (!tiles.find(function (x) { return x.accountId + x.tilesetId === idCombo_1; })) {
|
|
535
|
-
tiles.push({
|
|
536
|
-
accountId: provider._bMeta.accountId,
|
|
537
|
-
tilesetId: provider._bMeta.tilesetId,
|
|
538
|
-
alpha: provider.alpha,
|
|
539
|
-
brightness: provider.brightness,
|
|
540
|
-
contrast: provider.contrast,
|
|
541
|
-
hue: provider.hue,
|
|
542
|
-
saturation: provider.saturation,
|
|
543
|
-
gamma: provider.gamma
|
|
544
|
-
});
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
};
|
|
548
|
-
for (var i = 0; i < imagery.length; i++) {
|
|
549
|
-
_loop_1(i);
|
|
550
|
-
}
|
|
551
|
-
return {
|
|
552
|
-
imagery: tiles
|
|
553
|
-
};
|
|
554
|
-
}
|
|
555
|
-
ViewUtils.GatherMapTiles = GatherMapTiles;
|
|
556
|
-
function GatherTerrainTile(params) {
|
|
557
|
-
var viewer = params.viewer;
|
|
558
|
-
var provider = viewer.terrainProvider;
|
|
559
|
-
if (provider === null || provider === void 0 ? void 0 : provider._bMeta) {
|
|
560
|
-
return {
|
|
561
|
-
terrain: {
|
|
562
|
-
accountId: provider._bMeta.accountId,
|
|
563
|
-
tilesetId: provider._bMeta.tilesetId,
|
|
564
|
-
}
|
|
565
|
-
};
|
|
566
|
-
}
|
|
567
|
-
else if (provider instanceof EllipsoidTerrainProvider) {
|
|
568
|
-
return {
|
|
569
|
-
terrain: {
|
|
570
|
-
tilesetId: ProjectViewTile.EDefaultTerrain.FlatTerrain,
|
|
571
|
-
accountId: null
|
|
572
|
-
}
|
|
573
|
-
};
|
|
574
|
-
}
|
|
575
|
-
return null;
|
|
576
|
-
}
|
|
577
|
-
ViewUtils.GatherTerrainTile = GatherTerrainTile;
|
|
578
|
-
function SetTerrainWireframeStatus(params) {
|
|
579
|
-
if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
|
|
580
|
-
var InspectorClass = CesiumInspector;
|
|
581
|
-
if (InspectorClass) {
|
|
582
|
-
var inspector = new InspectorClass(document.createElement("div"), params.viewer.scene);
|
|
583
|
-
inspector.container.style.display = "none";
|
|
584
|
-
params.viewer[CESIUM_INSPECTOR_KEY] = inspector;
|
|
585
|
-
params.viewer.scene.requestRender();
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
if (params.viewer[CESIUM_INSPECTOR_KEY]) {
|
|
589
|
-
params.viewer[CESIUM_INSPECTOR_KEY].viewModel.wireframe = params.status;
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
ViewUtils.SetTerrainWireframeStatus = SetTerrainWireframeStatus;
|
|
593
|
-
function GetTerrainWireframeStatus(params) {
|
|
594
|
-
var _a, _b;
|
|
595
|
-
if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
|
|
596
|
-
return false;
|
|
597
|
-
}
|
|
598
|
-
return (_b = (_a = params.viewer[CESIUM_INSPECTOR_KEY]) === null || _a === void 0 ? void 0 : _a.viewModel) === null || _b === void 0 ? void 0 : _b.wireframe;
|
|
599
|
-
}
|
|
600
|
-
ViewUtils.GetTerrainWireframeStatus = GetTerrainWireframeStatus;
|
|
601
|
-
/**
|
|
602
|
-
* Changes between perspective and orthographic view.
|
|
603
|
-
* When Cesium stops being bad at picking positions in 2d mode we'll use the flat earth mode instead.
|
|
604
|
-
* @param params
|
|
605
|
-
*/
|
|
606
|
-
function Set2dStatus(params) {
|
|
607
|
-
var viewer = params.viewer, is2d = params.status, moveCamera = params.moveCamera;
|
|
608
|
-
var curLens2d = viewer.camera.frustum instanceof OrthographicFrustum;
|
|
609
|
-
if (curLens2d && !is2d) {
|
|
610
|
-
viewer.camera.switchToPerspectiveFrustum();
|
|
611
|
-
viewer.scene.screenSpaceCameraController.enableTilt = true;
|
|
612
|
-
viewer.scene.requestRender();
|
|
613
|
-
}
|
|
614
|
-
else if (!curLens2d && is2d) {
|
|
615
|
-
viewer.camera.switchToOrthographicFrustum();
|
|
616
|
-
viewer.scene.screenSpaceCameraController.enableTilt = false;
|
|
617
|
-
if (moveCamera != false) {
|
|
618
|
-
try {
|
|
619
|
-
// Face camera downwards to make it look 2d.
|
|
620
|
-
// We want to try make it look at the center-point of the current view.
|
|
621
|
-
// If center cannot be calculated then we'll simply raise the camera and face it downwards.
|
|
622
|
-
var scene = viewer.scene;
|
|
623
|
-
var windowPosition = new Cartesian2(scene.canvas.clientWidth / 2, scene.canvas.clientHeight / 2);
|
|
624
|
-
var ray = viewer.camera.getPickRay(windowPosition);
|
|
625
|
-
var intersection = scene.globe.pick(ray, scene);
|
|
626
|
-
var center = void 0;
|
|
627
|
-
if (defined(intersection)) {
|
|
628
|
-
center = Cartographic.fromCartesian(intersection);
|
|
629
|
-
}
|
|
630
|
-
// Use current camera position if we can't calculate the center.
|
|
631
|
-
else {
|
|
632
|
-
center = Cartographic.fromCartesian(viewer.camera.position);
|
|
633
|
-
center.height = 0;
|
|
634
|
-
}
|
|
635
|
-
center.height = viewer.camera.positionCartographic.height + 100;
|
|
636
|
-
viewer.camera.setView({
|
|
637
|
-
destination: Cartographic.toCartesian(center),
|
|
638
|
-
orientation: {
|
|
639
|
-
heading: 0.0,
|
|
640
|
-
pitch: Math$1.toRadians(-90.0),
|
|
641
|
-
roll: 0.0
|
|
642
|
-
}
|
|
643
|
-
});
|
|
644
|
-
}
|
|
645
|
-
catch (e) {
|
|
646
|
-
console.error(e);
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
viewer.scene.requestRender();
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
ViewUtils.Set2dStatus = Set2dStatus;
|
|
653
|
-
function Get2dStatus(params) {
|
|
654
|
-
var viewer = params.viewer;
|
|
655
|
-
return viewer.camera.frustum instanceof OrthographicFrustum;
|
|
656
|
-
}
|
|
657
|
-
ViewUtils.Get2dStatus = Get2dStatus;
|
|
658
|
-
function SetLockedCameraStatus(params) {
|
|
659
|
-
var viewer = params.viewer, status = params.status;
|
|
660
|
-
var scene = viewer === null || viewer === void 0 ? void 0 : viewer.scene;
|
|
661
|
-
if (!scene) {
|
|
662
|
-
return;
|
|
663
|
-
}
|
|
664
|
-
if (status) {
|
|
665
|
-
scene.screenSpaceCameraController.enableInputs = false;
|
|
666
|
-
scene.screenSpaceCameraController.enableTranslate = false;
|
|
667
|
-
scene.screenSpaceCameraController.enableZoom = false;
|
|
668
|
-
scene.screenSpaceCameraController.enableRotate = false;
|
|
669
|
-
scene.screenSpaceCameraController.enableTilt = false;
|
|
670
|
-
}
|
|
671
|
-
else {
|
|
672
|
-
scene.screenSpaceCameraController.enableInputs = true;
|
|
673
|
-
scene.screenSpaceCameraController.enableTranslate = true;
|
|
674
|
-
scene.screenSpaceCameraController.enableZoom = true;
|
|
675
|
-
scene.screenSpaceCameraController.enableRotate = true;
|
|
676
|
-
if (!ViewUtils.Get2dStatus({ viewer: viewer })) {
|
|
677
|
-
scene.screenSpaceCameraController.enableTilt = true;
|
|
678
|
-
}
|
|
679
|
-
}
|
|
680
|
-
viewer.scene.requestRender();
|
|
681
|
-
}
|
|
682
|
-
ViewUtils.SetLockedCameraStatus = SetLockedCameraStatus;
|
|
683
|
-
function GetLockedCameraStatus(params) {
|
|
684
|
-
var _a;
|
|
685
|
-
var scene = (_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene;
|
|
686
|
-
if (!scene) {
|
|
687
|
-
return false;
|
|
688
|
-
}
|
|
689
|
-
return !scene.screenSpaceCameraController.enableTranslate;
|
|
690
|
-
}
|
|
691
|
-
ViewUtils.GetLockedCameraStatus = GetLockedCameraStatus;
|
|
692
|
-
})(ViewUtils || (ViewUtils = {}));
|
|
693
|
-
|
|
694
487
|
/**
|
|
695
488
|
* Returns if a given visual can be styled by this utility.
|
|
696
489
|
* @param viewer
|
|
@@ -1311,6 +1104,81 @@ function GetValue(viewer, obj) {
|
|
|
1311
1104
|
}
|
|
1312
1105
|
return obj;
|
|
1313
1106
|
}
|
|
1107
|
+
/**
|
|
1108
|
+
* Returns location information from a given tileset feature.
|
|
1109
|
+
* This works well with OSM.
|
|
1110
|
+
* @param feature
|
|
1111
|
+
* @returns
|
|
1112
|
+
*/
|
|
1113
|
+
var getLocationFromFeature = function (feature) {
|
|
1114
|
+
var _a;
|
|
1115
|
+
var prepareLatitude = function (propName, value) {
|
|
1116
|
+
value = +value;
|
|
1117
|
+
// Check to see if the lat is in valid degrees, if not, try convert from radians.
|
|
1118
|
+
if (value < -90 || value > 90) {
|
|
1119
|
+
value = Math$1.toDegrees(value);
|
|
1120
|
+
}
|
|
1121
|
+
// If the value is really small we'll assume it's in radians.
|
|
1122
|
+
// "cesium#blah" properties are always in degrees. No need to check.
|
|
1123
|
+
if (value < 0.9 && !propName.startsWith("cesium#")) {
|
|
1124
|
+
value = Math$1.toDegrees(value);
|
|
1125
|
+
}
|
|
1126
|
+
return value;
|
|
1127
|
+
};
|
|
1128
|
+
var prepareLongitude = function (propName, value) {
|
|
1129
|
+
value = +value;
|
|
1130
|
+
// Check to see if the lon is in valid degrees, if not, try convert from radians.
|
|
1131
|
+
if (value < -180 || value > 180) {
|
|
1132
|
+
value = Math$1.toDegrees(value);
|
|
1133
|
+
}
|
|
1134
|
+
// If the value is really small we'll assume it's in radians.
|
|
1135
|
+
// "cesium#blah" properties are always in degrees. No need to check.
|
|
1136
|
+
if (value < 0.9 && !propName.startsWith("cesium#")) {
|
|
1137
|
+
value = Math$1.toDegrees(value);
|
|
1138
|
+
}
|
|
1139
|
+
return value;
|
|
1140
|
+
};
|
|
1141
|
+
var result = {
|
|
1142
|
+
location: {
|
|
1143
|
+
latitude: null,
|
|
1144
|
+
longitude: null,
|
|
1145
|
+
altitude: 0
|
|
1146
|
+
},
|
|
1147
|
+
isClamped: true,
|
|
1148
|
+
radius: null
|
|
1149
|
+
};
|
|
1150
|
+
// 'getPropertyIds' = new version of Cesium, 'getPropertyNames' = old version.
|
|
1151
|
+
var featureAny = feature;
|
|
1152
|
+
var propertyNames = featureAny.getPropertyNames ? featureAny.getPropertyNames() : (_a = featureAny.getPropertyIds) === null || _a === void 0 ? void 0 : _a.call(featureAny);
|
|
1153
|
+
propertyNames = [].concat(propertyNames);
|
|
1154
|
+
for (var i = 0; i < propertyNames.length; i++) {
|
|
1155
|
+
var propName = propertyNames[i];
|
|
1156
|
+
var propLower = propName.toLowerCase();
|
|
1157
|
+
if (propLower.includes("latitude")) {
|
|
1158
|
+
result.location.latitude = prepareLatitude(propName, feature.getProperty(propName));
|
|
1159
|
+
continue;
|
|
1160
|
+
}
|
|
1161
|
+
if (propLower.includes("longitude")) {
|
|
1162
|
+
result.location.longitude = prepareLongitude(propName, feature.getProperty(propName));
|
|
1163
|
+
continue;
|
|
1164
|
+
}
|
|
1165
|
+
if (propLower.includes("height")) {
|
|
1166
|
+
result.radius = +feature.getProperty(propName);
|
|
1167
|
+
continue;
|
|
1168
|
+
}
|
|
1169
|
+
if (propLower.includes("terrain")) {
|
|
1170
|
+
result.location.altitude = +feature.getProperty(propName);
|
|
1171
|
+
if (!result.location.altitude) {
|
|
1172
|
+
result.location.altitude = 0;
|
|
1173
|
+
}
|
|
1174
|
+
continue;
|
|
1175
|
+
}
|
|
1176
|
+
}
|
|
1177
|
+
if (result.location.latitude == null || result.location.longitude == null) {
|
|
1178
|
+
return null;
|
|
1179
|
+
}
|
|
1180
|
+
return result;
|
|
1181
|
+
};
|
|
1314
1182
|
var EntityUtils;
|
|
1315
1183
|
(function (EntityUtils) {
|
|
1316
1184
|
/**
|
|
@@ -1320,12 +1188,11 @@ var EntityUtils;
|
|
|
1320
1188
|
* @param params
|
|
1321
1189
|
*/
|
|
1322
1190
|
function GetLocation(params) {
|
|
1323
|
-
var _a;
|
|
1324
1191
|
return __awaiter(this, void 0, void 0, function () {
|
|
1325
|
-
var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples,
|
|
1192
|
+
var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, data, spheres, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, carto, i, pos, radius, sphere, allPointSphere, rectSphere, combinedSphere;
|
|
1326
1193
|
var _this = this;
|
|
1327
|
-
return __generator(this, function (
|
|
1328
|
-
switch (
|
|
1194
|
+
return __generator(this, function (_a) {
|
|
1195
|
+
switch (_a.label) {
|
|
1329
1196
|
case 0:
|
|
1330
1197
|
api = params.api, viewer = params.viewer, samples = params.samples, visualRegister = params.visualRegister, minimumAlt = params.minimumAlt, paddingAlt = params.paddingAlt;
|
|
1331
1198
|
if (!paddingAlt) {
|
|
@@ -1338,10 +1205,6 @@ var EntityUtils;
|
|
|
1338
1205
|
apiCalls = 0;
|
|
1339
1206
|
MAX_VALID_SAMPLES = 20;
|
|
1340
1207
|
validSamples = 0;
|
|
1341
|
-
MIN_RECT_DIAGONAL_LENGTH = isNaN(minimumAlt) || minimumAlt == null ? 0 : minimumAlt * 10;
|
|
1342
|
-
if (MIN_RECT_DIAGONAL_LENGTH < 1500) {
|
|
1343
|
-
MIN_RECT_DIAGONAL_LENGTH = 1500;
|
|
1344
|
-
}
|
|
1345
1208
|
data = {
|
|
1346
1209
|
pos3d: null,
|
|
1347
1210
|
rectangle: null,
|
|
@@ -1439,7 +1302,7 @@ var EntityUtils;
|
|
|
1439
1302
|
case 0:
|
|
1440
1303
|
entityId = sample.entityId, entity = sample.entity, tileset = sample.tileset, tilesetId = sample.tilesetId;
|
|
1441
1304
|
evaluateRendered = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1442
|
-
var rego, posses,
|
|
1305
|
+
var rego, posses, parts, i, part, visualHeightRef, hierarchy, hPosses, hPossesSample, step, i_1, pPosses, pPossesSample, step, i_2, pPosses, pPossesSample, step, i_3, pos3d_1, toAdjust, modelExt, sphere, data_1, pos3d_2, toAdjust, sphere;
|
|
1443
1306
|
return __generator(this, function (_a) {
|
|
1444
1307
|
switch (_a.label) {
|
|
1445
1308
|
case 0:
|
|
@@ -1447,102 +1310,130 @@ var EntityUtils;
|
|
|
1447
1310
|
entityId: sample.entityId,
|
|
1448
1311
|
}) : null;
|
|
1449
1312
|
posses = [];
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
return [3 /*break*/, 12];
|
|
1313
|
+
parts = GatherEntity({
|
|
1314
|
+
entity: rego === null || rego === void 0 ? void 0 : rego.visual,
|
|
1315
|
+
});
|
|
1316
|
+
i = 0;
|
|
1317
|
+
_a.label = 1;
|
|
1456
1318
|
case 1:
|
|
1457
|
-
if (!
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1319
|
+
if (!(i < parts.length)) return [3 /*break*/, 19];
|
|
1320
|
+
part = parts[i];
|
|
1321
|
+
if (!(part instanceof Entity)) return [3 /*break*/, 16];
|
|
1322
|
+
visualHeightRef = HeightReference.RELATIVE_TO_GROUND;
|
|
1323
|
+
if (!part.model) return [3 /*break*/, 2];
|
|
1324
|
+
visualHeightRef = GetValue(viewer, part.model.heightReference);
|
|
1325
|
+
return [3 /*break*/, 13];
|
|
1326
|
+
case 2:
|
|
1327
|
+
if (!part.polygon) return [3 /*break*/, 5];
|
|
1328
|
+
visualHeightRef = GetValue(viewer, part.polygon.heightReference);
|
|
1329
|
+
hierarchy = GetValue(viewer, part.polygon.hierarchy);
|
|
1330
|
+
if (!(hierarchy === null || hierarchy === void 0 ? void 0 : hierarchy.positions)) return [3 /*break*/, 4];
|
|
1461
1331
|
hPosses = hierarchy.positions.map(function (x) { return x.clone ? x.clone() : x; });
|
|
1462
1332
|
hPossesSample = [];
|
|
1463
1333
|
step = Math.max(1, Math.floor(hPosses.length / 5));
|
|
1464
|
-
for (
|
|
1465
|
-
hPossesSample.push(hPosses[
|
|
1334
|
+
for (i_1 = 0; i_1 < hPosses.length; i_1 += step) {
|
|
1335
|
+
hPossesSample.push(hPosses[i_1]);
|
|
1466
1336
|
}
|
|
1467
1337
|
return [4 /*yield*/, ensureHeightRefs(hPossesSample, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
|
|
1468
|
-
case
|
|
1338
|
+
case 3:
|
|
1469
1339
|
_a.sent();
|
|
1470
1340
|
posses = posses.concat(hPossesSample);
|
|
1471
|
-
_a.label =
|
|
1472
|
-
case
|
|
1473
|
-
case
|
|
1474
|
-
if (!
|
|
1475
|
-
visualHeightRef = GetValue(viewer,
|
|
1341
|
+
_a.label = 4;
|
|
1342
|
+
case 4: return [3 /*break*/, 13];
|
|
1343
|
+
case 5:
|
|
1344
|
+
if (!part.polyline) return [3 /*break*/, 8];
|
|
1345
|
+
visualHeightRef = GetValue(viewer, part.polyline.clampToGround) ?
|
|
1476
1346
|
HeightReference.CLAMP_TO_GROUND : HeightReference.NONE;
|
|
1477
|
-
pPosses = GetValue(viewer,
|
|
1478
|
-
if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/,
|
|
1347
|
+
pPosses = GetValue(viewer, part.polyline.positions);
|
|
1348
|
+
if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/, 7];
|
|
1479
1349
|
// Grab 5 positions from the polyline at varied indexes.
|
|
1480
1350
|
pPosses = pPosses.map(function (x) { return x.clone ? x.clone() : x; });
|
|
1481
1351
|
pPossesSample = [];
|
|
1482
1352
|
step = Math.max(1, Math.floor(pPosses.length / 5));
|
|
1483
|
-
for (
|
|
1484
|
-
pPossesSample.push(pPosses[
|
|
1353
|
+
for (i_2 = 0; i_2 < pPosses.length; i_2 += step) {
|
|
1354
|
+
pPossesSample.push(pPosses[i_2]);
|
|
1485
1355
|
}
|
|
1486
1356
|
return [4 /*yield*/, ensureHeightRefs(pPossesSample, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
|
|
1487
|
-
case
|
|
1357
|
+
case 6:
|
|
1488
1358
|
_a.sent();
|
|
1489
1359
|
posses = posses.concat(pPossesSample);
|
|
1490
|
-
_a.label =
|
|
1491
|
-
case
|
|
1492
|
-
case 7:
|
|
1493
|
-
if (!visual.billboard) return [3 /*break*/, 8];
|
|
1494
|
-
visualHeightRef = GetValue(viewer, visual.billboard.heightReference);
|
|
1495
|
-
return [3 /*break*/, 12];
|
|
1360
|
+
_a.label = 7;
|
|
1361
|
+
case 7: return [3 /*break*/, 13];
|
|
1496
1362
|
case 8:
|
|
1497
|
-
if (!
|
|
1498
|
-
visualHeightRef = GetValue(viewer,
|
|
1499
|
-
|
|
1500
|
-
|
|
1363
|
+
if (!part.billboard) return [3 /*break*/, 9];
|
|
1364
|
+
visualHeightRef = GetValue(viewer, part.billboard.heightReference);
|
|
1365
|
+
return [3 /*break*/, 13];
|
|
1366
|
+
case 9:
|
|
1367
|
+
if (!part.corridor) return [3 /*break*/, 12];
|
|
1368
|
+
visualHeightRef = GetValue(viewer, part.corridor.heightReference);
|
|
1369
|
+
pPosses = GetValue(viewer, part.corridor.positions);
|
|
1370
|
+
if (!(pPosses === null || pPosses === void 0 ? void 0 : pPosses.length)) return [3 /*break*/, 11];
|
|
1501
1371
|
// Grab 5 positions from the corridor at varied indexes.
|
|
1502
1372
|
pPosses = pPosses.map(function (x) { return x.clone ? x.clone() : x; });
|
|
1503
1373
|
pPossesSample = [];
|
|
1504
1374
|
step = Math.max(1, Math.floor(pPosses.length / 5));
|
|
1505
|
-
for (
|
|
1506
|
-
pPossesSample.push(pPosses[
|
|
1375
|
+
for (i_3 = 0; i_3 < pPosses.length; i_3 += step) {
|
|
1376
|
+
pPossesSample.push(pPosses[i_3]);
|
|
1507
1377
|
}
|
|
1508
1378
|
return [4 /*yield*/, ensureHeightRefs(pPossesSample, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
|
|
1509
|
-
case
|
|
1379
|
+
case 10:
|
|
1510
1380
|
_a.sent();
|
|
1511
1381
|
posses = posses.concat(pPossesSample);
|
|
1512
|
-
_a.label =
|
|
1513
|
-
case
|
|
1514
|
-
case
|
|
1515
|
-
if (
|
|
1516
|
-
visualHeightRef = GetValue(viewer,
|
|
1382
|
+
_a.label = 11;
|
|
1383
|
+
case 11: return [3 /*break*/, 13];
|
|
1384
|
+
case 12:
|
|
1385
|
+
if (part.ellipse) {
|
|
1386
|
+
visualHeightRef = GetValue(viewer, part.ellipse.heightReference);
|
|
1517
1387
|
}
|
|
1518
|
-
else if (
|
|
1519
|
-
visualHeightRef = GetValue(viewer,
|
|
1388
|
+
else if (part.point) {
|
|
1389
|
+
visualHeightRef = GetValue(viewer, part.point.heightReference);
|
|
1520
1390
|
}
|
|
1521
|
-
_a.label =
|
|
1522
|
-
case
|
|
1523
|
-
|
|
1524
|
-
|
|
1391
|
+
_a.label = 13;
|
|
1392
|
+
case 13:
|
|
1393
|
+
if (!(part.point || part.model || part.billboard || part.ellipse)) return [3 /*break*/, 15];
|
|
1394
|
+
pos3d_1 = GetValue(viewer, part.position);
|
|
1395
|
+
if (!(pos3d_1 === null || pos3d_1 === void 0 ? void 0 : pos3d_1.x)) return [3 /*break*/, 15];
|
|
1525
1396
|
toAdjust = [pos3d_1];
|
|
1526
1397
|
return [4 /*yield*/, ensureHeightRefs(toAdjust, __assign(__assign({}, sample), { heightRef: visualHeightRef }))];
|
|
1527
|
-
case
|
|
1398
|
+
case 14:
|
|
1528
1399
|
_a.sent();
|
|
1529
1400
|
pos3d_1 = toAdjust[0];
|
|
1530
1401
|
posses.push(pos3d_1);
|
|
1531
|
-
if (
|
|
1532
|
-
modelExt =
|
|
1402
|
+
if (part.model) {
|
|
1403
|
+
modelExt = part.model;
|
|
1533
1404
|
if (modelExt._radius && modelExt._radius > -1) {
|
|
1534
1405
|
sphere = BoundingSphere.fromPoints([pos3d_1]);
|
|
1535
1406
|
sphere.radius = modelExt._radius;
|
|
1536
1407
|
spheres.push(sphere);
|
|
1537
1408
|
}
|
|
1538
1409
|
}
|
|
1539
|
-
_a.label =
|
|
1540
|
-
case
|
|
1410
|
+
_a.label = 15;
|
|
1411
|
+
case 15: return [3 /*break*/, 18];
|
|
1412
|
+
case 16:
|
|
1413
|
+
if (!(part instanceof Cesium3DTileFeature)) return [3 /*break*/, 18];
|
|
1414
|
+
data_1 = getLocationFromFeature(part);
|
|
1415
|
+
if (!(data_1 != null)) return [3 /*break*/, 18];
|
|
1416
|
+
pos3d_2 = Cartesian3.fromDegrees(data_1.location.longitude, data_1.location.latitude, data_1.location.altitude);
|
|
1417
|
+
toAdjust = [pos3d_2];
|
|
1418
|
+
return [4 /*yield*/, ensureHeightRefs(toAdjust, __assign(__assign({}, sample), { heightRef: data_1.isClamped ? HeightReference.CLAMP_TO_GROUND : HeightReference.NONE }))];
|
|
1419
|
+
case 17:
|
|
1420
|
+
_a.sent();
|
|
1421
|
+
pos3d_2 = toAdjust[0];
|
|
1422
|
+
posses.push(pos3d_2);
|
|
1423
|
+
if (data_1.radius != null && !isNaN(data_1.radius)) {
|
|
1424
|
+
sphere = new BoundingSphere(pos3d_2, data_1.radius);
|
|
1425
|
+
spheres.push(sphere);
|
|
1426
|
+
}
|
|
1427
|
+
_a.label = 18;
|
|
1428
|
+
case 18:
|
|
1429
|
+
i++;
|
|
1430
|
+
return [3 /*break*/, 1];
|
|
1431
|
+
case 19: return [2 /*return*/, posses];
|
|
1541
1432
|
}
|
|
1542
1433
|
});
|
|
1543
1434
|
}); };
|
|
1544
1435
|
evaluateRecord = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1545
|
-
var posses, location_1, latitude, longitude,
|
|
1436
|
+
var posses, location_1, latitude, longitude, pos3d_3, pointStr, points, point, pos3d_4, lineStr, points, pPosses, pRings, boundary, points, pPosses, point, bPosses;
|
|
1546
1437
|
return __generator(this, function (_a) {
|
|
1547
1438
|
switch (_a.label) {
|
|
1548
1439
|
case 0:
|
|
@@ -1553,8 +1444,8 @@ var EntityUtils;
|
|
|
1553
1444
|
longitude = EnsureNumber(location_1.longitude);
|
|
1554
1445
|
// Disallowing exact 0.
|
|
1555
1446
|
if (latitude || longitude) {
|
|
1556
|
-
|
|
1557
|
-
posses.push(
|
|
1447
|
+
pos3d_3 = Cartesian3.fromDegrees(longitude, latitude, EnsureNumber(location_1.altitude));
|
|
1448
|
+
posses.push(pos3d_3);
|
|
1558
1449
|
}
|
|
1559
1450
|
}
|
|
1560
1451
|
if (!(entity.geometry && typeof entity.geometry == "object")) return [3 /*break*/, 4];
|
|
@@ -1563,8 +1454,8 @@ var EntityUtils;
|
|
|
1563
1454
|
points = Geometry.ParsePoints(pointStr);
|
|
1564
1455
|
point = points.length > 0 ? points[0] : null;
|
|
1565
1456
|
if (point && Carto.ValidateCarto(point)) {
|
|
1566
|
-
|
|
1567
|
-
posses.push(
|
|
1457
|
+
pos3d_4 = Cartesian3.fromDegrees(EnsureNumber(point.longitude), EnsureNumber(point.latitude), EnsureNumber(point.altitude));
|
|
1458
|
+
posses.push(pos3d_4);
|
|
1568
1459
|
}
|
|
1569
1460
|
}
|
|
1570
1461
|
lineStr = entity.geometry.LineString;
|
|
@@ -1755,13 +1646,13 @@ var EntityUtils;
|
|
|
1755
1646
|
}); };
|
|
1756
1647
|
allPosses = [];
|
|
1757
1648
|
i = 0;
|
|
1758
|
-
|
|
1649
|
+
_a.label = 1;
|
|
1759
1650
|
case 1:
|
|
1760
1651
|
if (!(i < samples.length)) return [3 /*break*/, 4];
|
|
1761
1652
|
sample = samples[i];
|
|
1762
1653
|
return [4 /*yield*/, getEntityPositions(sample)];
|
|
1763
1654
|
case 2:
|
|
1764
|
-
samplePosses =
|
|
1655
|
+
samplePosses = _a.sent();
|
|
1765
1656
|
if (samplePosses === null || samplePosses === void 0 ? void 0 : samplePosses.length) {
|
|
1766
1657
|
valid = !(allPosses === null || allPosses === void 0 ? void 0 : allPosses.length);
|
|
1767
1658
|
if (!valid) {
|
|
@@ -1788,7 +1679,7 @@ var EntityUtils;
|
|
|
1788
1679
|
}
|
|
1789
1680
|
}
|
|
1790
1681
|
}
|
|
1791
|
-
|
|
1682
|
+
_a.label = 3;
|
|
1792
1683
|
case 3:
|
|
1793
1684
|
i++;
|
|
1794
1685
|
return [3 /*break*/, 1];
|
|
@@ -1802,25 +1693,29 @@ var EntityUtils;
|
|
|
1802
1693
|
rect.west -= marginX;
|
|
1803
1694
|
rect.north += marginY;
|
|
1804
1695
|
rect.south -= marginY;
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1696
|
+
data.rectangle = rect;
|
|
1697
|
+
carto = Rectangle.center(rect);
|
|
1698
|
+
carto.height = 0;
|
|
1699
|
+
for (i = 0; i < allPosses.length; i++) {
|
|
1700
|
+
pos = allPosses[i];
|
|
1701
|
+
carto.height += Cartographic.fromCartesian(pos).height;
|
|
1702
|
+
}
|
|
1703
|
+
if (carto.height != 0) {
|
|
1704
|
+
carto.height /= allPosses.length;
|
|
1811
1705
|
}
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
if (diagonalLen >= MIN_RECT_DIAGONAL_LENGTH && allPosses.length >= MIN_POSSES_LEN) {
|
|
1817
|
-
data.rectangle = rect;
|
|
1706
|
+
data.pos3d = Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height);
|
|
1707
|
+
radius = Cartesian3.distance(Cartesian3.fromRadians(rect.west, rect.north), Cartesian3.fromRadians(rect.east, rect.south));
|
|
1708
|
+
if (radius != 0) {
|
|
1709
|
+
radius /= 2;
|
|
1818
1710
|
}
|
|
1711
|
+
sphere = new BoundingSphere(data.pos3d, radius);
|
|
1712
|
+
spheres.push(sphere);
|
|
1713
|
+
data.sphere = sphere;
|
|
1819
1714
|
}
|
|
1820
1715
|
else if (allPosses.length == 1) {
|
|
1821
1716
|
data.pos3d = allPosses[0];
|
|
1822
1717
|
}
|
|
1823
|
-
if (spheres.length) {
|
|
1718
|
+
if ((data.rectangle && spheres.length > 1) || (!data.rectangle && spheres.length > 0)) {
|
|
1824
1719
|
allPointSphere = BoundingSphere.fromPoints(allPosses);
|
|
1825
1720
|
spheres.push(allPointSphere);
|
|
1826
1721
|
if (data.rectangle) {
|
|
@@ -1852,9 +1747,9 @@ var EntityUtils;
|
|
|
1852
1747
|
if ((rego === null || rego === void 0 ? void 0 : rego.visual) instanceof Entity) {
|
|
1853
1748
|
var visual = rego.visual;
|
|
1854
1749
|
if (visual.position) {
|
|
1855
|
-
var
|
|
1750
|
+
var pos3d_5 = GetValue(viewer, visual.position);
|
|
1856
1751
|
// Fix height reference.
|
|
1857
|
-
if (
|
|
1752
|
+
if (pos3d_5 === null || pos3d_5 === void 0 ? void 0 : pos3d_5.x) {
|
|
1858
1753
|
var visualHeightRef = HeightReference.RELATIVE_TO_GROUND;
|
|
1859
1754
|
if (visual.model) {
|
|
1860
1755
|
visualHeightRef = GetValue(viewer, visual.model.heightReference);
|
|
@@ -1881,7 +1776,7 @@ var EntityUtils;
|
|
|
1881
1776
|
return DrawingUtils.EnsurePosHeight({
|
|
1882
1777
|
desiredHeightRef: params.returnHeightRef,
|
|
1883
1778
|
heightRef: visualHeightRef,
|
|
1884
|
-
pos3d:
|
|
1779
|
+
pos3d: pos3d_5,
|
|
1885
1780
|
viewer: viewer
|
|
1886
1781
|
});
|
|
1887
1782
|
}
|
|
@@ -2544,6 +2439,213 @@ var RenderManager;
|
|
|
2544
2439
|
RenderManager.GetZoomMinMax = GetZoomMinMax;
|
|
2545
2440
|
})(RenderManager || (RenderManager = {}));
|
|
2546
2441
|
|
|
2442
|
+
var CESIUM_INSPECTOR_KEY = "_nextspace_inspector";
|
|
2443
|
+
var ViewUtils;
|
|
2444
|
+
(function (ViewUtils) {
|
|
2445
|
+
function GatherLegacyMapTiles(params) {
|
|
2446
|
+
var viewer = params.viewer;
|
|
2447
|
+
var collection = viewer.imageryLayers;
|
|
2448
|
+
var tiles = [];
|
|
2449
|
+
for (var i = 0; i < collection.length; i++) {
|
|
2450
|
+
var layer = collection.get(i);
|
|
2451
|
+
if (layer._bName) {
|
|
2452
|
+
tiles.push({
|
|
2453
|
+
alpha: layer.alpha,
|
|
2454
|
+
brightness: layer.brightness,
|
|
2455
|
+
contrast: layer.contrast,
|
|
2456
|
+
hue: layer.hue,
|
|
2457
|
+
saturation: layer.saturation,
|
|
2458
|
+
gamma: layer.gamma,
|
|
2459
|
+
title: layer._bName,
|
|
2460
|
+
});
|
|
2461
|
+
}
|
|
2462
|
+
}
|
|
2463
|
+
return {
|
|
2464
|
+
imagery: tiles.reverse()
|
|
2465
|
+
};
|
|
2466
|
+
}
|
|
2467
|
+
ViewUtils.GatherLegacyMapTiles = GatherLegacyMapTiles;
|
|
2468
|
+
function GatherLegacyTerrainTile(params) {
|
|
2469
|
+
var viewer = params.viewer;
|
|
2470
|
+
var enabled = viewer.terrainProvider;
|
|
2471
|
+
if (enabled === null || enabled === void 0 ? void 0 : enabled._bName) {
|
|
2472
|
+
return {
|
|
2473
|
+
terrain: enabled._bName
|
|
2474
|
+
};
|
|
2475
|
+
}
|
|
2476
|
+
return {
|
|
2477
|
+
terrain: "flatterrain"
|
|
2478
|
+
};
|
|
2479
|
+
}
|
|
2480
|
+
ViewUtils.GatherLegacyTerrainTile = GatherLegacyTerrainTile;
|
|
2481
|
+
function GatherMapTiles(params) {
|
|
2482
|
+
var viewer = params.viewer;
|
|
2483
|
+
var imagery = viewer.imageryLayers;
|
|
2484
|
+
var tiles = [];
|
|
2485
|
+
var _loop_1 = function (i) {
|
|
2486
|
+
var provider = imagery.get(i);
|
|
2487
|
+
if (provider._bMeta) {
|
|
2488
|
+
var idCombo_1 = provider._bMeta.accountId + provider._bMeta.tilesetId;
|
|
2489
|
+
if (!tiles.find(function (x) { return x.accountId + x.tilesetId === idCombo_1; })) {
|
|
2490
|
+
tiles.push({
|
|
2491
|
+
accountId: provider._bMeta.accountId,
|
|
2492
|
+
tilesetId: provider._bMeta.tilesetId,
|
|
2493
|
+
alpha: provider.alpha,
|
|
2494
|
+
brightness: provider.brightness,
|
|
2495
|
+
contrast: provider.contrast,
|
|
2496
|
+
hue: provider.hue,
|
|
2497
|
+
saturation: provider.saturation,
|
|
2498
|
+
gamma: provider.gamma
|
|
2499
|
+
});
|
|
2500
|
+
}
|
|
2501
|
+
}
|
|
2502
|
+
};
|
|
2503
|
+
for (var i = 0; i < imagery.length; i++) {
|
|
2504
|
+
_loop_1(i);
|
|
2505
|
+
}
|
|
2506
|
+
return {
|
|
2507
|
+
imagery: tiles
|
|
2508
|
+
};
|
|
2509
|
+
}
|
|
2510
|
+
ViewUtils.GatherMapTiles = GatherMapTiles;
|
|
2511
|
+
function GatherTerrainTile(params) {
|
|
2512
|
+
var viewer = params.viewer;
|
|
2513
|
+
var provider = viewer.terrainProvider;
|
|
2514
|
+
if (provider === null || provider === void 0 ? void 0 : provider._bMeta) {
|
|
2515
|
+
return {
|
|
2516
|
+
terrain: {
|
|
2517
|
+
accountId: provider._bMeta.accountId,
|
|
2518
|
+
tilesetId: provider._bMeta.tilesetId,
|
|
2519
|
+
}
|
|
2520
|
+
};
|
|
2521
|
+
}
|
|
2522
|
+
else if (provider instanceof EllipsoidTerrainProvider) {
|
|
2523
|
+
return {
|
|
2524
|
+
terrain: {
|
|
2525
|
+
tilesetId: ProjectViewTile.EDefaultTerrain.FlatTerrain,
|
|
2526
|
+
accountId: null
|
|
2527
|
+
}
|
|
2528
|
+
};
|
|
2529
|
+
}
|
|
2530
|
+
return null;
|
|
2531
|
+
}
|
|
2532
|
+
ViewUtils.GatherTerrainTile = GatherTerrainTile;
|
|
2533
|
+
function SetTerrainWireframeStatus(params) {
|
|
2534
|
+
if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
|
|
2535
|
+
var InspectorClass = CesiumInspector;
|
|
2536
|
+
if (InspectorClass) {
|
|
2537
|
+
var inspector = new InspectorClass(document.createElement("div"), params.viewer.scene);
|
|
2538
|
+
inspector.container.style.display = "none";
|
|
2539
|
+
params.viewer[CESIUM_INSPECTOR_KEY] = inspector;
|
|
2540
|
+
params.viewer.scene.requestRender();
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
if (params.viewer[CESIUM_INSPECTOR_KEY]) {
|
|
2544
|
+
params.viewer[CESIUM_INSPECTOR_KEY].viewModel.wireframe = params.status;
|
|
2545
|
+
}
|
|
2546
|
+
}
|
|
2547
|
+
ViewUtils.SetTerrainWireframeStatus = SetTerrainWireframeStatus;
|
|
2548
|
+
function GetTerrainWireframeStatus(params) {
|
|
2549
|
+
var _a, _b;
|
|
2550
|
+
if (!params.viewer[CESIUM_INSPECTOR_KEY]) {
|
|
2551
|
+
return false;
|
|
2552
|
+
}
|
|
2553
|
+
return (_b = (_a = params.viewer[CESIUM_INSPECTOR_KEY]) === null || _a === void 0 ? void 0 : _a.viewModel) === null || _b === void 0 ? void 0 : _b.wireframe;
|
|
2554
|
+
}
|
|
2555
|
+
ViewUtils.GetTerrainWireframeStatus = GetTerrainWireframeStatus;
|
|
2556
|
+
/**
|
|
2557
|
+
* Changes between perspective and orthographic view.
|
|
2558
|
+
* When Cesium stops being bad at picking positions in 2d mode we'll use the flat earth mode instead.
|
|
2559
|
+
* @param params
|
|
2560
|
+
*/
|
|
2561
|
+
function Set2dStatus(params) {
|
|
2562
|
+
var viewer = params.viewer, is2d = params.status, moveCamera = params.moveCamera;
|
|
2563
|
+
var curLens2d = viewer.camera.frustum instanceof OrthographicFrustum;
|
|
2564
|
+
if (curLens2d && !is2d) {
|
|
2565
|
+
viewer.camera.switchToPerspectiveFrustum();
|
|
2566
|
+
viewer.scene.screenSpaceCameraController.enableTilt = true;
|
|
2567
|
+
viewer.scene.requestRender();
|
|
2568
|
+
}
|
|
2569
|
+
else if (!curLens2d && is2d) {
|
|
2570
|
+
viewer.camera.switchToOrthographicFrustum();
|
|
2571
|
+
viewer.scene.screenSpaceCameraController.enableTilt = false;
|
|
2572
|
+
if (moveCamera != false) {
|
|
2573
|
+
try {
|
|
2574
|
+
// Face camera downwards to make it look 2d.
|
|
2575
|
+
// We want to try make it look at the center-point of the current view.
|
|
2576
|
+
// If center cannot be calculated then we'll simply raise the camera and face it downwards.
|
|
2577
|
+
var scene = viewer.scene;
|
|
2578
|
+
var windowPosition = new Cartesian2(scene.canvas.clientWidth / 2, scene.canvas.clientHeight / 2);
|
|
2579
|
+
var ray = viewer.camera.getPickRay(windowPosition);
|
|
2580
|
+
var intersection = scene.globe.pick(ray, scene);
|
|
2581
|
+
var center = void 0;
|
|
2582
|
+
if (defined(intersection)) {
|
|
2583
|
+
center = Cartographic.fromCartesian(intersection);
|
|
2584
|
+
}
|
|
2585
|
+
// Use current camera position if we can't calculate the center.
|
|
2586
|
+
else {
|
|
2587
|
+
center = Cartographic.fromCartesian(viewer.camera.position);
|
|
2588
|
+
center.height = 0;
|
|
2589
|
+
}
|
|
2590
|
+
center.height = viewer.camera.positionCartographic.height + 100;
|
|
2591
|
+
viewer.camera.setView({
|
|
2592
|
+
destination: Cartographic.toCartesian(center),
|
|
2593
|
+
orientation: {
|
|
2594
|
+
heading: 0.0,
|
|
2595
|
+
pitch: Math$1.toRadians(-90.0),
|
|
2596
|
+
roll: 0.0
|
|
2597
|
+
}
|
|
2598
|
+
});
|
|
2599
|
+
}
|
|
2600
|
+
catch (e) {
|
|
2601
|
+
console.error(e);
|
|
2602
|
+
}
|
|
2603
|
+
}
|
|
2604
|
+
viewer.scene.requestRender();
|
|
2605
|
+
}
|
|
2606
|
+
}
|
|
2607
|
+
ViewUtils.Set2dStatus = Set2dStatus;
|
|
2608
|
+
function Get2dStatus(params) {
|
|
2609
|
+
var viewer = params.viewer;
|
|
2610
|
+
return viewer.camera.frustum instanceof OrthographicFrustum;
|
|
2611
|
+
}
|
|
2612
|
+
ViewUtils.Get2dStatus = Get2dStatus;
|
|
2613
|
+
function SetLockedCameraStatus(params) {
|
|
2614
|
+
var viewer = params.viewer, status = params.status;
|
|
2615
|
+
var scene = viewer === null || viewer === void 0 ? void 0 : viewer.scene;
|
|
2616
|
+
if (!scene) {
|
|
2617
|
+
return;
|
|
2618
|
+
}
|
|
2619
|
+
if (status) {
|
|
2620
|
+
scene.screenSpaceCameraController.enableInputs = false;
|
|
2621
|
+
scene.screenSpaceCameraController.enableTranslate = false;
|
|
2622
|
+
scene.screenSpaceCameraController.enableZoom = false;
|
|
2623
|
+
scene.screenSpaceCameraController.enableRotate = false;
|
|
2624
|
+
scene.screenSpaceCameraController.enableTilt = false;
|
|
2625
|
+
}
|
|
2626
|
+
else {
|
|
2627
|
+
scene.screenSpaceCameraController.enableInputs = true;
|
|
2628
|
+
scene.screenSpaceCameraController.enableTranslate = true;
|
|
2629
|
+
scene.screenSpaceCameraController.enableZoom = true;
|
|
2630
|
+
scene.screenSpaceCameraController.enableRotate = true;
|
|
2631
|
+
if (!ViewUtils.Get2dStatus({ viewer: viewer })) {
|
|
2632
|
+
scene.screenSpaceCameraController.enableTilt = true;
|
|
2633
|
+
}
|
|
2634
|
+
}
|
|
2635
|
+
viewer.scene.requestRender();
|
|
2636
|
+
}
|
|
2637
|
+
ViewUtils.SetLockedCameraStatus = SetLockedCameraStatus;
|
|
2638
|
+
function GetLockedCameraStatus(params) {
|
|
2639
|
+
var _a;
|
|
2640
|
+
var scene = (_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene;
|
|
2641
|
+
if (!scene) {
|
|
2642
|
+
return false;
|
|
2643
|
+
}
|
|
2644
|
+
return !scene.screenSpaceCameraController.enableTranslate;
|
|
2645
|
+
}
|
|
2646
|
+
ViewUtils.GetLockedCameraStatus = GetLockedCameraStatus;
|
|
2647
|
+
})(ViewUtils || (ViewUtils = {}));
|
|
2648
|
+
|
|
2547
2649
|
var MODEL_MIN_RADIUS = 10;
|
|
2548
2650
|
var POINT_MIN_RADIUS = 15;
|
|
2549
2651
|
// If a shape has more than this amount of points, we'll avoid checking it because it will take too long.
|
|
@@ -19901,7 +20003,7 @@ var CesiumViewMonitor;
|
|
|
19901
20003
|
CesiumViewMonitor$$1.Monitor = Monitor;
|
|
19902
20004
|
})(CesiumViewMonitor || (CesiumViewMonitor = {}));
|
|
19903
20005
|
|
|
19904
|
-
var VERSION$1 = "3.2.
|
|
20006
|
+
var VERSION$1 = "3.2.9";
|
|
19905
20007
|
|
|
19906
20008
|
export { VERSION$1 as VERSION, CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, RelationsRenderManager, SharedGetters, CesiumParabola, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
|
|
19907
20009
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|