@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
|
@@ -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/esm/BingLocation.js
CHANGED
|
@@ -12,13 +12,17 @@ import { IModelApp } from "./IModelApp";
|
|
|
12
12
|
* Use of this service requires an API key to be supplied via [[MapLayerOptions.BingMaps]] in the [[IModelAppOptions.mapLayerOptions]] passed to [[IModelApp.startup]].
|
|
13
13
|
* @public
|
|
14
14
|
* @extensions
|
|
15
|
+
* @deprecated in 5.11.0. Provide a [[LocationProvider]] implementation via [[IModelAppOptions.geospatialProviders]].
|
|
16
|
+
* @note This class structurally satisfies [[LocationProvider]] but does not use an explicit `implements` clause
|
|
17
|
+
* because api-extractor forbids `@public` classes from referencing `@beta` interfaces (ae-incompatible-release-tags).
|
|
15
18
|
*/
|
|
16
19
|
export class BingLocationProvider {
|
|
17
20
|
_locationRequestTemplate;
|
|
18
21
|
constructor() {
|
|
19
22
|
let bingKey = "";
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- this deprecated class reads from the deprecated BingMaps key by design
|
|
20
24
|
if (IModelApp.mapLayerFormatRegistry.configOptions.BingMaps) {
|
|
21
|
-
bingKey = IModelApp.mapLayerFormatRegistry.configOptions.BingMaps.value;
|
|
25
|
+
bingKey = IModelApp.mapLayerFormatRegistry.configOptions.BingMaps.value; // eslint-disable-line @typescript-eslint/no-deprecated
|
|
22
26
|
}
|
|
23
27
|
this._locationRequestTemplate = `https://dev.virtualearth.net/REST/v1/Locations?query={query}&key=${bingKey}`;
|
|
24
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BingLocation.js","sourceRoot":"","sources":["../../src/BingLocation.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC
|
|
1
|
+
{"version":3,"file":"BingLocation.js","sourceRoot":"","sources":["../../src/BingLocation.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAoB;IACvB,wBAAwB,CAAS;IAEzC;QACE,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,sIAAsI;QACtI,IAAI,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5D,OAAO,GAAG,SAAS,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,OAAO,CAAC,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,YAAY,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,YAAY,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;oBAC1F,SAAS,EAAE,YAAY,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","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,45 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module Views
|
|
7
|
+
*/
|
|
8
|
+
import { Range1d, Range2d } from "@itwin/core-geometry";
|
|
9
|
+
/** Compute the elevation range for an iModel's project extents using the given provider.
|
|
10
|
+
* @beta
|
|
11
|
+
*/
|
|
12
|
+
export async function getHeightRange(provider, iModel) {
|
|
13
|
+
if (!iModel.isGeoLocated)
|
|
14
|
+
return Range1d.createNull();
|
|
15
|
+
const latLongRange = Range2d.createNull();
|
|
16
|
+
const range = iModel.projectExtents.clone();
|
|
17
|
+
// Expand for project surroundings.
|
|
18
|
+
range.expandInPlace(1000);
|
|
19
|
+
for (const corner of range.corners()) {
|
|
20
|
+
const carto = iModel.spatialToCartographicFromEcef(corner);
|
|
21
|
+
latLongRange.extendXY(carto.longitudeDegrees, carto.latitudeDegrees);
|
|
22
|
+
}
|
|
23
|
+
const heights = await provider.getHeights?.(latLongRange);
|
|
24
|
+
return heights ? Range1d.createArray(heights) : Range1d.createNull();
|
|
25
|
+
}
|
|
26
|
+
/** Compute the average elevation for an iModel's project extents using the given provider.
|
|
27
|
+
* @beta
|
|
28
|
+
*/
|
|
29
|
+
export async function getHeightAverage(provider, iModel) {
|
|
30
|
+
if (!iModel.isGeoLocated)
|
|
31
|
+
return 0;
|
|
32
|
+
const latLongRange = Range2d.createNull();
|
|
33
|
+
for (const corner of iModel.projectExtents.corners()) {
|
|
34
|
+
const carto = iModel.spatialToCartographicFromEcef(corner);
|
|
35
|
+
latLongRange.extendXY(carto.longitudeDegrees, carto.latitudeDegrees);
|
|
36
|
+
}
|
|
37
|
+
const heights = await provider.getHeights?.(latLongRange);
|
|
38
|
+
if (!heights || !heights.length)
|
|
39
|
+
return 0;
|
|
40
|
+
let total = 0.0;
|
|
41
|
+
for (const height of heights)
|
|
42
|
+
total += height;
|
|
43
|
+
return total / heights.length;
|
|
44
|
+
}
|
|
45
|
+
//# 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;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAqCxD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAA2B,EAAE,MAAwB;IACxF,IAAI,CAAC,MAAM,CAAC,YAAY;QACtB,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,OAAO,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,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAA2B,EAAE,MAAwB;IAC1F,IAAI,CAAC,MAAM,CAAC,YAAY;QACtB,OAAO,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,OAAO,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/esm/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/esm/IModelApp.js
CHANGED
|
@@ -36,7 +36,8 @@ import * as sheetState from "./SheetViewState";
|
|
|
36
36
|
import * as spatialViewState from "./SpatialViewState";
|
|
37
37
|
import { TentativePoint } from "./TentativePoint";
|
|
38
38
|
import { RealityDataSourceProviderRegistry } from "./RealityDataSource";
|
|
39
|
-
import { MapLayerFormatRegistry, TerrainProviderRegistry, TileAdmin } from "./tile/internal";
|
|
39
|
+
import { BingElevationProvider, MapLayerFormatRegistry, TerrainProviderRegistry, TileAdmin } from "./tile/internal";
|
|
40
|
+
import { BingLocationProvider } from "./BingLocation";
|
|
40
41
|
import * as accudrawTool from "./tools/AccuDrawTool";
|
|
41
42
|
import * as clipViewTool from "./tools/ClipViewTool";
|
|
42
43
|
import * as idleTool from "./tools/IdleTool";
|
|
@@ -82,6 +83,9 @@ export class IModelApp {
|
|
|
82
83
|
static _securityOptions;
|
|
83
84
|
static _mapLayerFormatRegistry;
|
|
84
85
|
static _terrainProviderRegistry;
|
|
86
|
+
static _elevationProvider;
|
|
87
|
+
static _geoidProvider;
|
|
88
|
+
static _locationProvider;
|
|
85
89
|
static _realityDataSourceProviders;
|
|
86
90
|
static _hubAccess;
|
|
87
91
|
static _realityDataAccess;
|
|
@@ -104,6 +108,21 @@ export class IModelApp {
|
|
|
104
108
|
static get mapLayerFormatRegistry() { return this._mapLayerFormatRegistry; }
|
|
105
109
|
/** The [[TerrainProviderRegistry]] for this session. */
|
|
106
110
|
static get terrainProviderRegistry() { return this._terrainProviderRegistry; }
|
|
111
|
+
/** The [[ElevationProvider]] for this session.
|
|
112
|
+
* @beta
|
|
113
|
+
*/
|
|
114
|
+
static get elevationProvider() { return expectDefined(this._elevationProvider); }
|
|
115
|
+
static set elevationProvider(provider) { this._elevationProvider = provider; }
|
|
116
|
+
/** The [[GeoidProvider]] for this session.
|
|
117
|
+
* @beta
|
|
118
|
+
*/
|
|
119
|
+
static get geoidProvider() { return expectDefined(this._geoidProvider); }
|
|
120
|
+
static set geoidProvider(provider) { this._geoidProvider = provider; }
|
|
121
|
+
/** The [[LocationProvider]] for this session.
|
|
122
|
+
* @beta
|
|
123
|
+
*/
|
|
124
|
+
static get locationProvider() { return expectDefined(this._locationProvider); }
|
|
125
|
+
static set locationProvider(provider) { this._locationProvider = provider; }
|
|
107
126
|
/** The [[RealityDataSourceProviderRegistry]] for this session.
|
|
108
127
|
* @beta
|
|
109
128
|
*/
|
|
@@ -279,6 +298,15 @@ export class IModelApp {
|
|
|
279
298
|
this._uiAdmin = opts.uiAdmin ?? new UiAdmin();
|
|
280
299
|
this._mapLayerFormatRegistry = new MapLayerFormatRegistry(opts.mapLayerOptions);
|
|
281
300
|
this._terrainProviderRegistry = new TerrainProviderRegistry();
|
|
301
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- intentional: Bing is the backward-compat default until it is removed in a future major version
|
|
302
|
+
let defaultBingElevation;
|
|
303
|
+
const geo = opts.geospatialProviders;
|
|
304
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
305
|
+
const lazyBing = () => defaultBingElevation ??= new BingElevationProvider();
|
|
306
|
+
this._elevationProvider = geo?.elevationProvider ?? lazyBing();
|
|
307
|
+
this._geoidProvider = geo?.geoidProvider ?? lazyBing();
|
|
308
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
309
|
+
this._locationProvider = geo?.locationProvider ?? new BingLocationProvider();
|
|
282
310
|
this._realityDataSourceProviders = new RealityDataSourceProviderRegistry();
|
|
283
311
|
this._realityDataAccess = opts.realityDataAccess;
|
|
284
312
|
this._formatsProviderManager = new FormatsProviderManager(opts.formatsProvider ?? new QuantityTypeFormatsProvider());
|
|
@@ -316,6 +344,9 @@ export class IModelApp {
|
|
|
316
344
|
[this.toolAdmin, this.viewManager, this.tileAdmin].forEach((sys) => sys.onShutDown());
|
|
317
345
|
this.tools.shutdown();
|
|
318
346
|
this._renderSystem = dispose(this._renderSystem);
|
|
347
|
+
this._elevationProvider = undefined;
|
|
348
|
+
this._geoidProvider = undefined;
|
|
349
|
+
this._locationProvider = undefined;
|
|
319
350
|
this._entityClasses.clear();
|
|
320
351
|
this.authorizationClient = undefined;
|
|
321
352
|
this._initialized = false;
|