@itwin/core-frontend 4.0.0-dev.72 → 4.0.0-dev.75

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.
Files changed (133) hide show
  1. package/lib/cjs/DisplayStyleState.d.ts +35 -53
  2. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  3. package/lib/cjs/DisplayStyleState.js +51 -101
  4. package/lib/cjs/DisplayStyleState.js.map +1 -1
  5. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  6. package/lib/cjs/DrawingViewState.js +1 -2
  7. package/lib/cjs/DrawingViewState.js.map +1 -1
  8. package/lib/cjs/IModelApp.d.ts +1 -3
  9. package/lib/cjs/IModelApp.d.ts.map +1 -1
  10. package/lib/cjs/IModelApp.js +1 -3
  11. package/lib/cjs/IModelApp.js.map +1 -1
  12. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  13. package/lib/cjs/IModelConnection.js +4 -6
  14. package/lib/cjs/IModelConnection.js.map +1 -1
  15. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  16. package/lib/cjs/SheetViewState.js +1 -2
  17. package/lib/cjs/SheetViewState.js.map +1 -1
  18. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  19. package/lib/cjs/ViewCreator2d.js +2 -4
  20. package/lib/cjs/ViewCreator2d.js.map +1 -1
  21. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  22. package/lib/cjs/ViewCreator3d.js +1 -2
  23. package/lib/cjs/ViewCreator3d.js.map +1 -1
  24. package/lib/cjs/Viewport.d.ts +22 -11
  25. package/lib/cjs/Viewport.d.ts.map +1 -1
  26. package/lib/cjs/Viewport.js +60 -12
  27. package/lib/cjs/Viewport.js.map +1 -1
  28. package/lib/cjs/tile/RealityTile.d.ts +12 -5
  29. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  30. package/lib/cjs/tile/RealityTile.js +149 -57
  31. package/lib/cjs/tile/RealityTile.js.map +1 -1
  32. package/lib/cjs/tile/RealityTileTree.d.ts +1 -3
  33. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  34. package/lib/cjs/tile/RealityTileTree.js +8 -21
  35. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  36. package/lib/cjs/tile/TileUsageMarker.d.ts +4 -0
  37. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  38. package/lib/cjs/tile/TileUsageMarker.js +9 -1
  39. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  40. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  41. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  42. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  43. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  44. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +15 -8
  45. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  46. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +12 -7
  47. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  48. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +23 -6
  49. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  50. package/lib/cjs/tile/map/MapLayerImageryProvider.js +24 -8
  51. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  52. package/lib/cjs/tile/map/MapLayerSources.d.ts +4 -5
  53. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  54. package/lib/cjs/tile/map/MapLayerSources.js +3 -4
  55. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  56. package/lib/cjs/tile/map/MapTile.d.ts +3 -1
  57. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  58. package/lib/cjs/tile/map/MapTile.js +4 -0
  59. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  60. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +4 -3
  61. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  62. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -4
  63. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  64. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  65. package/lib/cjs/tools/ElementSetTool.js +1 -2
  66. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  67. package/lib/esm/DisplayStyleState.d.ts +35 -53
  68. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  69. package/lib/esm/DisplayStyleState.js +54 -104
  70. package/lib/esm/DisplayStyleState.js.map +1 -1
  71. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  72. package/lib/esm/DrawingViewState.js +1 -2
  73. package/lib/esm/DrawingViewState.js.map +1 -1
  74. package/lib/esm/IModelApp.d.ts +1 -3
  75. package/lib/esm/IModelApp.d.ts.map +1 -1
  76. package/lib/esm/IModelApp.js +1 -3
  77. package/lib/esm/IModelApp.js.map +1 -1
  78. package/lib/esm/IModelConnection.d.ts.map +1 -1
  79. package/lib/esm/IModelConnection.js +4 -6
  80. package/lib/esm/IModelConnection.js.map +1 -1
  81. package/lib/esm/SheetViewState.d.ts.map +1 -1
  82. package/lib/esm/SheetViewState.js +1 -2
  83. package/lib/esm/SheetViewState.js.map +1 -1
  84. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  85. package/lib/esm/ViewCreator2d.js +2 -4
  86. package/lib/esm/ViewCreator2d.js.map +1 -1
  87. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  88. package/lib/esm/ViewCreator3d.js +1 -2
  89. package/lib/esm/ViewCreator3d.js.map +1 -1
  90. package/lib/esm/Viewport.d.ts +22 -11
  91. package/lib/esm/Viewport.d.ts.map +1 -1
  92. package/lib/esm/Viewport.js +63 -15
  93. package/lib/esm/Viewport.js.map +1 -1
  94. package/lib/esm/tile/RealityTile.d.ts +12 -5
  95. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  96. package/lib/esm/tile/RealityTile.js +149 -57
  97. package/lib/esm/tile/RealityTile.js.map +1 -1
  98. package/lib/esm/tile/RealityTileTree.d.ts +1 -3
  99. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  100. package/lib/esm/tile/RealityTileTree.js +11 -24
  101. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  102. package/lib/esm/tile/TileUsageMarker.d.ts +4 -0
  103. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  104. package/lib/esm/tile/TileUsageMarker.js +9 -1
  105. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  106. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  107. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  108. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  109. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  110. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +15 -8
  111. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  112. package/lib/esm/tile/map/MapLayerFormatRegistry.js +12 -7
  113. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  114. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +23 -6
  115. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  116. package/lib/esm/tile/map/MapLayerImageryProvider.js +24 -8
  117. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  118. package/lib/esm/tile/map/MapLayerSources.d.ts +4 -5
  119. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  120. package/lib/esm/tile/map/MapLayerSources.js +3 -4
  121. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  122. package/lib/esm/tile/map/MapTile.d.ts +3 -1
  123. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  124. package/lib/esm/tile/map/MapTile.js +4 -0
  125. package/lib/esm/tile/map/MapTile.js.map +1 -1
  126. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +4 -3
  127. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  128. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -4
  129. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  130. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  131. package/lib/esm/tools/ElementSetTool.js +1 -2
  132. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  133. package/package.json +19 -19
@@ -5,13 +5,16 @@ import { BeEvent } from "@itwin/core-bentley";
5
5
  import { Cartographic, ImageMapLayerSettings, ImageSource } from "@itwin/core-common";
6
6
  import { ScreenViewport } from "../../Viewport";
7
7
  import { ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapLayerFeatureInfo, MapTilingScheme, QuadId } from "../internal";
8
- /** @beta */
8
+ /** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.
9
+ * @public
10
+ */
9
11
  export declare enum MapLayerImageryProviderStatus {
10
12
  Valid = 0,
11
13
  RequireAuth = 1
12
14
  }
13
- /** Base class for map layer imagery providers.
14
- * @internal
15
+ /** Abstract class for map layer imagery providers.
16
+ * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.
17
+ * @beta
15
18
  */
16
19
  export declare abstract class MapLayerImageryProvider {
17
20
  protected readonly _settings: ImageMapLayerSettings;
@@ -24,17 +27,21 @@ export declare abstract class MapLayerImageryProvider {
24
27
  private readonly _geographicTilingScheme;
25
28
  /** @internal */
26
29
  private _status;
30
+ /** @internal */
27
31
  get status(): MapLayerImageryProviderStatus;
28
32
  resetStatus(): void;
33
+ /** @internal */
29
34
  get tileSize(): number;
35
+ /** @internal */
30
36
  get maximumScreenSize(): number;
31
37
  get minimumZoomLevel(): number;
32
38
  get maximumZoomLevel(): number;
39
+ /** @internal */
33
40
  get usesCachedTiles(): boolean;
34
41
  get mutualExclusiveSubLayer(): boolean;
42
+ /** @internal */
35
43
  get useGeographicTilingScheme(): boolean;
36
44
  cartoRange?: MapCartoRectangle;
37
- get hasSuccessfullyFetchedTile(): boolean;
38
45
  /** @internal */
39
46
  protected readonly defaultMinimumZoomLevel = 0;
40
47
  /** @internal */
@@ -42,6 +49,7 @@ export declare abstract class MapLayerImageryProvider {
42
49
  /** @internal */
43
50
  protected get _filterByCartoRange(): boolean;
44
51
  constructor(_settings: ImageMapLayerSettings, _usesCachedTiles: boolean);
52
+ /** @internal */
45
53
  initialize(): Promise<void>;
46
54
  abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
47
55
  get tilingScheme(): MapTilingScheme;
@@ -49,27 +57,36 @@ export declare abstract class MapLayerImageryProvider {
49
57
  addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void;
50
58
  /** @internal */
51
59
  protected _missingTileData?: Uint8Array;
60
+ /** @internal */
52
61
  get transparentBackgroundString(): string;
62
+ /** @internal */
53
63
  protected _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean>;
64
+ /** @internal */
54
65
  getPotentialChildIds(tile: ImageryMapTile): QuadId[];
66
+ /** @internal */
55
67
  protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
68
+ /** @internal */
56
69
  generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
70
+ /** @internal */
57
71
  getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
72
+ /** @internal */
58
73
  getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree): Promise<void>;
59
74
  /** @internal */
60
75
  protected getImageFromTileResponse(tileResponse: Response, zoomLevel: number): Promise<ImageSource | undefined>;
61
76
  /** Change the status of this provider.
62
77
  * Sub-classes should override 'onStatusUpdated' instead of this method.
63
- * @internal */
78
+ * @internal
79
+ */
64
80
  setStatus(status: MapLayerImageryProviderStatus): void;
65
81
  /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.
66
82
  * @internal
67
- * */
83
+ */
68
84
  protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus): void;
69
85
  /** @internal */
70
86
  protected setRequestAuthorization(headers: Headers): void;
71
87
  /** @internal */
72
88
  makeTileRequest(url: string): Promise<Response>;
89
+ /** Returns a map layer tile at the specified settings. */
73
90
  loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined>;
74
91
  /** @internal */
75
92
  protected toolTipFromUrl(strings: string[], url: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":"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"}
@@ -18,26 +18,33 @@ const internal_1 = require("../internal");
18
18
  const tileImageSize = 256, untiledImageSize = 256;
19
19
  const earthRadius = 6378137;
20
20
  const doDebugToolTips = false;
21
- /** @beta */
21
+ /** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.
22
+ * @public
23
+ */
22
24
  var MapLayerImageryProviderStatus;
23
25
  (function (MapLayerImageryProviderStatus) {
24
26
  MapLayerImageryProviderStatus[MapLayerImageryProviderStatus["Valid"] = 0] = "Valid";
25
27
  MapLayerImageryProviderStatus[MapLayerImageryProviderStatus["RequireAuth"] = 1] = "RequireAuth";
26
28
  })(MapLayerImageryProviderStatus = exports.MapLayerImageryProviderStatus || (exports.MapLayerImageryProviderStatus = {}));
27
- /** Base class for map layer imagery providers.
28
- * @internal
29
+ /** Abstract class for map layer imagery providers.
30
+ * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.
31
+ * @beta
29
32
  */
30
33
  class MapLayerImageryProvider {
34
+ /** @internal */
31
35
  get status() { return this._status; }
32
36
  resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }
37
+ /** @internal */
33
38
  get tileSize() { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }
39
+ /** @internal */
34
40
  get maximumScreenSize() { return 2 * this.tileSize; }
35
41
  get minimumZoomLevel() { return this.defaultMinimumZoomLevel; }
36
42
  get maximumZoomLevel() { return this.defaultMaximumZoomLevel; }
43
+ /** @internal */
37
44
  get usesCachedTiles() { return this._usesCachedTiles; }
38
45
  get mutualExclusiveSubLayer() { return false; }
46
+ /** @internal */
39
47
  get useGeographicTilingScheme() { return false; }
40
- get hasSuccessfullyFetchedTile() { return this._hasSuccessfullyFetchedTile; }
41
48
  /** @internal */
42
49
  get _filterByCartoRange() { return true; }
43
50
  constructor(_settings, _usesCachedTiles) {
@@ -59,6 +66,7 @@ class MapLayerImageryProvider {
59
66
  this._mercatorTilingScheme = new internal_1.WebMercatorTilingScheme();
60
67
  this._geographicTilingScheme = new internal_1.GeographicTilingScheme(2, 1, true);
61
68
  }
69
+ /** @internal */
62
70
  async initialize() {
63
71
  this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData) => {
64
72
  if (tileData !== undefined)
@@ -68,15 +76,20 @@ class MapLayerImageryProvider {
68
76
  get tilingScheme() { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }
69
77
  /** @internal */
70
78
  addLogoCards(_cards, _viewport) { }
79
+ /** @internal */
71
80
  get transparentBackgroundString() { return this._settings.transparentBackground ? "true" : "false"; }
81
+ /** @internal */
72
82
  async _areChildrenAvailable(_tile) { return true; }
83
+ /** @internal */
73
84
  getPotentialChildIds(tile) {
74
85
  const childLevel = tile.quadId.level + 1;
75
86
  return tile.quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));
76
87
  }
88
+ /** @internal */
77
89
  _generateChildIds(tile, resolveChildren) {
78
90
  resolveChildren(this.getPotentialChildIds(tile));
79
91
  }
92
+ /** @internal */
80
93
  generateChildIds(tile, resolveChildren) {
81
94
  if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {
82
95
  tile.setLeaf();
@@ -84,12 +97,14 @@ class MapLayerImageryProvider {
84
97
  }
85
98
  this._generateChildIds(tile, resolveChildren);
86
99
  }
100
+ /** @internal */
87
101
  async getToolTip(strings, quadId, _carto, tree) {
88
102
  if (doDebugToolTips) {
89
103
  const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);
90
104
  strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);
91
105
  }
92
106
  }
107
+ /** @internal */
93
108
  async getFeatureInfo(featureInfos, _quadId, _carto, _tree) {
94
109
  // default implementation; simply return an empty feature info
95
110
  featureInfos.push({ layerName: this._settings.name });
@@ -119,7 +134,8 @@ class MapLayerImageryProvider {
119
134
  }
120
135
  /** Change the status of this provider.
121
136
  * Sub-classes should override 'onStatusUpdated' instead of this method.
122
- * @internal */
137
+ * @internal
138
+ */
123
139
  setStatus(status) {
124
140
  if (this._status !== status) {
125
141
  this.onStatusUpdated(status);
@@ -129,9 +145,8 @@ class MapLayerImageryProvider {
129
145
  }
130
146
  /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.
131
147
  * @internal
132
- * */
133
- onStatusUpdated(_newStatus) {
134
- }
148
+ */
149
+ onStatusUpdated(_newStatus) { }
135
150
  /** @internal */
136
151
  setRequestAuthorization(headers) {
137
152
  if (this._settings.userName && this._settings.password) {
@@ -147,6 +162,7 @@ class MapLayerImageryProvider {
147
162
  }
148
163
  return fetch(url, { method: "GET", headers });
149
164
  }
165
+ /** Returns a map layer tile at the specified settings. */
150
166
  async loadTile(row, column, zoomLevel) {
151
167
  try {
152
168
  const tileUrl = await this.constructUrl(row, column, zoomLevel);
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module MapLayers\r\n */\r\n\r\nimport { assert, BeEvent } from \"@itwin/core-bentley\";\r\nimport { Base64EncodedString, Cartographic, ImageMapLayerSettings, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\r\nimport { Angle } from \"@itwin/core-geometry\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../NotificationManager\";\r\nimport { ScreenViewport } from \"../../Viewport\";\r\nimport { GeographicTilingScheme, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapLayerFeatureInfo, MapTilingScheme, QuadId, WebMercatorTilingScheme } from \"../internal\";\r\n\r\n/** @internal */\r\nconst tileImageSize = 256, untiledImageSize = 256;\r\nconst earthRadius = 6378137;\r\nconst doDebugToolTips = false;\r\n\r\n/** @beta */\r\nexport enum MapLayerImageryProviderStatus {\r\n Valid,\r\n RequireAuth,\r\n}\r\n\r\n/** Base class for map layer imagery providers.\r\n * @internal\r\n */\r\nexport abstract class MapLayerImageryProvider {\r\n protected _hasSuccessfullyFetchedTile = false;\r\n public readonly onStatusChanged = new BeEvent<(provider: MapLayerImageryProvider) => void>();\r\n\r\n /** @internal */\r\n private readonly _mercatorTilingScheme = new WebMercatorTilingScheme();\r\n /** @internal */\r\n private readonly _geographicTilingScheme = new GeographicTilingScheme();\r\n\r\n /** @internal */\r\n private _status = MapLayerImageryProviderStatus.Valid;\r\n\r\n public get status() { return this._status;}\r\n public resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid);}\r\n\r\n public get tileSize(): number { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }\r\n\r\n public get maximumScreenSize() { return 2 * this.tileSize; }\r\n public get minimumZoomLevel(): number { return this.defaultMinimumZoomLevel; }\r\n public get maximumZoomLevel(): number { return this.defaultMaximumZoomLevel; }\r\n public get usesCachedTiles() { return this._usesCachedTiles; }\r\n public get mutualExclusiveSubLayer(): boolean { return false; }\r\n public get useGeographicTilingScheme() { return false;}\r\n public cartoRange?: MapCartoRectangle;\r\n public get hasSuccessfullyFetchedTile() { return this._hasSuccessfullyFetchedTile; }\r\n\r\n // Those values are used internally for various computation, this should not get overriden.\r\n /** @internal */\r\n protected readonly defaultMinimumZoomLevel = 0;\r\n /** @internal */\r\n protected readonly defaultMaximumZoomLevel = 22;\r\n\r\n /** @internal */\r\n protected get _filterByCartoRange() { return true; }\r\n constructor(protected readonly _settings: ImageMapLayerSettings, protected _usesCachedTiles: boolean) {\r\n this._mercatorTilingScheme = new WebMercatorTilingScheme();\r\n this._geographicTilingScheme = new GeographicTilingScheme(2, 1, true);\r\n }\r\n\r\n public async initialize(): Promise<void> {\r\n this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (tileData !== undefined)\r\n this._missingTileData = tileData.data as Uint8Array;\r\n });\r\n }\r\n public abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;\r\n public get tilingScheme(): MapTilingScheme { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }\r\n\r\n /** @internal */\r\n public addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void { }\r\n\r\n /** @internal */\r\n protected _missingTileData?: Uint8Array;\r\n public get transparentBackgroundString(): string { return this._settings.transparentBackground ? \"true\" : \"false\"; }\r\n\r\n protected async _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean> { return true; }\r\n public getPotentialChildIds(tile: ImageryMapTile): QuadId[] {\r\n const childLevel = tile.quadId.level + 1;\r\n return tile.quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));\r\n\r\n }\r\n\r\n protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n resolveChildren(this.getPotentialChildIds(tile));\r\n }\r\n\r\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {\r\n tile.setLeaf();\r\n return;\r\n }\r\n this._generateChildIds(tile, resolveChildren);\r\n }\r\n\r\n public async getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n if (doDebugToolTips) {\r\n const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);\r\n strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);\r\n }\r\n }\r\n\r\n public async getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree): Promise<void> {\r\n // default implementation; simply return an empty feature info\r\n featureInfos.push({layerName: this._settings.name});\r\n }\r\n\r\n /** @internal */\r\n protected async getImageFromTileResponse(tileResponse: Response, zoomLevel: number) {\r\n const arrayBuffer = await tileResponse.arrayBuffer();\r\n const byteArray: Uint8Array = new Uint8Array(arrayBuffer);\r\n if (!byteArray || (byteArray.length === 0))\r\n return undefined;\r\n if (this.matchesMissingTile(byteArray) && zoomLevel > 8)\r\n return undefined;\r\n\r\n const contentType = tileResponse.headers.get(\"content-type\")?.toLowerCase();\r\n let imageFormat: ImageSourceFormat | undefined;\r\n if (contentType) {\r\n // Note: 'includes' is used here instead of exact comparison because we encountered\r\n // some servers that would give content type such as 'image/png;charset=UTF-8'.\r\n if (contentType.includes(\"image/jpeg\"))\r\n imageFormat = ImageSourceFormat.Jpeg;\r\n else if (contentType.includes(\"image/png\"))\r\n imageFormat = ImageSourceFormat.Png;\r\n }\r\n\r\n if (imageFormat !== undefined)\r\n return new ImageSource(byteArray, imageFormat);\r\n\r\n assert(false, \"Invalid tile content type\");\r\n return undefined;\r\n }\r\n\r\n /** Change the status of this provider.\r\n * Sub-classes should override 'onStatusUpdated' instead of this method.\r\n * @internal */\r\n public setStatus(status: MapLayerImageryProviderStatus) {\r\n if (this._status !== status) {\r\n this.onStatusUpdated (status);\r\n this._status = status;\r\n this.onStatusChanged.raiseEvent(this);\r\n }\r\n }\r\n\r\n /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.\r\n * @internal\r\n * */\r\n protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus){\r\n\r\n }\r\n\r\n /** @internal */\r\n protected setRequestAuthorization(headers: Headers){\r\n if (this._settings.userName && this._settings.password) {\r\n headers.set(\"Authorization\", `Basic ${ Base64EncodedString.encode(`${this._settings.userName }:${ this._settings.password}`)}`);\r\n }\r\n }\r\n /** @internal */\r\n public async makeTileRequest(url: string) {\r\n let headers: Headers|undefined;\r\n if (this._settings.userName && this._settings.password) {\r\n headers = new Headers();\r\n this.setRequestAuthorization(headers);\r\n }\r\n return fetch(url, { method: \"GET\", headers });\r\n }\r\n\r\n public async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\r\n\r\n try {\r\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\r\n if (tileUrl.length === 0)\r\n return undefined;\r\n\r\n const tileResponse: Response = await this.makeTileRequest(tileUrl);\r\n\r\n if (!this._hasSuccessfullyFetchedTile) {\r\n this._hasSuccessfullyFetchedTile = true;\r\n }\r\n\r\n return await this.getImageFromTileResponse(tileResponse, zoomLevel);\r\n } catch (error: any) {\r\n if (error?.status === 401) {\r\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\r\n\r\n // Only report error to end-user if we were previously able to fetch tiles\r\n // and then encountered an error, otherwise I assume an error was already reported\r\n // through the source validation process.\r\n if (this._hasSuccessfullyFetchedTile) {\r\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n\r\n }\r\n return undefined;\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected async toolTipFromUrl(strings: string[], url: string): Promise<void> {\r\n const headers = new Headers();\r\n this.setRequestAuthorization(headers);\r\n\r\n try {\r\n const response = await fetch(url, { method: \"GET\", headers });\r\n const text = await response.text();\r\n if (undefined !== text) {\r\n strings.push(text);\r\n }\r\n } catch {\r\n }\r\n }\r\n\r\n /** @internal */\r\n public matchesMissingTile(tileData: Uint8Array): boolean {\r\n if (!this._missingTileData)\r\n return false;\r\n if (tileData.length !== this._missingTileData.length)\r\n return false;\r\n for (let i: number = 0; i < tileData.length; i += 10) {\r\n if (this._missingTileData[i] !== tileData[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n // calculates the projected x cartesian coordinate in EPSG:3857from the longitude in EPSG:4326 (WGS84)\r\n public getEPSG3857X(longitude: number): number {\r\n return longitude * 20037508.34 / 180.0;\r\n }\r\n\r\n /** @internal */\r\n // calculates the projected y cartesian coordinate in EPSG:3857from the latitude in EPSG:4326 (WGS84)\r\n public getEPSG3857Y(latitude: number): number {\r\n const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);\r\n return y * 20037508.34 / 180.0;\r\n }\r\n\r\n /** @internal */\r\n // calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857\r\n public getEPSG4326Lon(x3857: number): number {\r\n return Angle.radiansToDegrees(x3857/earthRadius);\r\n }\r\n\r\n /** @internal */\r\n // calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857\r\n public getEPSG4326Lat(y3857: number): number {\r\n const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI/2);\r\n return Angle.radiansToDegrees(y);\r\n }\r\n\r\n /** @internal */\r\n // Map tile providers like Bing and Mapbox allow the URL to be constructed directory from the zoom level and tile coordinates.\r\n // However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.\r\n public getEPSG4326Extent(row: number, column: number, zoomLevel: number): { longitudeLeft: number, longitudeRight: number, latitudeTop: number, latitudeBottom: number } {\r\n // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,\r\n // so use Math.pow instead (I assume the performance lost to be minimal)\r\n const mapSize = this.tileSize*Math.pow(2,zoomLevel);\r\n const leftGrid = this.tileSize * column;\r\n const topGrid = this.tileSize * row;\r\n\r\n const longitudeLeft = 360 * ((leftGrid / mapSize) - 0.5);\r\n const y0 = 0.5 - ((topGrid + this.tileSize ) / mapSize);\r\n const latitudeBottom = 90.0 - 360.0 * Math.atan(Math.exp(-y0 * 2 * Math.PI)) / Math.PI;\r\n\r\n const longitudeRight = 360 * (((leftGrid + this.tileSize) / mapSize) - 0.5);\r\n const y1 = 0.5 - (topGrid / mapSize);\r\n const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;\r\n\r\n return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };\r\n }\r\n\r\n /** @internal */\r\n public getEPSG3857Extent(row: number, column: number, zoomLevel: number): { left: number, right: number, top: number, bottom: number } {\r\n const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);\r\n\r\n const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);\r\n const right = this.getEPSG3857X(epsg4326Extent.longitudeRight);\r\n const bottom = this.getEPSG3857Y(epsg4326Extent.latitudeBottom);\r\n const top = this.getEPSG3857Y(epsg4326Extent.latitudeTop);\r\n\r\n return { left, right, bottom, top };\r\n }\r\n\r\n /** @internal */\r\n public getEPSG3857ExtentString(row: number, column: number, zoomLevel: number) {\r\n const tileExtent = this.getEPSG3857Extent(row, column, zoomLevel);\r\n return `${tileExtent.left.toFixed(2)},${tileExtent.bottom.toFixed(2)},${tileExtent.right.toFixed(2)},${tileExtent.top.toFixed(2)}`;\r\n }\r\n\r\n /** @internal */\r\n public getEPSG4326ExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean) {\r\n const tileExtent = this.getEPSG4326Extent(row, column, zoomLevel);\r\n if (latLongAxisOrdering) {\r\n return `${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeLeft.toFixed(8)},\r\n ${tileExtent.latitudeTop.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)}`;\r\n } else {\r\n return `${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeBottom.toFixed(8)},\r\n ${tileExtent.longitudeRight.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)}`;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module MapLayers\r\n */\r\n\r\nimport { assert, BeEvent } from \"@itwin/core-bentley\";\r\nimport { Base64EncodedString, Cartographic, ImageMapLayerSettings, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\r\nimport { Angle } from \"@itwin/core-geometry\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../NotificationManager\";\r\nimport { ScreenViewport } from \"../../Viewport\";\r\nimport { GeographicTilingScheme, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapLayerFeatureInfo, MapTilingScheme, QuadId, WebMercatorTilingScheme } from \"../internal\";\r\n\r\n/** @internal */\r\nconst tileImageSize = 256, untiledImageSize = 256;\r\nconst earthRadius = 6378137;\r\nconst doDebugToolTips = false;\r\n\r\n/** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.\r\n * @public\r\n */\r\nexport enum MapLayerImageryProviderStatus {\r\n Valid,\r\n RequireAuth,\r\n}\r\n\r\n/** Abstract class for map layer imagery providers.\r\n * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.\r\n * @beta\r\n */\r\nexport abstract class MapLayerImageryProvider {\r\n protected _hasSuccessfullyFetchedTile = false;\r\n public readonly onStatusChanged = new BeEvent<(provider: MapLayerImageryProvider) => void>();\r\n\r\n /** @internal */\r\n private readonly _mercatorTilingScheme = new WebMercatorTilingScheme();\r\n\r\n /** @internal */\r\n private readonly _geographicTilingScheme = new GeographicTilingScheme();\r\n\r\n /** @internal */\r\n private _status = MapLayerImageryProviderStatus.Valid;\r\n\r\n /** @internal */\r\n public get status() { return this._status; }\r\n\r\n public resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }\r\n\r\n /** @internal */\r\n public get tileSize(): number { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }\r\n\r\n /** @internal */\r\n public get maximumScreenSize() { return 2 * this.tileSize; }\r\n\r\n public get minimumZoomLevel(): number { return this.defaultMinimumZoomLevel; }\r\n\r\n public get maximumZoomLevel(): number { return this.defaultMaximumZoomLevel; }\r\n\r\n /** @internal */\r\n public get usesCachedTiles() { return this._usesCachedTiles; }\r\n\r\n public get mutualExclusiveSubLayer(): boolean { return false; }\r\n\r\n /** @internal */\r\n public get useGeographicTilingScheme() { return false; }\r\n\r\n public cartoRange?: MapCartoRectangle;\r\n\r\n // Those values are used internally for various computation, this should not get overriden.\r\n /** @internal */\r\n protected readonly defaultMinimumZoomLevel = 0;\r\n\r\n /** @internal */\r\n protected readonly defaultMaximumZoomLevel = 22;\r\n\r\n /** @internal */\r\n protected get _filterByCartoRange() { return true; }\r\n\r\n constructor(protected readonly _settings: ImageMapLayerSettings, protected _usesCachedTiles: boolean) {\r\n this._mercatorTilingScheme = new WebMercatorTilingScheme();\r\n this._geographicTilingScheme = new GeographicTilingScheme(2, 1, true);\r\n }\r\n\r\n /** @internal */\r\n public async initialize(): Promise<void> {\r\n this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (tileData !== undefined)\r\n this._missingTileData = tileData.data as Uint8Array;\r\n });\r\n }\r\n\r\n public abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;\r\n\r\n public get tilingScheme(): MapTilingScheme { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }\r\n\r\n /** @internal */\r\n public addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void { }\r\n\r\n /** @internal */\r\n protected _missingTileData?: Uint8Array;\r\n\r\n /** @internal */\r\n public get transparentBackgroundString(): string { return this._settings.transparentBackground ? \"true\" : \"false\"; }\r\n\r\n /** @internal */\r\n protected async _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean> { return true; }\r\n\r\n /** @internal */\r\n public getPotentialChildIds(tile: ImageryMapTile): QuadId[] {\r\n const childLevel = tile.quadId.level + 1;\r\n return tile.quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));\r\n }\r\n\r\n /** @internal */\r\n protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n resolveChildren(this.getPotentialChildIds(tile));\r\n }\r\n\r\n /** @internal */\r\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {\r\n tile.setLeaf();\r\n return;\r\n }\r\n this._generateChildIds(tile, resolveChildren);\r\n }\r\n\r\n /** @internal */\r\n public async getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n if (doDebugToolTips) {\r\n const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);\r\n strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public async getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree): Promise<void> {\r\n // default implementation; simply return an empty feature info\r\n featureInfos.push({ layerName: this._settings.name });\r\n }\r\n\r\n /** @internal */\r\n protected async getImageFromTileResponse(tileResponse: Response, zoomLevel: number) {\r\n const arrayBuffer = await tileResponse.arrayBuffer();\r\n const byteArray: Uint8Array = new Uint8Array(arrayBuffer);\r\n if (!byteArray || (byteArray.length === 0))\r\n return undefined;\r\n if (this.matchesMissingTile(byteArray) && zoomLevel > 8)\r\n return undefined;\r\n\r\n const contentType = tileResponse.headers.get(\"content-type\")?.toLowerCase();\r\n let imageFormat: ImageSourceFormat | undefined;\r\n if (contentType) {\r\n // Note: 'includes' is used here instead of exact comparison because we encountered\r\n // some servers that would give content type such as 'image/png;charset=UTF-8'.\r\n if (contentType.includes(\"image/jpeg\"))\r\n imageFormat = ImageSourceFormat.Jpeg;\r\n else if (contentType.includes(\"image/png\"))\r\n imageFormat = ImageSourceFormat.Png;\r\n }\r\n\r\n if (imageFormat !== undefined)\r\n return new ImageSource(byteArray, imageFormat);\r\n\r\n assert(false, \"Invalid tile content type\");\r\n return undefined;\r\n }\r\n\r\n /** Change the status of this provider.\r\n * Sub-classes should override 'onStatusUpdated' instead of this method.\r\n * @internal\r\n */\r\n public setStatus(status: MapLayerImageryProviderStatus) {\r\n if (this._status !== status) {\r\n this.onStatusUpdated(status);\r\n this._status = status;\r\n this.onStatusChanged.raiseEvent(this);\r\n }\r\n }\r\n\r\n /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.\r\n * @internal\r\n */\r\n protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus) { }\r\n\r\n /** @internal */\r\n protected setRequestAuthorization(headers: Headers) {\r\n if (this._settings.userName && this._settings.password) {\r\n headers.set(\"Authorization\", `Basic ${Base64EncodedString.encode(`${this._settings.userName}:${this._settings.password}`)}`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public async makeTileRequest(url: string) {\r\n let headers: Headers | undefined;\r\n if (this._settings.userName && this._settings.password) {\r\n headers = new Headers();\r\n this.setRequestAuthorization(headers);\r\n }\r\n return fetch(url, { method: \"GET\", headers });\r\n }\r\n\r\n /** Returns a map layer tile at the specified settings. */\r\n public async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\r\n\r\n try {\r\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\r\n if (tileUrl.length === 0)\r\n return undefined;\r\n\r\n const tileResponse: Response = await this.makeTileRequest(tileUrl);\r\n\r\n if (!this._hasSuccessfullyFetchedTile) {\r\n this._hasSuccessfullyFetchedTile = true;\r\n }\r\n\r\n return await this.getImageFromTileResponse(tileResponse, zoomLevel);\r\n } catch (error: any) {\r\n if (error?.status === 401) {\r\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\r\n\r\n // Only report error to end-user if we were previously able to fetch tiles\r\n // and then encountered an error, otherwise I assume an error was already reported\r\n // through the source validation process.\r\n if (this._hasSuccessfullyFetchedTile) {\r\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n\r\n }\r\n return undefined;\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected async toolTipFromUrl(strings: string[], url: string): Promise<void> {\r\n const headers = new Headers();\r\n this.setRequestAuthorization(headers);\r\n\r\n try {\r\n const response = await fetch(url, { method: \"GET\", headers });\r\n const text = await response.text();\r\n if (undefined !== text) {\r\n strings.push(text);\r\n }\r\n } catch {\r\n }\r\n }\r\n\r\n /** @internal */\r\n public matchesMissingTile(tileData: Uint8Array): boolean {\r\n if (!this._missingTileData)\r\n return false;\r\n if (tileData.length !== this._missingTileData.length)\r\n return false;\r\n for (let i: number = 0; i < tileData.length; i += 10) {\r\n if (this._missingTileData[i] !== tileData[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n // calculates the projected x cartesian coordinate in EPSG:3857from the longitude in EPSG:4326 (WGS84)\r\n public getEPSG3857X(longitude: number): number {\r\n return longitude * 20037508.34 / 180.0;\r\n }\r\n\r\n /** @internal */\r\n // calculates the projected y cartesian coordinate in EPSG:3857from the latitude in EPSG:4326 (WGS84)\r\n public getEPSG3857Y(latitude: number): number {\r\n const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);\r\n return y * 20037508.34 / 180.0;\r\n }\r\n\r\n /** @internal */\r\n // calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857\r\n public getEPSG4326Lon(x3857: number): number {\r\n return Angle.radiansToDegrees(x3857 / earthRadius);\r\n }\r\n\r\n /** @internal */\r\n // calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857\r\n public getEPSG4326Lat(y3857: number): number {\r\n const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);\r\n return Angle.radiansToDegrees(y);\r\n }\r\n\r\n /** @internal */\r\n // Map tile providers like Bing and Mapbox allow the URL to be constructed directory from the zoom level and tile coordinates.\r\n // However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.\r\n public getEPSG4326Extent(row: number, column: number, zoomLevel: number): { longitudeLeft: number, longitudeRight: number, latitudeTop: number, latitudeBottom: number } {\r\n // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,\r\n // so use Math.pow instead (I assume the performance lost to be minimal)\r\n const mapSize = this.tileSize * Math.pow(2, zoomLevel);\r\n const leftGrid = this.tileSize * column;\r\n const topGrid = this.tileSize * row;\r\n\r\n const longitudeLeft = 360 * ((leftGrid / mapSize) - 0.5);\r\n const y0 = 0.5 - ((topGrid + this.tileSize) / mapSize);\r\n const latitudeBottom = 90.0 - 360.0 * Math.atan(Math.exp(-y0 * 2 * Math.PI)) / Math.PI;\r\n\r\n const longitudeRight = 360 * (((leftGrid + this.tileSize) / mapSize) - 0.5);\r\n const y1 = 0.5 - (topGrid / mapSize);\r\n const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;\r\n\r\n return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };\r\n }\r\n\r\n /** @internal */\r\n public getEPSG3857Extent(row: number, column: number, zoomLevel: number): { left: number, right: number, top: number, bottom: number } {\r\n const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);\r\n\r\n const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);\r\n const right = this.getEPSG3857X(epsg4326Extent.longitudeRight);\r\n const bottom = this.getEPSG3857Y(epsg4326Extent.latitudeBottom);\r\n const top = this.getEPSG3857Y(epsg4326Extent.latitudeTop);\r\n\r\n return { left, right, bottom, top };\r\n }\r\n\r\n /** @internal */\r\n public getEPSG3857ExtentString(row: number, column: number, zoomLevel: number) {\r\n const tileExtent = this.getEPSG3857Extent(row, column, zoomLevel);\r\n return `${tileExtent.left.toFixed(2)},${tileExtent.bottom.toFixed(2)},${tileExtent.right.toFixed(2)},${tileExtent.top.toFixed(2)}`;\r\n }\r\n\r\n /** @internal */\r\n public getEPSG4326ExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean) {\r\n const tileExtent = this.getEPSG4326Extent(row, column, zoomLevel);\r\n if (latLongAxisOrdering) {\r\n return `${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeLeft.toFixed(8)},\r\n ${tileExtent.latitudeTop.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)}`;\r\n } else {\r\n return `${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeBottom.toFixed(8)},\r\n ${tileExtent.longitudeRight.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)}`;\r\n }\r\n }\r\n}\r\n"]}
@@ -4,8 +4,7 @@
4
4
  import { DeprecatedBackgroundMapProps, ImageMapLayerSettings, MapSubLayerProps } from "@itwin/core-common";
5
5
  import { IModelConnection } from "../../IModelConnection";
6
6
  import { MapLayerSourceValidation } from "../internal";
7
- /**
8
- * Values for return codes from [[MapLayerSource.validateSource]]
7
+ /** Values for return codes from [[MapLayerSource.validateSource]]
9
8
  * @public
10
9
  */
11
10
  export declare enum MapLayerSourceStatus {
@@ -25,7 +24,7 @@ export declare enum MapLayerSourceStatus {
25
24
  InvalidCoordinateSystem = 6
26
25
  }
27
26
  /** JSON representation of a map layer source.
28
- * * @see [ImageryMapLayerFormatId]($common)
27
+ * @see [ImageryMapLayerFormatId]($common)
29
28
  * @public
30
29
  */
31
30
  interface MapLayerSourceProps {
@@ -40,7 +39,7 @@ interface MapLayerSourceProps {
40
39
  /** Indicate if this source definition should be used as a base map. Defaults to false. */
41
40
  baseMap?: boolean;
42
41
  }
43
- /** A source for map layers. These may be catalogued for convenient use by users or applications.
42
+ /** A source for map layers. These may be catalogued for convenient use by users or applications.
44
43
  * @public
45
44
  */
46
45
  export declare class MapLayerSource {
@@ -66,7 +65,7 @@ export declare class MapLayerSource {
66
65
  private getCredentials;
67
66
  }
68
67
  /** A collection of [[MapLayerSource]] objects.
69
- * @internal
68
+ * @beta
70
69
  */
71
70
  export declare class MapLayerSources {
72
71
  private _sources;
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerSources.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerSources.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAC2D,4BAA4B,EAAE,qBAAqB,EAAE,gBAAgB,EACtI,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAsC,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE3F;;;GAGG;AACH,oBAAY,oBAAoB;IAC9B,4BAA4B;IAC5B,KAAK,IAAA;IACL,iEAAiE;IACjE,kBAAkB,IAAA;IAClB,6EAA6E;IAC7E,aAAa,IAAA;IACb,uDAAuD;IACvD,eAAe,IAAA;IACf,oEAAoE;IACpE,UAAU,IAAA;IACV,iEAAiE;IACjE,WAAW,IAAA;IACX,mDAAmD;IACnD,uBAAuB,IAAA;CACxB;AAED;;;GAGG;AACH,UAAU,mBAAmB;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,cAAc;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,UAAS;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB,OAAO;WAQO,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,GAAG,SAAS;IAOhE,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIrF,eAAe;WACD,sBAAsB,CAAC,KAAK,EAAE,4BAA4B;IAajE,MAAM;;;;;;IAIN,eAAe,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,GAAG,SAAS;IAUzF,OAAO,CAAC,cAAc;CAGvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAEN,OAAO,CAAC,QAAQ;IADpC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAkB;IAC3C,OAAO;WAEO,WAAW;IAElB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,cAAc,GAAG,SAAS;IAQrF,IAAW,MAAM,IAAI,cAAc,EAAE,CAQpC;IACD,IAAW,SAAS,qBAA4B;IAChD,IAAW,KAAK,IAAI,cAAc,EAAE,CAQnC;IAED,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAQpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAQf,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,qBAAqB,UAAQ,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;WAsDpH,0BAA0B,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;WAavG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAYvD"}
1
+ {"version":3,"file":"MapLayerSources.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerSources.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAC2D,4BAA4B,EAAE,qBAAqB,EAAE,gBAAgB,EACtI,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAsC,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE3F;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,4BAA4B;IAC5B,KAAK,IAAA;IACL,iEAAiE;IACjE,kBAAkB,IAAA;IAClB,6EAA6E;IAC7E,aAAa,IAAA;IACb,uDAAuD;IACvD,eAAe,IAAA;IACf,oEAAoE;IACpE,UAAU,IAAA;IACV,iEAAiE;IACjE,WAAW,IAAA;IACX,mDAAmD;IACnD,uBAAuB,IAAA;CACxB;AAED;;;GAGG;AACH,UAAU,mBAAmB;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,cAAc;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,UAAS;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB,OAAO;WAQO,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,GAAG,SAAS;IAOhE,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIrF,eAAe;WACD,sBAAsB,CAAC,KAAK,EAAE,4BAA4B;IAajE,MAAM;;;;;;IAIN,eAAe,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,GAAG,SAAS;IAUzF,OAAO,CAAC,cAAc;CAGvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAEN,OAAO,CAAC,QAAQ;IADpC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAkB;IAC3C,OAAO;WAEO,WAAW;IAElB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,cAAc,GAAG,SAAS;IAQrF,IAAW,MAAM,IAAI,cAAc,EAAE,CAQpC;IACD,IAAW,SAAS,qBAA4B;IAChD,IAAW,KAAK,IAAI,cAAc,EAAE,CAQnC;IAED,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAQpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAQf,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,qBAAqB,UAAQ,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;WAsDpH,0BAA0B,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;WAavG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAYvD"}
@@ -14,8 +14,7 @@ const core_geometry_1 = require("@itwin/core-geometry");
14
14
  const IModelApp_1 = require("../../IModelApp");
15
15
  const Request_1 = require("../../request/Request");
16
16
  const internal_1 = require("../internal");
17
- /**
18
- * Values for return codes from [[MapLayerSource.validateSource]]
17
+ /** Values for return codes from [[MapLayerSource.validateSource]]
19
18
  * @public
20
19
  */
21
20
  var MapLayerSourceStatus;
@@ -35,7 +34,7 @@ var MapLayerSourceStatus;
35
34
  /** Map-layer coordinate system is not supported */
36
35
  MapLayerSourceStatus[MapLayerSourceStatus["InvalidCoordinateSystem"] = 6] = "InvalidCoordinateSystem";
37
36
  })(MapLayerSourceStatus = exports.MapLayerSourceStatus || (exports.MapLayerSourceStatus = {}));
38
- /** A source for map layers. These may be catalogued for convenient use by users or applications.
37
+ /** A source for map layers. These may be catalogued for convenient use by users or applications.
39
38
  * @public
40
39
  */
41
40
  class MapLayerSource {
@@ -85,7 +84,7 @@ class MapLayerSource {
85
84
  }
86
85
  exports.MapLayerSource = MapLayerSource;
87
86
  /** A collection of [[MapLayerSource]] objects.
88
- * @internal
87
+ * @beta
89
88
  */
90
89
  class MapLayerSources {
91
90
  constructor(_sources) {
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerSources.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerSources.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module MapLayers\r\n */\r\n\r\nimport { compareStrings } from \"@itwin/core-bentley\";\r\nimport {\r\n BackgroundMapProvider, BackgroundMapType, BaseMapLayerSettings, DeprecatedBackgroundMapProps, ImageMapLayerSettings, MapSubLayerProps,\r\n} from \"@itwin/core-common\";\r\nimport { Point2d } from \"@itwin/core-geometry\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { request, RequestBasicCredentials } from \"../../request/Request\";\r\nimport { ArcGisUtilities, MapCartoRectangle, MapLayerSourceValidation } from \"../internal\";\r\n\r\n/**\r\n * Values for return codes from [[MapLayerSource.validateSource]]\r\n * @public\r\n */\r\nexport enum MapLayerSourceStatus {\r\n /** Layer source is valid */\r\n Valid,\r\n /** Authorization has failed when accessing this layer source. */\r\n InvalidCredentials,\r\n /** Provided format id could not be resolved in [[MapLayerFormatRegistry]] */\r\n InvalidFormat,\r\n /** The tiling schema of the source is not supported */\r\n InvalidTileTree,\r\n /** Could not not connect to remote server using the provided URL.*/\r\n InvalidUrl,\r\n /** Authorization is required to access this map layer source. */\r\n RequireAuth,\r\n /** Map-layer coordinate system is not supported */\r\n InvalidCoordinateSystem,\r\n}\r\n\r\n/** JSON representation of a map layer source.\r\n * * @see [ImageryMapLayerFormatId]($common)\r\n * @public\r\n */\r\ninterface MapLayerSourceProps {\r\n /** Identifies the map layers source. Defaults to 'WMS'. */\r\n formatId?: string;\r\n /** Name */\r\n name: string;\r\n /** URL */\r\n url: string;\r\n /** True to indicate background is transparent. Defaults to 'true'. */\r\n transparentBackground?: boolean;\r\n /** Indicate if this source definition should be used as a base map. Defaults to false. */\r\n baseMap?: boolean;\r\n}\r\n\r\n/** A source for map layers. These may be catalogued for convenient use by users or applications.\r\n * @public\r\n */\r\nexport class MapLayerSource {\r\n public formatId: string;\r\n public name: string;\r\n public url: string;\r\n public baseMap = false;\r\n public transparentBackground?: boolean;\r\n public userName?: string;\r\n public password?: string;\r\n\r\n private constructor(formatId = \"WMS\", name: string, url: string, baseMap = false, transparentBackground = true) {\r\n this.formatId = formatId;\r\n this.name = name;\r\n this.url = url;\r\n this.baseMap = baseMap;\r\n this.transparentBackground = transparentBackground;\r\n }\r\n\r\n public static fromJSON(json: MapLayerSourceProps): MapLayerSource | undefined {\r\n if (json === undefined)\r\n return undefined;\r\n\r\n return new MapLayerSource(json.formatId, json.name, json.url, json.baseMap, json.transparentBackground);\r\n }\r\n\r\n public async validateSource(ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n return IModelApp.mapLayerFormatRegistry.validateSource(this.formatId, this.url, this.userName, this.password, ignoreCache);\r\n }\r\n\r\n /** @internal*/\r\n public static fromBackgroundMapProps(props: DeprecatedBackgroundMapProps) {\r\n const provider = BackgroundMapProvider.fromBackgroundMapProps(props);\r\n const layerSettings = BaseMapLayerSettings.fromProvider(provider);\r\n if (undefined !== layerSettings) {\r\n const source = MapLayerSource.fromJSON(layerSettings);\r\n if (source) {\r\n source.baseMap = true;\r\n return source;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n public toJSON() {\r\n return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground };\r\n }\r\n\r\n public toLayerSettings(subLayers?: MapSubLayerProps[]): ImageMapLayerSettings | undefined {\r\n // When MapLayerSetting is created from a MapLayerSource, sub-layers and credentials need to be set separately.\r\n const layerSettings = ImageMapLayerSettings.fromJSON({ ...this, subLayers });\r\n if (this.userName !== undefined || this.password !== undefined) {\r\n layerSettings?.setCredentials(this.userName, this.password);\r\n }\r\n\r\n return layerSettings;\r\n }\r\n\r\n private getCredentials(): RequestBasicCredentials | undefined {\r\n return this.userName && this.password ? { user: this.userName, password: this.password } : undefined;\r\n }\r\n}\r\n\r\n/** A collection of [[MapLayerSource]] objects.\r\n * @internal\r\n */\r\nexport class MapLayerSources {\r\n private static _instance?: MapLayerSources;\r\n private constructor(private _sources: MapLayerSource[]) { }\r\n\r\n public static getInstance() { return MapLayerSources._instance; }\r\n\r\n public findByName(name: string, baseMap: boolean = false): MapLayerSource | undefined {\r\n const nameTest = name.toLowerCase();\r\n for (const source of this._sources)\r\n if (source.baseMap === baseMap && source.name.toLowerCase().indexOf(nameTest) !== -1)\r\n return source;\r\n\r\n return undefined;\r\n }\r\n public get layers(): MapLayerSource[] {\r\n const layers = new Array<MapLayerSource>();\r\n this._sources.forEach((source) => {\r\n if (!source.baseMap)\r\n layers.push(source);\r\n });\r\n\r\n return layers;\r\n }\r\n public get allSource() { return this._sources; }\r\n public get bases(): MapLayerSource[] {\r\n const layers = new Array<MapLayerSource>();\r\n this._sources.forEach((source) => {\r\n if (source.baseMap)\r\n layers.push(source);\r\n });\r\n\r\n return layers;\r\n }\r\n\r\n private static getBingMapLayerSource(): MapLayerSource[] {\r\n const mapLayerSources: MapLayerSource[] = [];\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"BingProvider\", providerData: { mapType: BackgroundMapType.Street } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"BingProvider\", providerData: { mapType: BackgroundMapType.Aerial } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"BingProvider\", providerData: { mapType: BackgroundMapType.Hybrid } })!);\r\n return mapLayerSources;\r\n }\r\n\r\n private static getMapBoxLayerSource(): MapLayerSource[] {\r\n const mapLayerSources: MapLayerSource[] = [];\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"MapBoxProvider\", providerData: { mapType: BackgroundMapType.Street } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"MapBoxProvider\", providerData: { mapType: BackgroundMapType.Aerial } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"MapBoxProvider\", providerData: { mapType: BackgroundMapType.Hybrid } })!);\r\n return mapLayerSources;\r\n }\r\n\r\n public static async create(iModel?: IModelConnection, queryForPublicSources = false, addMapBoxSources = false): Promise<MapLayerSources> {\r\n if (!queryForPublicSources && MapLayerSources._instance)\r\n return MapLayerSources._instance;\r\n\r\n if (!iModel)\r\n iModel = IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.iModel : undefined;\r\n\r\n let sourceRange = MapCartoRectangle.createMaximum();\r\n if (iModel) {\r\n const projectCenter = iModel.projectExtents.localXYZToWorld(.5, .5, .5)!;\r\n const cartoCenter = iModel.spatialToCartographicFromEcef(projectCenter);\r\n const globeRange = MapCartoRectangle.createMaximum();\r\n const nearDelta = Point2d.create(globeRange.xLength() / 100, globeRange.yLength() / 100);\r\n sourceRange = MapCartoRectangle.fromRadians(cartoCenter.longitude - nearDelta.x, cartoCenter.latitude - nearDelta.y, cartoCenter.longitude + nearDelta.x, cartoCenter.latitude + nearDelta.y);\r\n }\r\n\r\n const sources = new Array<MapLayerSource>();\r\n const urlSet = new Set<string>();\r\n const addSource = ((source: MapLayerSource) => {\r\n if (!urlSet.has(source.url)) {\r\n sources.push(source);\r\n urlSet.add(source.url);\r\n }\r\n });\r\n\r\n this.getBingMapLayerSource().forEach((source) => {\r\n addSource(source);\r\n });\r\n\r\n if (addMapBoxSources) {\r\n this.getMapBoxLayerSource().forEach((source) => {\r\n addSource(source);\r\n });\r\n }\r\n\r\n if (queryForPublicSources) {\r\n const sourcesJson = await request(`${IModelApp.publicPath}assets/MapLayerSources.json`, \"json\");\r\n\r\n for (const sourceJson of sourcesJson) {\r\n const source = MapLayerSource.fromJSON(sourceJson);\r\n if (source)\r\n addSource(source);\r\n }\r\n\r\n (await ArcGisUtilities.getSourcesFromQuery(sourceRange)).forEach((queriedSource) => addSource(queriedSource));\r\n }\r\n\r\n sources.sort((a: MapLayerSource, b: MapLayerSource) => compareStrings(a.name.toLowerCase(), b.name.toLowerCase()));\r\n\r\n const mapLayerSources = new MapLayerSources(sources);\r\n MapLayerSources._instance = mapLayerSources;\r\n\r\n return mapLayerSources;\r\n }\r\n public static async addSourceToMapLayerSources(mapLayerSource?: MapLayerSource): Promise<MapLayerSources | undefined> {\r\n if (!MapLayerSources._instance || !mapLayerSource) {\r\n return undefined;\r\n }\r\n MapLayerSources._instance._sources = MapLayerSources._instance._sources.filter((source) => {\r\n return !(source.name === mapLayerSource.name || source.url === mapLayerSource.url);\r\n });\r\n\r\n MapLayerSources._instance._sources.push(mapLayerSource);\r\n MapLayerSources._instance._sources.sort((a: MapLayerSource, b: MapLayerSource) => compareStrings(a.name.toLowerCase(), b.name.toLowerCase()));\r\n return MapLayerSources._instance;\r\n }\r\n\r\n public static removeLayerByName(name: string): boolean {\r\n if (!MapLayerSources._instance) {\r\n return false;\r\n }\r\n\r\n // For now we only rely on the name\r\n const lengthBeforeRemove = MapLayerSources._instance._sources.length;\r\n MapLayerSources._instance._sources = MapLayerSources._instance._sources.filter((source) => {\r\n return (source.name !== name);\r\n });\r\n return (lengthBeforeRemove !== MapLayerSources._instance._sources.length);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapLayerSources.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerSources.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module MapLayers\r\n */\r\n\r\nimport { compareStrings } from \"@itwin/core-bentley\";\r\nimport {\r\n BackgroundMapProvider, BackgroundMapType, BaseMapLayerSettings, DeprecatedBackgroundMapProps, ImageMapLayerSettings, MapSubLayerProps,\r\n} from \"@itwin/core-common\";\r\nimport { Point2d } from \"@itwin/core-geometry\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { request, RequestBasicCredentials } from \"../../request/Request\";\r\nimport { ArcGisUtilities, MapCartoRectangle, MapLayerSourceValidation } from \"../internal\";\r\n\r\n/** Values for return codes from [[MapLayerSource.validateSource]]\r\n * @public\r\n */\r\nexport enum MapLayerSourceStatus {\r\n /** Layer source is valid */\r\n Valid,\r\n /** Authorization has failed when accessing this layer source. */\r\n InvalidCredentials,\r\n /** Provided format id could not be resolved in [[MapLayerFormatRegistry]] */\r\n InvalidFormat,\r\n /** The tiling schema of the source is not supported */\r\n InvalidTileTree,\r\n /** Could not not connect to remote server using the provided URL.*/\r\n InvalidUrl,\r\n /** Authorization is required to access this map layer source. */\r\n RequireAuth,\r\n /** Map-layer coordinate system is not supported */\r\n InvalidCoordinateSystem,\r\n}\r\n\r\n/** JSON representation of a map layer source.\r\n * @see [ImageryMapLayerFormatId]($common)\r\n * @public\r\n */\r\ninterface MapLayerSourceProps {\r\n /** Identifies the map layers source. Defaults to 'WMS'. */\r\n formatId?: string;\r\n /** Name */\r\n name: string;\r\n /** URL */\r\n url: string;\r\n /** True to indicate background is transparent. Defaults to 'true'. */\r\n transparentBackground?: boolean;\r\n /** Indicate if this source definition should be used as a base map. Defaults to false. */\r\n baseMap?: boolean;\r\n}\r\n\r\n/** A source for map layers. These may be catalogued for convenient use by users or applications.\r\n * @public\r\n */\r\nexport class MapLayerSource {\r\n public formatId: string;\r\n public name: string;\r\n public url: string;\r\n public baseMap = false;\r\n public transparentBackground?: boolean;\r\n public userName?: string;\r\n public password?: string;\r\n\r\n private constructor(formatId = \"WMS\", name: string, url: string, baseMap = false, transparentBackground = true) {\r\n this.formatId = formatId;\r\n this.name = name;\r\n this.url = url;\r\n this.baseMap = baseMap;\r\n this.transparentBackground = transparentBackground;\r\n }\r\n\r\n public static fromJSON(json: MapLayerSourceProps): MapLayerSource | undefined {\r\n if (json === undefined)\r\n return undefined;\r\n\r\n return new MapLayerSource(json.formatId, json.name, json.url, json.baseMap, json.transparentBackground);\r\n }\r\n\r\n public async validateSource(ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n return IModelApp.mapLayerFormatRegistry.validateSource(this.formatId, this.url, this.userName, this.password, ignoreCache);\r\n }\r\n\r\n /** @internal*/\r\n public static fromBackgroundMapProps(props: DeprecatedBackgroundMapProps) {\r\n const provider = BackgroundMapProvider.fromBackgroundMapProps(props);\r\n const layerSettings = BaseMapLayerSettings.fromProvider(provider);\r\n if (undefined !== layerSettings) {\r\n const source = MapLayerSource.fromJSON(layerSettings);\r\n if (source) {\r\n source.baseMap = true;\r\n return source;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n public toJSON() {\r\n return { url: this.url, name: this.name, formatId: this.formatId, transparentBackground: this.transparentBackground };\r\n }\r\n\r\n public toLayerSettings(subLayers?: MapSubLayerProps[]): ImageMapLayerSettings | undefined {\r\n // When MapLayerSetting is created from a MapLayerSource, sub-layers and credentials need to be set separately.\r\n const layerSettings = ImageMapLayerSettings.fromJSON({ ...this, subLayers });\r\n if (this.userName !== undefined || this.password !== undefined) {\r\n layerSettings?.setCredentials(this.userName, this.password);\r\n }\r\n\r\n return layerSettings;\r\n }\r\n\r\n private getCredentials(): RequestBasicCredentials | undefined {\r\n return this.userName && this.password ? { user: this.userName, password: this.password } : undefined;\r\n }\r\n}\r\n\r\n/** A collection of [[MapLayerSource]] objects.\r\n * @beta\r\n */\r\nexport class MapLayerSources {\r\n private static _instance?: MapLayerSources;\r\n private constructor(private _sources: MapLayerSource[]) { }\r\n\r\n public static getInstance() { return MapLayerSources._instance; }\r\n\r\n public findByName(name: string, baseMap: boolean = false): MapLayerSource | undefined {\r\n const nameTest = name.toLowerCase();\r\n for (const source of this._sources)\r\n if (source.baseMap === baseMap && source.name.toLowerCase().indexOf(nameTest) !== -1)\r\n return source;\r\n\r\n return undefined;\r\n }\r\n public get layers(): MapLayerSource[] {\r\n const layers = new Array<MapLayerSource>();\r\n this._sources.forEach((source) => {\r\n if (!source.baseMap)\r\n layers.push(source);\r\n });\r\n\r\n return layers;\r\n }\r\n public get allSource() { return this._sources; }\r\n public get bases(): MapLayerSource[] {\r\n const layers = new Array<MapLayerSource>();\r\n this._sources.forEach((source) => {\r\n if (source.baseMap)\r\n layers.push(source);\r\n });\r\n\r\n return layers;\r\n }\r\n\r\n private static getBingMapLayerSource(): MapLayerSource[] {\r\n const mapLayerSources: MapLayerSource[] = [];\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"BingProvider\", providerData: { mapType: BackgroundMapType.Street } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"BingProvider\", providerData: { mapType: BackgroundMapType.Aerial } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"BingProvider\", providerData: { mapType: BackgroundMapType.Hybrid } })!);\r\n return mapLayerSources;\r\n }\r\n\r\n private static getMapBoxLayerSource(): MapLayerSource[] {\r\n const mapLayerSources: MapLayerSource[] = [];\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"MapBoxProvider\", providerData: { mapType: BackgroundMapType.Street } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"MapBoxProvider\", providerData: { mapType: BackgroundMapType.Aerial } })!);\r\n mapLayerSources.push(MapLayerSource.fromBackgroundMapProps({ providerName: \"MapBoxProvider\", providerData: { mapType: BackgroundMapType.Hybrid } })!);\r\n return mapLayerSources;\r\n }\r\n\r\n public static async create(iModel?: IModelConnection, queryForPublicSources = false, addMapBoxSources = false): Promise<MapLayerSources> {\r\n if (!queryForPublicSources && MapLayerSources._instance)\r\n return MapLayerSources._instance;\r\n\r\n if (!iModel)\r\n iModel = IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.iModel : undefined;\r\n\r\n let sourceRange = MapCartoRectangle.createMaximum();\r\n if (iModel) {\r\n const projectCenter = iModel.projectExtents.localXYZToWorld(.5, .5, .5)!;\r\n const cartoCenter = iModel.spatialToCartographicFromEcef(projectCenter);\r\n const globeRange = MapCartoRectangle.createMaximum();\r\n const nearDelta = Point2d.create(globeRange.xLength() / 100, globeRange.yLength() / 100);\r\n sourceRange = MapCartoRectangle.fromRadians(cartoCenter.longitude - nearDelta.x, cartoCenter.latitude - nearDelta.y, cartoCenter.longitude + nearDelta.x, cartoCenter.latitude + nearDelta.y);\r\n }\r\n\r\n const sources = new Array<MapLayerSource>();\r\n const urlSet = new Set<string>();\r\n const addSource = ((source: MapLayerSource) => {\r\n if (!urlSet.has(source.url)) {\r\n sources.push(source);\r\n urlSet.add(source.url);\r\n }\r\n });\r\n\r\n this.getBingMapLayerSource().forEach((source) => {\r\n addSource(source);\r\n });\r\n\r\n if (addMapBoxSources) {\r\n this.getMapBoxLayerSource().forEach((source) => {\r\n addSource(source);\r\n });\r\n }\r\n\r\n if (queryForPublicSources) {\r\n const sourcesJson = await request(`${IModelApp.publicPath}assets/MapLayerSources.json`, \"json\");\r\n\r\n for (const sourceJson of sourcesJson) {\r\n const source = MapLayerSource.fromJSON(sourceJson);\r\n if (source)\r\n addSource(source);\r\n }\r\n\r\n (await ArcGisUtilities.getSourcesFromQuery(sourceRange)).forEach((queriedSource) => addSource(queriedSource));\r\n }\r\n\r\n sources.sort((a: MapLayerSource, b: MapLayerSource) => compareStrings(a.name.toLowerCase(), b.name.toLowerCase()));\r\n\r\n const mapLayerSources = new MapLayerSources(sources);\r\n MapLayerSources._instance = mapLayerSources;\r\n\r\n return mapLayerSources;\r\n }\r\n public static async addSourceToMapLayerSources(mapLayerSource?: MapLayerSource): Promise<MapLayerSources | undefined> {\r\n if (!MapLayerSources._instance || !mapLayerSource) {\r\n return undefined;\r\n }\r\n MapLayerSources._instance._sources = MapLayerSources._instance._sources.filter((source) => {\r\n return !(source.name === mapLayerSource.name || source.url === mapLayerSource.url);\r\n });\r\n\r\n MapLayerSources._instance._sources.push(mapLayerSource);\r\n MapLayerSources._instance._sources.sort((a: MapLayerSource, b: MapLayerSource) => compareStrings(a.name.toLowerCase(), b.name.toLowerCase()));\r\n return MapLayerSources._instance;\r\n }\r\n\r\n public static removeLayerByName(name: string): boolean {\r\n if (!MapLayerSources._instance) {\r\n return false;\r\n }\r\n\r\n // For now we only rely on the name\r\n const lengthBeforeRemove = MapLayerSources._instance._sources.length;\r\n MapLayerSources._instance._sources = MapLayerSources._instance._sources.filter((source) => {\r\n return (source.name !== name);\r\n });\r\n return (lengthBeforeRemove !== MapLayerSources._instance._sources.length);\r\n }\r\n}\r\n"]}
@@ -173,7 +173,9 @@ export declare class MapTile extends RealityTile {
173
173
  * they apparently intersect view frustum. To avoid this force loading of terrain tiles if they exceed "_maxParentHightDepth".
174
174
  * @internal
175
175
  */
176
- forceSelectRealityTile(): boolean;
176
+ protected forceSelectRealityTile(): boolean;
177
+ /** @internal */
178
+ protected minimumVisibleFactor(): number;
177
179
  private static _scratchThisDiagonal;
178
180
  private static _scratchDrapeDiagonal;
179
181
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"MapTile.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapTile.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAe,QAAQ,EAAgD,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAiE,UAAU,EAAgC,cAAc,EAAqC,OAAO,EAAc,OAAO,EAAW,OAAO,EAAE,KAAK,EAAE,SAAS,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAExR,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EACnH,yBAAyB,EAC9D,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,qBAAa,eAAe;IACP,OAAO,EAAE,OAAO,EAAE;IAAS,MAAM,EAAE,QAAQ;IAAE,OAAO,CAAC,YAAY;gBAAjE,OAAO,EAAE,OAAO,EAAE,EAAS,MAAM,EAAE,QAAQ,EAAU,YAAY,EAAE,MAAM;IAGrF,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAUnE,YAAY,IAAI,OAAO,EAAE;CAGjC;AAED,gBAAgB;AAChB,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;AAEzD;;;GAGG;AACH,8BAAsB,iBAAiB;IACrC,oFAAoF;IACpF,aAAoB,UAAU,IAAI,OAAO,CAAC;IAC1C,aAAa;IACb,aAAoB,kBAAkB,IAAI,SAAS,CAAC;IAEpD;;OAEG;aACa,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAEzF,aAAa;IACb,IAAW,cAAc,IAAI,cAAc,GAAG,SAAS,CAAsB;IAE7E,aAAa;IACN,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;CAIlF;AA0CD,gBAAgB;AAChB,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,qBAAqB,CAAC;QACvC,6CAA6C;QAC7C,IAAI,CAAC,EAAE,iBAAiB,CAAC;KAC1B,CAAC;CACH;AAQD;;GAEG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAK;IACzC,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,+BAA+B,CAAC,CAAmB;IAC3D,gBAAgB;IACT,UAAU,UAAS;IAC1B,gBAAgB;IAChB,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,gBAAgB;IAChB,SAAS,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IAClD,gBAAgB;IAChB,SAAS,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACpC,gBAAgB;IAChB,IAAoB,OAAO,IAAI,OAAO,CAErC;IAED,gBAAgB;IAChB,IAAoB,WAAW,IAAI,OAAO,CAEzC;IAED,gBAAgB;IAChB,IAAW,cAAc,sCAAmC;IAC5D,gBAAgB;IAChB,IAAW,IAAI,kCAAyB;IACxC,gBAAgB;IAChB,IAAW,mBAAmB,YAA2C;IACzE,gBAAgB;IAChB,IAAW,QAAQ,IAAI,OAAO,CAAmD;IACjF,gBAAgB;IAChB,IAAW,YAAY,IAAI,cAAc,EAAE,GAAG,SAAS,CAA+B;IACtF;;OAEG;IACH,IAAW,kBAAkB,IAAI,cAAc,EAAE,GAAG,SAAS,CAA8B;IAE3F;;;;;OAKG;IACH,IAAW,8BAA8B,IAAI,cAAc,EAAE,GAAG,SAAS,CAAiD;IAE1H,sDAAsD;IACtD,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,4DAA4D;IAC5D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,sEAAsE;IACtE,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAC7C,gBAAgB;IAChB,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IAEhC,gBAAgB;gBACJ,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,GAAG,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS;IAU9L,gBAAgB;IACT,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAIpD,gBAAgB;IACA,wBAAwB,IAAI,OAAO,EAAE,GAAG,SAAS;IAMjE,gBAAgB;IACA,QAAQ,CAAC,IAAI,EAAE,YAAY;IAO3C,gBAAgB;IAChB,IAAoB,WAAW,oBAK9B;IAED,gBAAgB;IAChB,IAAW,SAAS,kBAAuD;IAC3E,gBAAgB;IAChB,IAAW,WAAW,YAAoB;IAE1C,gBAAgB;IACT,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAuB1D,OAAO,KAAK,iBAAiB,GAG5B;IAED,gBAAgB;IACA,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ;IAkD3E,gBAAgB;IACA,cAAc,IAAI,UAAU,GAAG,SAAS;IA8BxD,gBAAgB;IACA,WAAW,IAAI,IAAI;IAQnC,gBAAgB;IACT,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS;IAI5F;;OAEG;IACH,IAAoB,aAAa,YAEhC;IAED,gBAAgB;IACA,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAwB/D,gBAAgB;cACG,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAsDxH,OAAO,CAAC,mBAAmB;IA0B3B,gBAAgB;WACF,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,OAAO;IAqBtI,gBAAgB;IACA,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAI3D,gBAAgB;IACA,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAI5D,gBAAgB;IACT,WAAW;IAQlB,OAAO,CAAC,iBAAiB;IAazB,gBAAgB;IACA,eAAe,IAAI,aAAa,GAAG,SAAS;IAmB5D,gBAAgB;IACT,YAAY,IAAI,OAAO,EAAE;IAIhC,gBAAgB;cACG,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAa3E;;;;OAIG;IACH,IAAW,WAAW,IAAI,OAAO,GAAG,SAAS,CAY5C;IAED,gBAAgB;IAChB,IAAW,eAAe,gDAEzB;IAED,iFAAiF;IAC1E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAYzD,iGAAiG;IAC1F,aAAa,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,iBAAiB;IAI9D,gBAAgB;IAChB,IAAW,kBAAkB,IAAI,OAAO,CASvC;IAED,gBAAgB;IAChB,IAAW,cAAc,IAAI,OAAO,CAKnC;IAED;;OAEG;IACa,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,yBAAyB;IAgD3F,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAkC;IACnE,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAkC;IAEnE;;;;OAIG;IACa,sBAAsB,IAAI,OAAO;IASjD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAqB;IACxD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAqB;IAEzD,gBAAgB;IACT,gBAAgB,IAAI,cAAc,EAAE,GAAG,SAAS;IA8CvD,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAwB;IAE7D,OAAO,CAAC,mBAAmB;IAmB3B,gBAAgB;IACA,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAsB7D,gBAAgB;IACA,UAAU,IAAI,IAAI;IAIlC,gBAAgB;IACA,eAAe;CAMhC;AAED,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,IAAoB,WAAW,YAAmB;IAClD,IAAoB,OAAO,YAAoB;IAC/C,IAAoB,YAAY,IAAI,WAAW,CAK9C;IAED,OAAO,CAAC,kBAAkB;IAiB1B,IAAoB,cAAc,sCAQjC;IAED,IAAoB,SAAS,IAAI,OAAO,CAAwC;IAChF,IAAoB,QAAQ,IAAI,OAAO,CAAuC;IAC9E,IAAoB,UAAU,IAAI,OAAO,CAAyC;IAClF,IAAoB,OAAO,IAAI,OAAO,CAAqI;IAE3J,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;CAInD"}
1
+ {"version":3,"file":"MapTile.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapTile.ts"],"names":[],"mappings":"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"}
@@ -553,6 +553,10 @@ class MapTile extends internal_1.RealityTile {
553
553
  return parentHeightDepth > MapTile._maxParentHeightDepth;
554
554
  }
555
555
  /** @internal */
556
+ minimumVisibleFactor() {
557
+ return 0.25;
558
+ }
559
+ /** @internal */
556
560
  getDrapeTextures() {
557
561
  if (undefined === this._imageryTiles)
558
562
  return undefined;