@itwin/core-frontend 5.11.0-dev.11 → 5.11.0-dev.13
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/CHANGELOG.md +8 -1
- package/lib/cjs/BingLocation.d.ts +3 -0
- package/lib/cjs/BingLocation.d.ts.map +1 -1
- package/lib/cjs/BingLocation.js +5 -1
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/GeoProviders.d.ts +45 -0
- package/lib/cjs/GeoProviders.d.ts.map +1 -0
- package/lib/cjs/GeoProviders.js +49 -0
- package/lib/cjs/GeoProviders.js.map +1 -0
- package/lib/cjs/IModelApp.d.ts +33 -0
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +31 -0
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +3 -3
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +15 -8
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js +3 -6
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +2 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +6 -2
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts +22 -0
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +53 -5
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +5 -0
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +4 -0
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +16 -4
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +18 -8
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +3 -2
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +18 -8
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +2 -3
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/BingLocation.d.ts +3 -0
- package/lib/esm/BingLocation.d.ts.map +1 -1
- package/lib/esm/BingLocation.js +5 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/GeoProviders.d.ts +45 -0
- package/lib/esm/GeoProviders.d.ts.map +1 -0
- package/lib/esm/GeoProviders.js +45 -0
- package/lib/esm/GeoProviders.js.map +1 -0
- package/lib/esm/IModelApp.d.ts +33 -0
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +32 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +3 -3
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +15 -8
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/esm/ViewGlobalLocation.js +3 -6
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +4 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +6 -2
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts +22 -0
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +54 -6
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +5 -0
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +4 -0
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +16 -4
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +18 -8
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +3 -2
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +19 -9
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +2 -3
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/package.json +20 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @itwin/core-frontend
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Tue, 16 Jun 2026 13:00:23 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 5.10.3
|
|
6
|
+
Tue, 16 Jun 2026 12:58:32 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- NativeApp.startup now always reports the initial connectivity to the backend. Previously, if if `window.navigator.onLine` was false at startup, setConnectivity was never called, leaving the backend incorrectly assuming it was online.
|
|
4
11
|
|
|
5
12
|
## 5.10.2
|
|
6
13
|
Thu, 11 Jun 2026 21:09:38 GMT
|
|
@@ -6,6 +6,9 @@ import { GlobalLocation } from "./ViewGlobalLocation";
|
|
|
6
6
|
* Use of this service requires an API key to be supplied via [[MapLayerOptions.BingMaps]] in the [[IModelAppOptions.mapLayerOptions]] passed to [[IModelApp.startup]].
|
|
7
7
|
* @public
|
|
8
8
|
* @extensions
|
|
9
|
+
* @deprecated in 5.11.0. Provide a [[LocationProvider]] implementation via [[IModelAppOptions.geospatialProviders]].
|
|
10
|
+
* @note This class structurally satisfies [[LocationProvider]] but does not use an explicit `implements` clause
|
|
11
|
+
* because api-extractor forbids `@public` classes from referencing `@beta` interfaces (ae-incompatible-release-tags).
|
|
9
12
|
*/
|
|
10
13
|
export declare class BingLocationProvider {
|
|
11
14
|
private _locationRequestTemplate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BingLocation.d.ts","sourceRoot":"","sources":["../../src/BingLocation.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"BingLocation.d.ts","sourceRoot":"","sources":["../../src/BingLocation.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,wBAAwB,CAAS;;IAUzC;;;;OAIG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;CAqB7E"}
|
package/lib/cjs/BingLocation.js
CHANGED
|
@@ -15,13 +15,17 @@ const IModelApp_1 = require("./IModelApp");
|
|
|
15
15
|
* Use of this service requires an API key to be supplied via [[MapLayerOptions.BingMaps]] in the [[IModelAppOptions.mapLayerOptions]] passed to [[IModelApp.startup]].
|
|
16
16
|
* @public
|
|
17
17
|
* @extensions
|
|
18
|
+
* @deprecated in 5.11.0. Provide a [[LocationProvider]] implementation via [[IModelAppOptions.geospatialProviders]].
|
|
19
|
+
* @note This class structurally satisfies [[LocationProvider]] but does not use an explicit `implements` clause
|
|
20
|
+
* because api-extractor forbids `@public` classes from referencing `@beta` interfaces (ae-incompatible-release-tags).
|
|
18
21
|
*/
|
|
19
22
|
class BingLocationProvider {
|
|
20
23
|
_locationRequestTemplate;
|
|
21
24
|
constructor() {
|
|
22
25
|
let bingKey = "";
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- this deprecated class reads from the deprecated BingMaps key by design
|
|
23
27
|
if (IModelApp_1.IModelApp.mapLayerFormatRegistry.configOptions.BingMaps) {
|
|
24
|
-
bingKey = IModelApp_1.IModelApp.mapLayerFormatRegistry.configOptions.BingMaps.value;
|
|
28
|
+
bingKey = IModelApp_1.IModelApp.mapLayerFormatRegistry.configOptions.BingMaps.value; // eslint-disable-line @typescript-eslint/no-deprecated
|
|
25
29
|
}
|
|
26
30
|
this._locationRequestTemplate = `https://dev.virtualearth.net/REST/v1/Locations?query={query}&key=${bingKey}`;
|
|
27
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BingLocation.js","sourceRoot":"","sources":["../../src/BingLocation.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,oDAAkD;AAClD,+CAA4C;AAC5C,2CAAwC;AAGxC
|
|
1
|
+
{"version":3,"file":"BingLocation.js","sourceRoot":"","sources":["../../src/BingLocation.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,oDAAkD;AAClD,+CAA4C;AAC5C,2CAAwC;AAGxC;;;;;;;GAOG;AACH,MAAa,oBAAoB;IACvB,wBAAwB,CAAS;IAEzC;QACE,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,sIAAsI;QACtI,IAAI,qBAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5D,OAAO,GAAG,qBAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,uDAAuD;QAClI,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,oEAAoE,OAAO,EAAE,CAAC;IAChH,CAAC;IACD;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,IAAA,iBAAO,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAClE,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,0BAAY,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,IAAI,EAAE;oBACJ,SAAS,EAAE,0BAAY,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;oBAC1F,SAAS,EAAE,0BAAY,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;iBAC3F;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AArCD,oDAqCC","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 Tiles\r\n */\r\n\r\nimport { Cartographic } from \"@itwin/core-common\";\r\nimport { request } from \"./request/Request\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { GlobalLocation } from \"./ViewGlobalLocation\";\r\n\r\n/** Provides an interface to the [Bing Maps location services](https://docs.microsoft.com/en-us/bingmaps/rest-services/locations/).\r\n * Use of this service requires an API key to be supplied via [[MapLayerOptions.BingMaps]] in the [[IModelAppOptions.mapLayerOptions]] passed to [[IModelApp.startup]].\r\n * @public\r\n * @extensions\r\n * @deprecated in 5.11.0. Provide a [[LocationProvider]] implementation via [[IModelAppOptions.geospatialProviders]].\r\n * @note This class structurally satisfies [[LocationProvider]] but does not use an explicit `implements` clause\r\n * because api-extractor forbids `@public` classes from referencing `@beta` interfaces (ae-incompatible-release-tags).\r\n */\r\nexport class BingLocationProvider {\r\n private _locationRequestTemplate: string;\r\n\r\n constructor() {\r\n let bingKey = \"\";\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- this deprecated class reads from the deprecated BingMaps key by design\r\n if (IModelApp.mapLayerFormatRegistry.configOptions.BingMaps) {\r\n bingKey = IModelApp.mapLayerFormatRegistry.configOptions.BingMaps.value; // eslint-disable-line @typescript-eslint/no-deprecated\r\n }\r\n this._locationRequestTemplate = `https://dev.virtualearth.net/REST/v1/Locations?query={query}&key=${bingKey}`;\r\n }\r\n /** Return the location of a query (or undefined if not found). The strings \"Space Needle\" (a landmark) and \"1 Microsoft Way Redmond WA\" (an address) are examples of query strings with location information.\r\n * These strings can be specified as a structured URL parameter or as a query parameter value. See [Bing Location Services documentation](https://docs.microsoft.com/en-us/bingmaps/rest-services/locations/find-a-location-by-query) for additional\r\n * information on queries.\r\n * @public\r\n */\r\n public async getLocation(query: string): Promise<GlobalLocation | undefined> {\r\n const requestUrl = this._locationRequestTemplate.replace(\"{query}\", query);\r\n try {\r\n const locationResponse = await request(requestUrl, \"json\");\r\n const point = locationResponse.resourceSets[0].resources[0].point;\r\n const bbox = locationResponse.resourceSets[0].resources[0].bbox;\r\n const southLatitude = bbox[0];\r\n const westLongitude = bbox[1];\r\n const northLatitude = bbox[2];\r\n const eastLongitude = bbox[3];\r\n return {\r\n center: Cartographic.fromDegrees({ longitude: point.coordinates[1], latitude: point.coordinates[0] }),\r\n area: {\r\n southwest: Cartographic.fromDegrees({ longitude: westLongitude, latitude: southLatitude }),\r\n northeast: Cartographic.fromDegrees({ longitude: eastLongitude, latitude: northLatitude }),\r\n },\r\n };\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Views
|
|
3
|
+
*/
|
|
4
|
+
import { Cartographic } from "@itwin/core-common";
|
|
5
|
+
import { Range1d, Range2d } from "@itwin/core-geometry";
|
|
6
|
+
import { IModelConnection } from "./IModelConnection";
|
|
7
|
+
import type { GlobalLocation } from "./ViewGlobalLocation";
|
|
8
|
+
/** Provides terrain elevation data.
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
11
|
+
export interface ElevationProvider {
|
|
12
|
+
/** Return the height (altitude) at a given cartographic location.
|
|
13
|
+
* If geodetic is true (the default) then height is returned in the Ellipsoidal WGS84 datum.
|
|
14
|
+
* If geodetic is false then sea level height is returned using the Earth Gravitational Model 2008 (EGM2008 2.5').
|
|
15
|
+
*/
|
|
16
|
+
getHeight(carto: Cartographic, geodetic?: boolean): Promise<number>;
|
|
17
|
+
/** Return a grid of elevations within the specified range.
|
|
18
|
+
* Returns undefined if elevation data is unavailable for the range.
|
|
19
|
+
* Implementations that do not support bulk grid queries may omit this method.
|
|
20
|
+
*/
|
|
21
|
+
getHeights?(range: Range2d): Promise<number[] | undefined>;
|
|
22
|
+
}
|
|
23
|
+
/** Provides geoid undulation — the offset between the geodetic ellipsoid (WGS84) and sea level (EGM2008).
|
|
24
|
+
* @beta
|
|
25
|
+
*/
|
|
26
|
+
export interface GeoidProvider {
|
|
27
|
+
/** Return the offset from geodetic height to sea level height at the given cartographic location. */
|
|
28
|
+
getGeodeticToSeaLevelOffset(carto: Cartographic): Promise<number>;
|
|
29
|
+
}
|
|
30
|
+
/** Provides geocoding — converting a query string to a geographic location.
|
|
31
|
+
* @beta
|
|
32
|
+
*/
|
|
33
|
+
export interface LocationProvider {
|
|
34
|
+
/** Return the location for a query string, or undefined if not found. */
|
|
35
|
+
getLocation(query: string): Promise<GlobalLocation | undefined>;
|
|
36
|
+
}
|
|
37
|
+
/** Compute the elevation range for an iModel's project extents using the given provider.
|
|
38
|
+
* @beta
|
|
39
|
+
*/
|
|
40
|
+
export declare function getHeightRange(provider: ElevationProvider, iModel: IModelConnection): Promise<Range1d>;
|
|
41
|
+
/** Compute the average elevation for an iModel's project extents using the given provider.
|
|
42
|
+
* @beta
|
|
43
|
+
*/
|
|
44
|
+
export declare function getHeightAverage(provider: ElevationProvider, iModel: IModelConnection): Promise<number>;
|
|
45
|
+
//# sourceMappingURL=GeoProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoProviders.d.ts","sourceRoot":"","sources":["../../src/GeoProviders.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE;;;OAGG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qGAAqG;IACrG,2BAA2B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB5G;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB7G"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module Views
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getHeightRange = getHeightRange;
|
|
11
|
+
exports.getHeightAverage = getHeightAverage;
|
|
12
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
13
|
+
/** Compute the elevation range for an iModel's project extents using the given provider.
|
|
14
|
+
* @beta
|
|
15
|
+
*/
|
|
16
|
+
async function getHeightRange(provider, iModel) {
|
|
17
|
+
if (!iModel.isGeoLocated)
|
|
18
|
+
return core_geometry_1.Range1d.createNull();
|
|
19
|
+
const latLongRange = core_geometry_1.Range2d.createNull();
|
|
20
|
+
const range = iModel.projectExtents.clone();
|
|
21
|
+
// Expand for project surroundings.
|
|
22
|
+
range.expandInPlace(1000);
|
|
23
|
+
for (const corner of range.corners()) {
|
|
24
|
+
const carto = iModel.spatialToCartographicFromEcef(corner);
|
|
25
|
+
latLongRange.extendXY(carto.longitudeDegrees, carto.latitudeDegrees);
|
|
26
|
+
}
|
|
27
|
+
const heights = await provider.getHeights?.(latLongRange);
|
|
28
|
+
return heights ? core_geometry_1.Range1d.createArray(heights) : core_geometry_1.Range1d.createNull();
|
|
29
|
+
}
|
|
30
|
+
/** Compute the average elevation for an iModel's project extents using the given provider.
|
|
31
|
+
* @beta
|
|
32
|
+
*/
|
|
33
|
+
async function getHeightAverage(provider, iModel) {
|
|
34
|
+
if (!iModel.isGeoLocated)
|
|
35
|
+
return 0;
|
|
36
|
+
const latLongRange = core_geometry_1.Range2d.createNull();
|
|
37
|
+
for (const corner of iModel.projectExtents.corners()) {
|
|
38
|
+
const carto = iModel.spatialToCartographicFromEcef(corner);
|
|
39
|
+
latLongRange.extendXY(carto.longitudeDegrees, carto.latitudeDegrees);
|
|
40
|
+
}
|
|
41
|
+
const heights = await provider.getHeights?.(latLongRange);
|
|
42
|
+
if (!heights || !heights.length)
|
|
43
|
+
return 0;
|
|
44
|
+
let total = 0.0;
|
|
45
|
+
for (const height of heights)
|
|
46
|
+
total += height;
|
|
47
|
+
return total / heights.length;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=GeoProviders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoProviders.js","sourceRoot":"","sources":["../../src/GeoProviders.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AA2CH,wCAgBC;AAKD,4CAmBC;AAhFD,wDAAwD;AAqCxD;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,QAA2B,EAAE,MAAwB;IACxF,IAAI,CAAC,MAAM,CAAC,YAAY;QACtB,OAAO,uBAAO,CAAC,UAAU,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAE5C,mCAAmC;IACnC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAC3D,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,uBAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAO,CAAC,UAAU,EAAE,CAAC;AACvE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,QAA2B,EAAE,MAAwB;IAC1F,IAAI,CAAC,MAAM,CAAC,YAAY;QACtB,OAAO,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAC3D,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;QAC7B,OAAO,CAAC,CAAC;IAEX,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,KAAK,MAAM,MAAM,IAAI,OAAO;QAC1B,KAAK,IAAI,MAAM,CAAC;IAElB,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAChC,CAAC","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 Views\r\n */\r\n\r\nimport { Cartographic } from \"@itwin/core-common\";\r\nimport { Range1d, Range2d } from \"@itwin/core-geometry\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport type { GlobalLocation } from \"./ViewGlobalLocation\";\r\n\r\n/** Provides terrain elevation data.\r\n * @beta\r\n */\r\nexport interface ElevationProvider {\r\n /** Return the height (altitude) at a given cartographic location.\r\n * If geodetic is true (the default) then height is returned in the Ellipsoidal WGS84 datum.\r\n * If geodetic is false then sea level height is returned using the Earth Gravitational Model 2008 (EGM2008 2.5').\r\n */\r\n getHeight(carto: Cartographic, geodetic?: boolean): Promise<number>;\r\n\r\n /** Return a grid of elevations within the specified range.\r\n * Returns undefined if elevation data is unavailable for the range.\r\n * Implementations that do not support bulk grid queries may omit this method.\r\n */\r\n getHeights?(range: Range2d): Promise<number[] | undefined>;\r\n}\r\n\r\n/** Provides geoid undulation — the offset between the geodetic ellipsoid (WGS84) and sea level (EGM2008).\r\n * @beta\r\n */\r\nexport interface GeoidProvider {\r\n /** Return the offset from geodetic height to sea level height at the given cartographic location. */\r\n getGeodeticToSeaLevelOffset(carto: Cartographic): Promise<number>;\r\n}\r\n\r\n/** Provides geocoding — converting a query string to a geographic location.\r\n * @beta\r\n */\r\nexport interface LocationProvider {\r\n /** Return the location for a query string, or undefined if not found. */\r\n getLocation(query: string): Promise<GlobalLocation | undefined>;\r\n}\r\n\r\n/** Compute the elevation range for an iModel's project extents using the given provider.\r\n * @beta\r\n */\r\nexport async function getHeightRange(provider: ElevationProvider, iModel: IModelConnection): Promise<Range1d> {\r\n if (!iModel.isGeoLocated)\r\n return Range1d.createNull();\r\n\r\n const latLongRange = Range2d.createNull();\r\n const range = iModel.projectExtents.clone();\r\n\r\n // Expand for project surroundings.\r\n range.expandInPlace(1000);\r\n for (const corner of range.corners()) {\r\n const carto = iModel.spatialToCartographicFromEcef(corner);\r\n latLongRange.extendXY(carto.longitudeDegrees, carto.latitudeDegrees);\r\n }\r\n\r\n const heights = await provider.getHeights?.(latLongRange);\r\n return heights ? Range1d.createArray(heights) : Range1d.createNull();\r\n}\r\n\r\n/** Compute the average elevation for an iModel's project extents using the given provider.\r\n * @beta\r\n */\r\nexport async function getHeightAverage(provider: ElevationProvider, iModel: IModelConnection): Promise<number> {\r\n if (!iModel.isGeoLocated)\r\n return 0;\r\n\r\n const latLongRange = Range2d.createNull();\r\n for (const corner of iModel.projectExtents.corners()) {\r\n const carto = iModel.spatialToCartographicFromEcef(corner);\r\n latLongRange.extendXY(carto.longitudeDegrees, carto.latitudeDegrees);\r\n }\r\n\r\n const heights = await provider.getHeights?.(latLongRange);\r\n if (!heights || !heights.length)\r\n return 0;\r\n\r\n let total = 0.0;\r\n for (const height of heights)\r\n total += height;\r\n\r\n return total / heights.length;\r\n}\r\n"]}
|
package/lib/cjs/IModelApp.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { RenderSystem } from "./render/RenderSystem";
|
|
|
20
20
|
import { TentativePoint } from "./TentativePoint";
|
|
21
21
|
import { RealityDataSourceProviderRegistry } from "./RealityDataSource";
|
|
22
22
|
import { MapLayerFormatRegistry, MapLayerOptions, TerrainProviderRegistry, TileAdmin } from "./tile/internal";
|
|
23
|
+
import { ElevationProvider, GeoidProvider, LocationProvider } from "./GeoProviders";
|
|
23
24
|
import { ToolRegistry } from "./tools/Tool";
|
|
24
25
|
import { ToolAdmin } from "./tools/ToolAdmin";
|
|
25
26
|
import { UserPreferencesAccess } from "./UserPreferences";
|
|
@@ -60,6 +61,20 @@ export interface IModelAppOptions {
|
|
|
60
61
|
* @beta
|
|
61
62
|
*/
|
|
62
63
|
mapLayerOptions?: MapLayerOptions;
|
|
64
|
+
/** Geospatial service providers for elevation, geoid, and geocoding.
|
|
65
|
+
* If not supplied, deprecated Bing-backed defaults are used for backward compatibility.
|
|
66
|
+
* @note If you have not yet migrated to custom providers, continue supplying the deprecated
|
|
67
|
+
* [[MapLayerOptions.BingMaps]] key as an interim measure. To fully remove the Bing dependency, supply custom implementations here.
|
|
68
|
+
* @beta
|
|
69
|
+
*/
|
|
70
|
+
geospatialProviders?: {
|
|
71
|
+
/** Terrain height lookup. Defaults to [[BingElevationProvider]]. */
|
|
72
|
+
elevationProvider?: ElevationProvider;
|
|
73
|
+
/** Geodetic-to-sea-level offset. Defaults to [[BingElevationProvider]] (which implements both). */
|
|
74
|
+
geoidProvider?: GeoidProvider;
|
|
75
|
+
/** Geocoding (query string to location). Defaults to [[BingLocationProvider]]. */
|
|
76
|
+
locationProvider?: LocationProvider;
|
|
77
|
+
};
|
|
63
78
|
/** If present, supplies the properties with which to initialize the [[TileAdmin]] for this session. */
|
|
64
79
|
tileAdmin?: TileAdmin.Props;
|
|
65
80
|
/** If present, supplies the [[NotificationManager]] for this session. */
|
|
@@ -169,6 +184,9 @@ export declare class IModelApp {
|
|
|
169
184
|
private static _securityOptions;
|
|
170
185
|
private static _mapLayerFormatRegistry;
|
|
171
186
|
private static _terrainProviderRegistry;
|
|
187
|
+
private static _elevationProvider;
|
|
188
|
+
private static _geoidProvider;
|
|
189
|
+
private static _locationProvider;
|
|
172
190
|
private static _realityDataSourceProviders;
|
|
173
191
|
private static _hubAccess?;
|
|
174
192
|
private static _realityDataAccess?;
|
|
@@ -190,6 +208,21 @@ export declare class IModelApp {
|
|
|
190
208
|
static get mapLayerFormatRegistry(): MapLayerFormatRegistry;
|
|
191
209
|
/** The [[TerrainProviderRegistry]] for this session. */
|
|
192
210
|
static get terrainProviderRegistry(): TerrainProviderRegistry;
|
|
211
|
+
/** The [[ElevationProvider]] for this session.
|
|
212
|
+
* @beta
|
|
213
|
+
*/
|
|
214
|
+
static get elevationProvider(): ElevationProvider;
|
|
215
|
+
static set elevationProvider(provider: ElevationProvider);
|
|
216
|
+
/** The [[GeoidProvider]] for this session.
|
|
217
|
+
* @beta
|
|
218
|
+
*/
|
|
219
|
+
static get geoidProvider(): GeoidProvider;
|
|
220
|
+
static set geoidProvider(provider: GeoidProvider);
|
|
221
|
+
/** The [[LocationProvider]] for this session.
|
|
222
|
+
* @beta
|
|
223
|
+
*/
|
|
224
|
+
static get locationProvider(): LocationProvider;
|
|
225
|
+
static set locationProvider(provider: LocationProvider);
|
|
193
226
|
/** The [[RealityDataSourceProviderRegistry]] for this session.
|
|
194
227
|
* @beta
|
|
195
228
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,cAAc;AACd,eAAO,MAAM,oBAAoB,EAA0B,MAAM,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAyD,UAAU,EAAyC,MAAM,qBAAqB,CAAC;AACjL,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAAoB,sBAAsB,EAAqC,MAAM,oBAAoB,CAAC;AAEvK,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAA4B,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAgB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAA0B,iBAAiB,EAA+B,MAAM,yCAAyC,CAAC;AACjI,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/IModelApp.js
CHANGED
|
@@ -66,6 +66,7 @@ const spatialViewState = __importStar(require("./SpatialViewState"));
|
|
|
66
66
|
const TentativePoint_1 = require("./TentativePoint");
|
|
67
67
|
const RealityDataSource_1 = require("./RealityDataSource");
|
|
68
68
|
const internal_1 = require("./tile/internal");
|
|
69
|
+
const BingLocation_1 = require("./BingLocation");
|
|
69
70
|
const accudrawTool = __importStar(require("./tools/AccuDrawTool"));
|
|
70
71
|
const clipViewTool = __importStar(require("./tools/ClipViewTool"));
|
|
71
72
|
const idleTool = __importStar(require("./tools/IdleTool"));
|
|
@@ -111,6 +112,9 @@ class IModelApp {
|
|
|
111
112
|
static _securityOptions;
|
|
112
113
|
static _mapLayerFormatRegistry;
|
|
113
114
|
static _terrainProviderRegistry;
|
|
115
|
+
static _elevationProvider;
|
|
116
|
+
static _geoidProvider;
|
|
117
|
+
static _locationProvider;
|
|
114
118
|
static _realityDataSourceProviders;
|
|
115
119
|
static _hubAccess;
|
|
116
120
|
static _realityDataAccess;
|
|
@@ -133,6 +137,21 @@ class IModelApp {
|
|
|
133
137
|
static get mapLayerFormatRegistry() { return this._mapLayerFormatRegistry; }
|
|
134
138
|
/** The [[TerrainProviderRegistry]] for this session. */
|
|
135
139
|
static get terrainProviderRegistry() { return this._terrainProviderRegistry; }
|
|
140
|
+
/** The [[ElevationProvider]] for this session.
|
|
141
|
+
* @beta
|
|
142
|
+
*/
|
|
143
|
+
static get elevationProvider() { return (0, core_bentley_1.expectDefined)(this._elevationProvider); }
|
|
144
|
+
static set elevationProvider(provider) { this._elevationProvider = provider; }
|
|
145
|
+
/** The [[GeoidProvider]] for this session.
|
|
146
|
+
* @beta
|
|
147
|
+
*/
|
|
148
|
+
static get geoidProvider() { return (0, core_bentley_1.expectDefined)(this._geoidProvider); }
|
|
149
|
+
static set geoidProvider(provider) { this._geoidProvider = provider; }
|
|
150
|
+
/** The [[LocationProvider]] for this session.
|
|
151
|
+
* @beta
|
|
152
|
+
*/
|
|
153
|
+
static get locationProvider() { return (0, core_bentley_1.expectDefined)(this._locationProvider); }
|
|
154
|
+
static set locationProvider(provider) { this._locationProvider = provider; }
|
|
136
155
|
/** The [[RealityDataSourceProviderRegistry]] for this session.
|
|
137
156
|
* @beta
|
|
138
157
|
*/
|
|
@@ -308,6 +327,15 @@ class IModelApp {
|
|
|
308
327
|
this._uiAdmin = opts.uiAdmin ?? new appui_abstract_1.UiAdmin();
|
|
309
328
|
this._mapLayerFormatRegistry = new internal_1.MapLayerFormatRegistry(opts.mapLayerOptions);
|
|
310
329
|
this._terrainProviderRegistry = new internal_1.TerrainProviderRegistry();
|
|
330
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- intentional: Bing is the backward-compat default until it is removed in a future major version
|
|
331
|
+
let defaultBingElevation;
|
|
332
|
+
const geo = opts.geospatialProviders;
|
|
333
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
334
|
+
const lazyBing = () => defaultBingElevation ??= new internal_1.BingElevationProvider();
|
|
335
|
+
this._elevationProvider = geo?.elevationProvider ?? lazyBing();
|
|
336
|
+
this._geoidProvider = geo?.geoidProvider ?? lazyBing();
|
|
337
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
338
|
+
this._locationProvider = geo?.locationProvider ?? new BingLocation_1.BingLocationProvider();
|
|
311
339
|
this._realityDataSourceProviders = new RealityDataSource_1.RealityDataSourceProviderRegistry();
|
|
312
340
|
this._realityDataAccess = opts.realityDataAccess;
|
|
313
341
|
this._formatsProviderManager = new QuantityFormatter_1.FormatsProviderManager(opts.formatsProvider ?? new QuantityFormatter_1.QuantityTypeFormatsProvider());
|
|
@@ -345,6 +373,9 @@ class IModelApp {
|
|
|
345
373
|
[this.toolAdmin, this.viewManager, this.tileAdmin].forEach((sys) => sys.onShutDown());
|
|
346
374
|
this.tools.shutdown();
|
|
347
375
|
this._renderSystem = (0, core_bentley_1.dispose)(this._renderSystem);
|
|
376
|
+
this._elevationProvider = undefined;
|
|
377
|
+
this._geoidProvider = undefined;
|
|
378
|
+
this._locationProvider = undefined;
|
|
348
379
|
this._entityClasses.clear();
|
|
349
380
|
this.authorizationClient = undefined;
|
|
350
381
|
this._initialized = false;
|