@cesium/engine 5.0.0 → 6.1.0
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/Build/Workers/{chunk-J2FHYK2Z.js → chunk-2GWOHAWL.js} +4 -4
- package/Build/Workers/{chunk-HV67ARO7.js → chunk-3R5RPSYS.js} +8 -8
- package/Build/Workers/{chunk-44B6FQSJ.js → chunk-4CHSBZNO.js} +11 -11
- package/Build/Workers/{chunk-QUCJGBCK.js → chunk-4EXWKTY2.js} +7 -7
- package/Build/Workers/{chunk-IC7G4BX2.js → chunk-4JETNOH2.js} +11 -11
- package/Build/Workers/{chunk-4RKE4B3G.js → chunk-4MPXTOW6.js} +7 -7
- package/Build/Workers/{chunk-HIDSEUWS.js → chunk-54GSYZWT.js} +5 -5
- package/Build/Workers/{chunk-PEVZYZBQ.js → chunk-5HUDPV54.js} +6 -6
- package/Build/Workers/{chunk-H5Q2JKIA.js → chunk-6JRDO2JP.js} +17 -17
- package/Build/Workers/{chunk-4AJR66C5.js → chunk-6LG4PY2M.js} +12 -12
- package/Build/Workers/{chunk-MG2TXIO5.js → chunk-7ISAYW2A.js} +15 -15
- package/Build/Workers/{chunk-4HN3N5SE.js → chunk-A3TYRSRJ.js} +4 -4
- package/Build/Workers/{chunk-OCIX2CQ7.js → chunk-AEADHPUM.js} +4 -4
- package/Build/Workers/{chunk-K3VEWONC.js → chunk-AI2FOC47.js} +10 -10
- package/Build/Workers/{chunk-KZFXE35V.js → chunk-BLXANKPB.js} +6 -6
- package/Build/Workers/{chunk-Z2MP3UBE.js → chunk-CHGQXPF3.js} +7 -7
- package/Build/Workers/{chunk-CROU4RHL.js → chunk-CKOGHQ6J.js} +5 -5
- package/Build/Workers/{chunk-DWJZFZ67.js → chunk-CZFGXAMG.js} +13 -13
- package/Build/Workers/{chunk-EHJQEARC.js → chunk-DD2PDL6D.js} +5 -5
- package/Build/Workers/{chunk-IQN2LMGD.js → chunk-DHO4HQHW.js} +1 -1
- package/Build/Workers/{chunk-ULLMQNFQ.js → chunk-DNCKFFNR.js} +3 -3
- package/Build/Workers/{chunk-X2KIWBTW.js → chunk-E5HIGWSZ.js} +5 -5
- package/Build/Workers/{chunk-4QGPYV3W.js → chunk-EEL3YC6V.js} +4 -4
- package/Build/Workers/{chunk-YLMDWSXO.js → chunk-EH2PEDWL.js} +2 -2
- package/Build/Workers/{chunk-AQQGAFKX.js → chunk-F66GYWDZ.js} +5 -5
- package/Build/Workers/{chunk-TXOGSFHZ.js → chunk-FMN2NHBU.js} +1 -1
- package/Build/Workers/{chunk-PMDLIBEQ.js → chunk-FNHGOHCI.js} +7 -7
- package/Build/Workers/{chunk-5E3V7Y4R.js → chunk-HX5XY3NH.js} +6 -6
- package/Build/Workers/{chunk-QDUOGCCO.js → chunk-I5XKU3UZ.js} +11 -11
- package/Build/Workers/{chunk-3TSHZWOZ.js → chunk-ICD3BWBC.js} +2 -2
- package/Build/Workers/{chunk-RCI7BSOM.js → chunk-IDAL54EF.js} +14 -10
- package/Build/Workers/{chunk-MYDS6HBL.js → chunk-IQCBK4CE.js} +7 -7
- package/Build/Workers/{chunk-SVTSC7FX.js → chunk-JY6WB2NK.js} +13 -13
- package/Build/Workers/{chunk-2U6EBIRX.js → chunk-KFCTEEBD.js} +10 -10
- package/Build/Workers/{chunk-Y24CDOJC.js → chunk-LID3UUML.js} +6 -6
- package/Build/Workers/{chunk-UM7FIUQW.js → chunk-MMNPUV23.js} +2 -2
- package/Build/Workers/{chunk-EVLKHUAE.js → chunk-N3OQDJDV.js} +13 -13
- package/Build/Workers/{chunk-GPO47TW4.js → chunk-N73NY3KY.js} +1 -1
- package/Build/Workers/{chunk-MRCFDEKH.js → chunk-N7FIYNQV.js} +4 -4
- package/Build/Workers/{chunk-FOOYJER7.js → chunk-P2BTKBVY.js} +10 -10
- package/Build/Workers/{chunk-6I22NWKQ.js → chunk-PNAD2XAN.js} +6 -6
- package/Build/Workers/{chunk-VN2IHJKM.js → chunk-QX5ASOZZ.js} +14 -14
- package/Build/Workers/{chunk-UFIT5XDI.js → chunk-R5NOUYKW.js} +7 -7
- package/Build/Workers/{chunk-YNZ4DMR7.js → chunk-TDVU7NH7.js} +6 -6
- package/Build/Workers/{chunk-P32XMW4I.js → chunk-TIEL2RYB.js} +15 -15
- package/Build/Workers/{chunk-GLCRFDOB.js → chunk-U5O26DDO.js} +2 -2
- package/Build/Workers/{chunk-CTJCECTX.js → chunk-UJ76JVUZ.js} +5 -5
- package/Build/Workers/{chunk-7N67FBLW.js → chunk-ULABUYF6.js} +18 -18
- package/Build/Workers/{chunk-VWSD2XV5.js → chunk-VIAGIVGP.js} +8 -8
- package/Build/Workers/{chunk-6EHT6GS3.js → chunk-WYMW5NZB.js} +2 -2
- package/Build/Workers/{chunk-V5S5N2IS.js → chunk-XKGSTUQO.js} +9 -9
- package/Build/Workers/{chunk-TXYJOVQK.js → chunk-XNRYWRVT.js} +1 -1
- package/Build/Workers/{chunk-2ZI7FZ3Q.js → chunk-YK5RU5AO.js} +2 -2
- package/Build/Workers/{chunk-UMLTOPAE.js → chunk-ZERWARDV.js} +1 -1
- package/Build/Workers/combineGeometry.js +23 -23
- package/Build/Workers/createBoxGeometry.js +17 -17
- package/Build/Workers/createBoxOutlineGeometry.js +15 -15
- package/Build/Workers/createCircleGeometry.js +25 -25
- package/Build/Workers/createCircleOutlineGeometry.js +18 -18
- package/Build/Workers/createCoplanarPolygonGeometry.js +32 -32
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +19 -19
- package/Build/Workers/createCylinderOutlineGeometry.js +17 -17
- package/Build/Workers/createEllipseGeometry.js +25 -25
- package/Build/Workers/createEllipseOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipsoidGeometry.js +18 -18
- package/Build/Workers/createEllipsoidOutlineGeometry.js +17 -17
- package/Build/Workers/createFrustumGeometry.js +17 -17
- package/Build/Workers/createFrustumOutlineGeometry.js +17 -17
- package/Build/Workers/createGeometry.js +23 -23
- package/Build/Workers/createGroundPolylineGeometry.js +21 -21
- package/Build/Workers/createPlaneGeometry.js +15 -15
- package/Build/Workers/createPlaneOutlineGeometry.js +14 -14
- package/Build/Workers/createPolygonGeometry.js +40 -38
- package/Build/Workers/createPolygonOutlineGeometry.js +29 -29
- package/Build/Workers/createPolylineGeometry.js +24 -24
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +26 -26
- package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
- package/Build/Workers/createSimplePolylineGeometry.js +22 -22
- package/Build/Workers/createSphereGeometry.js +18 -18
- package/Build/Workers/createSphereOutlineGeometry.js +17 -17
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +23 -23
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +21 -21
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +21 -21
- package/Build/Workers/createVerticesFromHeightmap.js +21 -21
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +18 -18
- package/Build/Workers/createWallGeometry.js +23 -23
- package/Build/Workers/createWallOutlineGeometry.js +22 -22
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +9 -9
- package/Build/Workers/transcodeKTX2.js +7 -7
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +21 -21
- package/README.md +1 -1
- package/Source/Core/EllipsoidRhumbLine.js +10 -4
- package/Source/Core/GoogleMaps.js +8 -23
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/PolygonGeometry.js +7 -6
- package/Source/DataSources/EntityCluster.js +1 -1
- package/Source/Renderer/UniformState.js +8 -18
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/BingMapsImageryProvider.js +27 -6
- package/Source/Scene/LabelCollection.js +2 -1
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +38 -9
- package/index.d.ts +18 -3
- package/index.js +341 -341
- package/package.json +1 -1
package/Source/Core/Ion.js
CHANGED
|
@@ -4,7 +4,7 @@ import Resource from "./Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
7
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyMzVjZDg3Yi0wMjVkLTQ0MzctOTZjOC1jZjMwNjkzZmI5MWUiLCJpZCI6MjU5LCJpYXQiOjE2OTg4NTM0MDl9.L_g01CjNKNVijEJ_8kOxiO02OADnuSjRFLkZWvhupcc";
|
|
8
8
|
/**
|
|
9
9
|
* Default settings for accessing the Cesium ion API.
|
|
10
10
|
*
|
|
@@ -636,7 +636,7 @@ function createGeometryFromPositionsExtruded(
|
|
|
636
636
|
}
|
|
637
637
|
|
|
638
638
|
let outerRing = hierarchy.outerRing;
|
|
639
|
-
|
|
639
|
+
const tangentPlane = EllipsoidTangentPlane.fromPoints(outerRing, ellipsoid);
|
|
640
640
|
let positions2D = tangentPlane.projectPointsOntoPlane(
|
|
641
641
|
outerRing,
|
|
642
642
|
createGeometryFromPositionsExtrudedPositions
|
|
@@ -664,8 +664,6 @@ function createGeometryFromPositionsExtruded(
|
|
|
664
664
|
const holes = hierarchy.holes;
|
|
665
665
|
for (i = 0; i < holes.length; i++) {
|
|
666
666
|
let hole = holes[i];
|
|
667
|
-
|
|
668
|
-
tangentPlane = EllipsoidTangentPlane.fromPoints(hole, ellipsoid);
|
|
669
667
|
positions2D = tangentPlane.projectPointsOntoPlane(
|
|
670
668
|
hole,
|
|
671
669
|
createGeometryFromPositionsExtrudedPositions
|
|
@@ -1331,7 +1329,7 @@ function getTangentPlane(rectangle, positions, ellipsoid) {
|
|
|
1331
1329
|
}
|
|
1332
1330
|
|
|
1333
1331
|
const scratchCartographicCyllindrical = new Cartographic();
|
|
1334
|
-
function createProjectTo2d(rectangle, ellipsoid) {
|
|
1332
|
+
function createProjectTo2d(rectangle, outerPositions, ellipsoid) {
|
|
1335
1333
|
return (positions, results) => {
|
|
1336
1334
|
// If the polygon positions span a large enough extent, use a specialized projection
|
|
1337
1335
|
if (rectangle.height >= CesiumMath.PI || rectangle.width >= CesiumMath.PI) {
|
|
@@ -1360,7 +1358,10 @@ function createProjectTo2d(rectangle, ellipsoid) {
|
|
|
1360
1358
|
}
|
|
1361
1359
|
|
|
1362
1360
|
// Use a local tangent plane for smaller extents
|
|
1363
|
-
const tangentPlane = EllipsoidTangentPlane.fromPoints(
|
|
1361
|
+
const tangentPlane = EllipsoidTangentPlane.fromPoints(
|
|
1362
|
+
outerPositions,
|
|
1363
|
+
ellipsoid
|
|
1364
|
+
);
|
|
1364
1365
|
return tangentPlane.projectPointsOntoPlane(positions, results);
|
|
1365
1366
|
};
|
|
1366
1367
|
}
|
|
@@ -1466,7 +1467,7 @@ PolygonGeometry.createGeometry = function (polygonGeometry) {
|
|
|
1466
1467
|
const results = PolygonGeometryLibrary.polygonsFromHierarchy(
|
|
1467
1468
|
polygonHierarchy,
|
|
1468
1469
|
hasTextureCoordinates,
|
|
1469
|
-
createProjectTo2d(rectangle, ellipsoid),
|
|
1470
|
+
createProjectTo2d(rectangle, outerPositions, ellipsoid),
|
|
1470
1471
|
!perPositionHeight,
|
|
1471
1472
|
ellipsoid,
|
|
1472
1473
|
createSplitPolygons(rectangle, ellipsoid, arcType, perPositionHeight)
|
|
@@ -648,7 +648,7 @@ function createGetEntity(
|
|
|
648
648
|
|
|
649
649
|
const unusedIndices = this[unusedIndicesProperty];
|
|
650
650
|
if (unusedIndices.length > 0) {
|
|
651
|
-
index = unusedIndices.
|
|
651
|
+
index = unusedIndices.shift();
|
|
652
652
|
entityItem = collection.get(index);
|
|
653
653
|
} else {
|
|
654
654
|
entityItem = collection.add();
|
|
@@ -1513,7 +1513,6 @@ function cleanNormal(uniformState) {
|
|
|
1513
1513
|
|
|
1514
1514
|
const m = uniformState._normal;
|
|
1515
1515
|
Matrix4.getMatrix3(uniformState.inverseModelView, m);
|
|
1516
|
-
Matrix3.getRotation(m, m);
|
|
1517
1516
|
Matrix3.transpose(m, m);
|
|
1518
1517
|
}
|
|
1519
1518
|
}
|
|
@@ -1524,7 +1523,6 @@ function cleanNormal3D(uniformState) {
|
|
|
1524
1523
|
|
|
1525
1524
|
const m = uniformState._normal3D;
|
|
1526
1525
|
Matrix4.getMatrix3(uniformState.inverseModelView3D, m);
|
|
1527
|
-
Matrix3.getRotation(m, m);
|
|
1528
1526
|
Matrix3.transpose(m, m);
|
|
1529
1527
|
}
|
|
1530
1528
|
}
|
|
@@ -1532,28 +1530,20 @@ function cleanNormal3D(uniformState) {
|
|
|
1532
1530
|
function cleanInverseNormal(uniformState) {
|
|
1533
1531
|
if (uniformState._inverseNormalDirty) {
|
|
1534
1532
|
uniformState._inverseNormalDirty = false;
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
);
|
|
1539
|
-
Matrix3.getRotation(
|
|
1540
|
-
uniformState._inverseNormal,
|
|
1541
|
-
uniformState._inverseNormal
|
|
1542
|
-
);
|
|
1533
|
+
|
|
1534
|
+
const m = uniformState._inverseNormal;
|
|
1535
|
+
Matrix4.getMatrix3(uniformState.modelView, m);
|
|
1536
|
+
Matrix3.transpose(m, m);
|
|
1543
1537
|
}
|
|
1544
1538
|
}
|
|
1545
1539
|
|
|
1546
1540
|
function cleanInverseNormal3D(uniformState) {
|
|
1547
1541
|
if (uniformState._inverseNormal3DDirty) {
|
|
1548
1542
|
uniformState._inverseNormal3DDirty = false;
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
);
|
|
1553
|
-
Matrix3.getRotation(
|
|
1554
|
-
uniformState._inverseNormal3D,
|
|
1555
|
-
uniformState._inverseNormal3D
|
|
1556
|
-
);
|
|
1543
|
+
|
|
1544
|
+
const m = uniformState._inverseNormal3D;
|
|
1545
|
+
Matrix4.getMatrix3(uniformState.modelView3D, m);
|
|
1546
|
+
Matrix3.transpose(m, m);
|
|
1557
1547
|
}
|
|
1558
1548
|
}
|
|
1559
1549
|
|
|
@@ -4,7 +4,7 @@ import Resource from "../Core/Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"
|
|
7
|
+
"AAPK72121c3f05244af285ad75999db084bfDGkWA0QECX6QWOdaQmarXC21i1ogkvj8XCctaZExrW8Hw1AT58yG7twH3VFzZl13";
|
|
8
8
|
/**
|
|
9
9
|
* Default options for accessing the ArcGIS image tile service.
|
|
10
10
|
*
|
|
@@ -24,6 +24,7 @@ import ImageryProvider from "./ImageryProvider.js";
|
|
|
24
24
|
* @property {string} [tileProtocol] The protocol to use when loading tiles, e.g. 'http' or 'https'.
|
|
25
25
|
* By default, tiles are loaded using the same protocol as the page.
|
|
26
26
|
* @property {BingMapsStyle} [mapStyle=BingMapsStyle.AERIAL] The type of Bing Maps imagery to load.
|
|
27
|
+
* @property {string} [mapLayer] Additional display layer options as defined on {@link https://learn.microsoft.com/en-us/bingmaps/rest-services/imagery/get-imagery-metadata#template-parameters}
|
|
27
28
|
* @property {string} [culture=''] The culture to use when requesting Bing Maps imagery. Not
|
|
28
29
|
* all cultures are supported. See {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}
|
|
29
30
|
* for information on the supported cultures.
|
|
@@ -209,6 +210,7 @@ function BingMapsImageryProvider(options) {
|
|
|
209
210
|
this._defaultMagnificationFilter = undefined;
|
|
210
211
|
|
|
211
212
|
this._mapStyle = defaultValue(options.mapStyle, BingMapsStyle.AERIAL);
|
|
213
|
+
this._mapLayer = options.mapLayer;
|
|
212
214
|
this._culture = defaultValue(options.culture, "");
|
|
213
215
|
this._key = options.key;
|
|
214
216
|
|
|
@@ -287,6 +289,18 @@ Object.defineProperties(BingMapsImageryProvider.prototype, {
|
|
|
287
289
|
},
|
|
288
290
|
},
|
|
289
291
|
|
|
292
|
+
/**
|
|
293
|
+
* Gets the additional map layer options as defined in {@link https://learn.microsoft.com/en-us/bingmaps/rest-services/imagery/get-imagery-metadata#template-parameters}/
|
|
294
|
+
* @memberof BingMapsImageryProvider.prototype
|
|
295
|
+
* @type {string}
|
|
296
|
+
* @readonly
|
|
297
|
+
*/
|
|
298
|
+
mapLayer: {
|
|
299
|
+
get: function () {
|
|
300
|
+
return this._mapLayer;
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
|
|
290
304
|
/**
|
|
291
305
|
* The culture to use when requesting Bing Maps imagery. Not
|
|
292
306
|
* all cultures are supported. See {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}
|
|
@@ -426,7 +440,7 @@ Object.defineProperties(BingMapsImageryProvider.prototype, {
|
|
|
426
440
|
*/
|
|
427
441
|
hasAlphaChannel: {
|
|
428
442
|
get: function () {
|
|
429
|
-
return
|
|
443
|
+
return defined(this.mapLayer);
|
|
430
444
|
},
|
|
431
445
|
},
|
|
432
446
|
});
|
|
@@ -475,13 +489,20 @@ BingMapsImageryProvider.fromUrl = async function (url, options) {
|
|
|
475
489
|
const mapStyle = defaultValue(options.mapStyle, BingMapsStyle.AERIAL);
|
|
476
490
|
const resource = Resource.createIfNeeded(url);
|
|
477
491
|
resource.appendForwardSlash();
|
|
492
|
+
|
|
493
|
+
const queryParameters = {
|
|
494
|
+
incl: "ImageryProviders",
|
|
495
|
+
key: options.key,
|
|
496
|
+
uriScheme: tileProtocol,
|
|
497
|
+
};
|
|
498
|
+
|
|
499
|
+
if (defined(options.mapLayer)) {
|
|
500
|
+
queryParameters.mapLayer = options.mapLayer;
|
|
501
|
+
}
|
|
502
|
+
|
|
478
503
|
const metadataResource = resource.getDerivedResource({
|
|
479
504
|
url: `REST/v1/Imagery/Metadata/${mapStyle}`,
|
|
480
|
-
queryParameters:
|
|
481
|
-
incl: "ImageryProviders",
|
|
482
|
-
key: options.key,
|
|
483
|
-
uriScheme: tileProtocol,
|
|
484
|
-
},
|
|
505
|
+
queryParameters: queryParameters,
|
|
485
506
|
});
|
|
486
507
|
|
|
487
508
|
const provider = new BingMapsImageryProvider(options);
|
|
@@ -143,7 +143,7 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
143
143
|
glyphs.length = textLength;
|
|
144
144
|
|
|
145
145
|
const showBackground =
|
|
146
|
-
label._showBackground && text.split("\n").join("").length > 0;
|
|
146
|
+
label.show && label._showBackground && text.split("\n").join("").length > 0;
|
|
147
147
|
let backgroundBillboard = label._backgroundBillboard;
|
|
148
148
|
const backgroundBillboardCollection =
|
|
149
149
|
labelCollection._backgroundBillboardCollection;
|
|
@@ -181,6 +181,7 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
181
181
|
label._distanceDisplayCondition;
|
|
182
182
|
backgroundBillboard.disableDepthTestDistance =
|
|
183
183
|
label._disableDepthTestDistance;
|
|
184
|
+
backgroundBillboard.clusterShow = label.clusterShow;
|
|
184
185
|
}
|
|
185
186
|
|
|
186
187
|
const glyphTextureCache = labelCollection._glyphTextureCache;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Cesium3DTileset from "./Cesium3DTileset.js";
|
|
2
2
|
import defaultValue from "../Core/defaultValue.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
|
+
import IonResource from "../Core/IonResource.js";
|
|
4
5
|
import GoogleMaps from "../Core/GoogleMaps.js";
|
|
5
6
|
import Resource from "../Core/Resource.js";
|
|
6
7
|
|
|
@@ -16,6 +17,17 @@ import Resource from "../Core/Resource.js";
|
|
|
16
17
|
* @see GoogleMaps
|
|
17
18
|
*
|
|
18
19
|
* @example
|
|
20
|
+
* const viewer = new Cesium.Viewer("cesiumContainer");
|
|
21
|
+
*
|
|
22
|
+
* try {
|
|
23
|
+
* const tileset = await Cesium.createGooglePhotorealistic3DTileset();
|
|
24
|
+
* viewer.scene.primitives.add(tileset));
|
|
25
|
+
* } catch (error) {
|
|
26
|
+
* console.log(`Error creating tileset: ${error}`);
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // Use your own Google Maps API key
|
|
19
31
|
* Cesium.GoogleMaps.defaultApiKey = "your-api-key";
|
|
20
32
|
*
|
|
21
33
|
* const viewer = new Cesium.Viewer("cesiumContainer");
|
|
@@ -28,22 +40,24 @@ import Resource from "../Core/Resource.js";
|
|
|
28
40
|
* }
|
|
29
41
|
*/
|
|
30
42
|
async function createGooglePhotorealistic3DTileset(key, options) {
|
|
31
|
-
key = defaultValue(key, GoogleMaps.defaultApiKey);
|
|
32
|
-
|
|
33
|
-
let credits;
|
|
34
|
-
const credit = GoogleMaps.getDefaultApiKeyCredit(key);
|
|
35
|
-
if (defined(credit)) {
|
|
36
|
-
credits = [credit];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
43
|
options = defaultValue(options, {});
|
|
40
|
-
options.showCreditsOnScreen = true;
|
|
41
44
|
options.cacheBytes = defaultValue(options.cacheBytes, 1536 * 1024 * 1024);
|
|
42
45
|
options.maximumCacheOverflowBytes = defaultValue(
|
|
43
46
|
options.maximumCacheOverflowBytes,
|
|
44
47
|
1024 * 1024 * 1024
|
|
45
48
|
);
|
|
46
49
|
|
|
50
|
+
key = defaultValue(key, GoogleMaps.defaultApiKey);
|
|
51
|
+
if (!defined(key)) {
|
|
52
|
+
return requestCachedIonTileset(options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
let credits;
|
|
56
|
+
const credit = GoogleMaps.getDefaultCredit();
|
|
57
|
+
if (defined(credit)) {
|
|
58
|
+
credits = [credit];
|
|
59
|
+
}
|
|
60
|
+
|
|
47
61
|
const resource = new Resource({
|
|
48
62
|
url: `${GoogleMaps.mapTilesApiEndpoint}3dtiles/root.json`,
|
|
49
63
|
queryParameters: {
|
|
@@ -55,4 +69,19 @@ async function createGooglePhotorealistic3DTileset(key, options) {
|
|
|
55
69
|
return Cesium3DTileset.fromUrl(resource, options);
|
|
56
70
|
}
|
|
57
71
|
|
|
72
|
+
const metadataCache = {};
|
|
73
|
+
async function requestCachedIonTileset(options) {
|
|
74
|
+
const ionAssetId = 2275207;
|
|
75
|
+
const cacheKey = ionAssetId;
|
|
76
|
+
|
|
77
|
+
let promise = metadataCache[cacheKey];
|
|
78
|
+
if (!defined(promise)) {
|
|
79
|
+
promise = IonResource.fromAssetId(ionAssetId);
|
|
80
|
+
metadataCache[cacheKey] = promise;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const resource = await promise;
|
|
84
|
+
return Cesium3DTileset.fromUrl(resource, options);
|
|
85
|
+
}
|
|
86
|
+
|
|
58
87
|
export default createGooglePhotorealistic3DTileset;
|
package/index.d.ts
CHANGED
|
@@ -7568,15 +7568,14 @@ export class GoogleEarthEnterpriseTerrainProvider {
|
|
|
7568
7568
|
/**
|
|
7569
7569
|
* Default settings for accessing the Google Maps API.
|
|
7570
7570
|
* <br/>
|
|
7571
|
-
* An API key is only required if you are using any Google Maps APIs, such as {@link createGooglePhotorealistic3DTileset}.
|
|
7572
|
-
* A default key is provided for evaluation purposes only.
|
|
7571
|
+
* An API key is only required if you are directly using any Google Maps APIs, such as through {@link createGooglePhotorealistic3DTileset}.
|
|
7573
7572
|
* Follow instructions for managing API keys for the Google Maps Platform at {@link https://developers.google.com/maps/documentation/embed/get-api-key}
|
|
7574
7573
|
*/
|
|
7575
7574
|
export namespace GoogleMaps {
|
|
7576
7575
|
/**
|
|
7577
7576
|
* Gets or sets the default Google Maps API key.
|
|
7578
7577
|
*/
|
|
7579
|
-
var defaultApiKey: string;
|
|
7578
|
+
var defaultApiKey: undefined | string;
|
|
7580
7579
|
/**
|
|
7581
7580
|
* Gets or sets the default Google Map Tiles API endpoint.
|
|
7582
7581
|
*/
|
|
@@ -26115,6 +26114,7 @@ export namespace BingMapsImageryProvider {
|
|
|
26115
26114
|
* @property [tileProtocol] - The protocol to use when loading tiles, e.g. 'http' or 'https'.
|
|
26116
26115
|
* By default, tiles are loaded using the same protocol as the page.
|
|
26117
26116
|
* @property [mapStyle = BingMapsStyle.AERIAL] - The type of Bing Maps imagery to load.
|
|
26117
|
+
* @property [mapLayer] - Additional display layer options as defined on {@link https://learn.microsoft.com/en-us/bingmaps/rest-services/imagery/get-imagery-metadata#template-parameters}
|
|
26118
26118
|
* @property [culture = ''] - The culture to use when requesting Bing Maps imagery. Not
|
|
26119
26119
|
* all cultures are supported. See {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}
|
|
26120
26120
|
* for information on the supported cultures.
|
|
@@ -26128,6 +26128,7 @@ export namespace BingMapsImageryProvider {
|
|
|
26128
26128
|
key?: string;
|
|
26129
26129
|
tileProtocol?: string;
|
|
26130
26130
|
mapStyle?: BingMapsStyle;
|
|
26131
|
+
mapLayer?: string;
|
|
26131
26132
|
culture?: string;
|
|
26132
26133
|
ellipsoid?: Ellipsoid;
|
|
26133
26134
|
tileDiscardPolicy?: TileDiscardPolicy;
|
|
@@ -26166,6 +26167,10 @@ export class BingMapsImageryProvider {
|
|
|
26166
26167
|
* Gets the type of Bing Maps imagery to load.
|
|
26167
26168
|
*/
|
|
26168
26169
|
readonly mapStyle: BingMapsStyle;
|
|
26170
|
+
/**
|
|
26171
|
+
* Gets the additional map layer options as defined in {@link https://learn.microsoft.com/en-us/bingmaps/rest-services/imagery/get-imagery-metadata#template-parameters}/
|
|
26172
|
+
*/
|
|
26173
|
+
readonly mapLayer: string;
|
|
26169
26174
|
/**
|
|
26170
26175
|
* The culture to use when requesting Bing Maps imagery. Not
|
|
26171
26176
|
* all cultures are supported. See {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}
|
|
@@ -42241,6 +42246,16 @@ export function createElevationBandMaterial(options: {
|
|
|
42241
42246
|
/**
|
|
42242
42247
|
* Creates a {@link Cesium3DTileset} instance for the Google Photorealistic 3D Tiles tileset.
|
|
42243
42248
|
* @example
|
|
42249
|
+
* const viewer = new Cesium.Viewer("cesiumContainer");
|
|
42250
|
+
*
|
|
42251
|
+
* try {
|
|
42252
|
+
* const tileset = await Cesium.createGooglePhotorealistic3DTileset();
|
|
42253
|
+
* viewer.scene.primitives.add(tileset));
|
|
42254
|
+
* } catch (error) {
|
|
42255
|
+
* console.log(`Error creating tileset: ${error}`);
|
|
42256
|
+
* }
|
|
42257
|
+
* @example
|
|
42258
|
+
* // Use your own Google Maps API key
|
|
42244
42259
|
* Cesium.GoogleMaps.defaultApiKey = "your-api-key";
|
|
42245
42260
|
*
|
|
42246
42261
|
* const viewer = new Cesium.Viewer("cesiumContainer");
|