@itwin/core-frontend 3.0.0-dev.180 → 3.0.0-dev.184
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 +89 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +6 -2
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.d.ts +1 -1
- package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js +2 -2
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BingLocation.js +2 -2
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +9 -3
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +66 -41
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.js +2 -8
- package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts +1 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +3 -3
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NotificationManager.d.ts +3 -1
- package/lib/cjs/NotificationManager.d.ts.map +1 -1
- package/lib/cjs/NotificationManager.js +2 -0
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/RealityDataSource.js +11 -6
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js +1 -1
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.d.ts +1 -1
- package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator3d.js +2 -2
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewingSpace.js +1 -1
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +4 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +4 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +6 -0
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +1 -1
- package/lib/cjs/request/Request.d.ts +167 -0
- package/lib/cjs/request/Request.d.ts.map +1 -0
- package/lib/cjs/request/Request.js +315 -0
- package/lib/cjs/request/Request.js.map +1 -0
- package/lib/cjs/tile/internal.d.ts +1 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +1 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGISTileMap.js +6 -2
- package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
- package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +4 -4
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +3 -3
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +4 -4
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
- package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
- package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +4 -2
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -5
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +5 -3
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +2 -2
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.d.ts +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.js +2 -2
- package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +2 -2
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +6 -2
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
- package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js +2 -2
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BingLocation.js +1 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +9 -3
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +66 -41
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
- package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/FrontendLoggerCategory.js +2 -8
- package/lib/esm/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/NativeApp.d.ts +1 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +1 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NotificationManager.d.ts +3 -1
- package/lib/esm/NotificationManager.d.ts.map +1 -1
- package/lib/esm/NotificationManager.js +2 -0
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/RealityDataSource.js +9 -4
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator2d.js +1 -1
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.d.ts +1 -1
- package/lib/esm/ViewCreator3d.d.ts.map +1 -1
- package/lib/esm/ViewCreator3d.js +2 -2
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewingSpace.js +1 -1
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +4 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +4 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +6 -0
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +8 -5
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +1 -1
- package/lib/esm/request/Request.d.ts +167 -0
- package/lib/esm/request/Request.d.ts.map +1 -0
- package/lib/esm/request/Request.js +289 -0
- package/lib/esm/request/Request.js.map +1 -0
- package/lib/esm/tile/internal.d.ts +1 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +1 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGISTileMap.js +6 -2
- package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
- package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +1 -1
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
- package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
- package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +5 -3
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/MapLayerImageryProvider.js +2 -2
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +4 -2
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +1 -1
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tile/map/WmsCapabilities.d.ts +1 -1
- package/lib/esm/tile/map/WmsCapabilities.js +1 -1
- package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.d.ts +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
- package/package.json +28 -22
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { assert } from "@itwin/core-bentley";
|
|
9
9
|
import { Feature, FeatureTable } from "@itwin/core-common";
|
|
10
|
-
import { request } from "
|
|
10
|
+
import { request } from "../../request/Request";
|
|
11
11
|
import { IModelApp } from "../../IModelApp";
|
|
12
12
|
import { QuadId, RealityTileLoader, TileLoadPriority } from "../internal";
|
|
13
13
|
/** Specialization of map tile loader that includes terrain geometry with map imagery draped on it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapTileLoader.js","sourceRoot":"","sources":["../../../../src/tile/map/MapTileLoader.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 Tiles\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range1d } from \"@itwin/core-geometry\";\r\nimport { Feature, FeatureTable } from \"@itwin/core-common\";\r\nimport { request } from \"
|
|
1
|
+
{"version":3,"file":"MapTileLoader.js","sourceRoot":"","sources":["../../../../src/tile/map/MapTileLoader.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 Tiles\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range1d } from \"@itwin/core-geometry\";\r\nimport { Feature, FeatureTable } from \"@itwin/core-common\";\r\nimport { request } from \"../../request/Request\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { RenderSystem } from \"../../render/RenderSystem\";\r\nimport { MapCartoRectangle, MapTile, QuadId, RealityTile, RealityTileLoader, TerrainMeshProvider, TerrainTileContent, Tile, TileLoadPriority, TileRequest } from \"../internal\";\r\n\r\n/** Specialization of map tile loader that includes terrain geometry with map imagery draped on it.\r\n * @internal\r\n */\r\nexport class MapTileLoader extends RealityTileLoader {\r\n public get priority(): TileLoadPriority { return TileLoadPriority.Terrain; }\r\n public get clipLowResolutionTiles(): boolean { return true; }\r\n protected _applyLights = false;\r\n public readonly featureTable: FeatureTable;\r\n // public get heightRange(): Range1d | undefined { return this._heightRange; }\r\n protected readonly _heightRange: Range1d | undefined;\r\n public override get isContentUnbounded(): boolean { return true; }\r\n public isTileAvailable(quadId: QuadId) { return this.terrainProvider.isTileAvailable(quadId); }\r\n\r\n public constructor(protected _iModel: IModelConnection, protected _modelId: Id64String, protected _groundBias: number, private _terrainProvider: TerrainMeshProvider) {\r\n super();\r\n this.featureTable = new FeatureTable(0xffff, this._modelId);\r\n this.featureTable.insert(new Feature(this._modelId));\r\n }\r\n public getFeatureIndex(layerModelId: Id64String): number {\r\n return this.featureTable.insert(new Feature(layerModelId))!;\r\n }\r\n\r\n public get maxDepth(): number { return this._terrainProvider.maxDepth; }\r\n public get minDepth(): number { return 0; }\r\n public get terrainProvider(): TerrainMeshProvider { return this._terrainProvider; }\r\n\r\n public getRequestChannel(_tile: Tile) {\r\n // ###TODO use hostname from url - but so many layers to go through to get that...\r\n return IModelApp.tileAdmin.channels.getForHttp(\"itwinjs-imagery\");\r\n }\r\n\r\n public async requestTileContent(tile: Tile, _isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n if (!this.terrainProvider.requiresLoadedContent)\r\n return new Uint8Array();\r\n\r\n const quadId = QuadId.createFromContentId(tile.contentId);\r\n const tileUrl = this._terrainProvider.constructUrl(quadId.row, quadId.column, quadId.level);\r\n const tileRequestOptions = this._terrainProvider.requestOptions;\r\n\r\n try {\r\n const response = await request(tileUrl, tileRequestOptions);\r\n if (response.status === 200)\r\n return new Uint8Array(response.body);\r\n\r\n return undefined;\r\n\r\n } catch (error) {\r\n return undefined;\r\n }\r\n }\r\n\r\n public override forceTileLoad(tile: Tile): boolean {\r\n return this._terrainProvider.forceTileLoad(tile);\r\n }\r\n public override async loadTileContent(tile: MapTile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TerrainTileContent> {\r\n if (undefined === isCanceled)\r\n isCanceled = () => !tile.isLoading;\r\n\r\n const quadId = QuadId.createFromContentId(tile.contentId);\r\n const mesh = await this._terrainProvider.getMesh(tile, data as Uint8Array);\r\n if (undefined === mesh)\r\n return {};\r\n if (isCanceled())\r\n return {};\r\n\r\n const projection = tile.getProjection(tile.heightRange);\r\n const terrainGeometry = system.createRealityMeshFromTerrain(mesh, projection.transformFromLocal);\r\n\r\n let unavailableChild = false;\r\n if (quadId.level < this.maxDepth) {\r\n const childIds = quadId.getChildIds();\r\n for (const childId of childIds) {\r\n if (!this._terrainProvider.isTileAvailable(childId)) {\r\n unavailableChild = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n contentRange: projection.transformFromLocal.multiplyRange(projection.localRange),\r\n terrain: {\r\n mesh: unavailableChild ? mesh : undefined, // If a child is unavilable retain mesh for upsampling.,\r\n geometry: terrainGeometry,\r\n },\r\n };\r\n }\r\n\r\n public getChildHeightRange(quadId: QuadId, rectangle: MapCartoRectangle, parent: MapTile): Range1d | undefined {\r\n return this._terrainProvider.getChildHeightRange(quadId, rectangle, parent);\r\n }\r\n\r\n public async loadChildren(_tile: RealityTile): Promise<Tile[] | undefined> {\r\n assert(false); // children are generated synchronously in MapTile....\r\n return undefined;\r\n }\r\n}\r\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Id64String } from "@itwin/core-bentley";
|
|
5
5
|
import { Range1d } from "@itwin/core-geometry";
|
|
6
|
-
import { RequestOptions } from "
|
|
6
|
+
import { RequestOptions } from "../../request/Request";
|
|
7
7
|
import { IModelConnection } from "../../IModelConnection";
|
|
8
8
|
import { TerrainMeshPrimitive } from "../../render/primitives/mesh/TerrainMeshPrimitive";
|
|
9
9
|
import { MapCartoRectangle, MapTile, MapTilingScheme, QuadId, Tile } from "../internal";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainMeshProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/TerrainMeshProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAc,MAAM,qBAAqB,CAAC;AAOzD;;;;GAIG;AACH,MAAM,OAAgB,mBAAmB;IACvC,YAAsB,OAAyB,EAAY,QAAoB;QAAzD,YAAO,GAAP,OAAO,CAAkB;QAAY,aAAQ,GAAR,QAAQ,CAAY;IAAI,CAAC;IAC7E,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,UAAkB,IAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrG,OAAO,KAAsC,OAAO,SAAS,CAAC,CAAC,CAAC;IAEvE,IAAW,cAAc,KAAqB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAE/F,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,KAAiB,IAA+C,OAAO,SAAS,CAAC,CAAC,CAAC;IAGjH,aAAa,CAAC,KAAW,IAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IAC5D,IAAW,qBAAqB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;CACpD","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 { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range1d } from \"@itwin/core-geometry\";\r\nimport { RequestOptions } from \"
|
|
1
|
+
{"version":3,"file":"TerrainMeshProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/TerrainMeshProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAc,MAAM,qBAAqB,CAAC;AAOzD;;;;GAIG;AACH,MAAM,OAAgB,mBAAmB;IACvC,YAAsB,OAAyB,EAAY,QAAoB;QAAzD,YAAO,GAAP,OAAO,CAAkB;QAAY,aAAQ,GAAR,QAAQ,CAAY;IAAI,CAAC;IAC7E,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,UAAkB,IAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrG,OAAO,KAAsC,OAAO,SAAS,CAAC,CAAC,CAAC;IAEvE,IAAW,cAAc,KAAqB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAE/F,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,KAAiB,IAA+C,OAAO,SAAS,CAAC,CAAC,CAAC;IAGjH,aAAa,CAAC,KAAW,IAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IAC5D,IAAW,qBAAqB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;CACpD","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 { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range1d } from \"@itwin/core-geometry\";\r\nimport { RequestOptions } from \"../../request/Request\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { TerrainMeshPrimitive } from \"../../render/primitives/mesh/TerrainMeshPrimitive\";\r\nimport { MapCartoRectangle, MapTile, MapTilingScheme, QuadId, Tile } from \"../internal\";\r\n\r\n/** Abstract base class for terrain mesh providers responsible for producing geometry background map tiles.\r\n * @see [[EllipsoidTerrainMeshProvider]]\r\n * @see [[CesiumTerrainMeshProvider]]\r\n * @internal\r\n */\r\nexport abstract class TerrainMeshProvider {\r\n constructor(protected _iModel: IModelConnection, protected _modelId: Id64String) { }\r\n public constructUrl(_row: number, _column: number, _zoomLevel: number): string { assert(false); return \"\"; }\r\n public getLogo(): HTMLTableRowElement | undefined { return undefined; }\r\n public abstract isTileAvailable(quadId: QuadId): boolean;\r\n public get requestOptions(): RequestOptions { return { method: \"GET\", responseType: \"arraybuffer\" }; }\r\n public abstract get maxDepth(): number;\r\n public async getMesh(_tile: MapTile, _data: Uint8Array): Promise<TerrainMeshPrimitive | undefined> { return undefined; }\r\n public abstract getChildHeightRange(_quadId: QuadId, _rectangle: MapCartoRectangle, _parent: MapTile): Range1d | undefined;\r\n public abstract get tilingScheme(): MapTilingScheme;\r\n public forceTileLoad(_tile: Tile): boolean { return false; }\r\n public get requiresLoadedContent() { return true; }\r\n}\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module Views
|
|
3
3
|
*/
|
|
4
4
|
import { MapSubLayerProps } from "@itwin/core-common";
|
|
5
|
-
import { RequestBasicCredentials } from "
|
|
5
|
+
import { RequestBasicCredentials } from "../../request/Request";
|
|
6
6
|
import { MapCartoRectangle } from "../internal";
|
|
7
7
|
/** Encapsulation of the capabilities for an WMS server
|
|
8
8
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WmsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmsCapabilities.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 Views\r\n */\r\n\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"@bentley/itwin-client\";\r\nimport WMS from \"wms-capabilities\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\";\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<any> {\r\n const options: RequestOptions = {\r\n method: \"GET\",\r\n responseType: \"text\",\r\n timeout: { response: 20000 },\r\n retries: 2,\r\n auth: credentials,\r\n };\r\n const data = await request(url, options);\r\n return data.text;\r\n}\r\nfunction rangeFromJSONArray(json: any): MapCartoRectangle | undefined {\r\n return (Array.isArray(json) && json.length === 4) ? MapCartoRectangle.createFromDegrees(json[0], json[1], json[2], json[3]) : undefined;\r\n}\r\n\r\nfunction rangeFromJSON(json: any): MapCartoRectangle | undefined {\r\n if (undefined !== json.LatLonBoundingBox)\r\n return rangeFromJSONArray(json.LatLonBoundingBox);\r\n else if (Array.isArray(json.EX_GeographicBoundingBox)) {\r\n return rangeFromJSONArray(json.EX_GeographicBoundingBox);\r\n } else {\r\n if (Array.isArray(json.BoundingBox))\r\n for (const boundingBox of json.BoundingBox) {\r\n if (boundingBox.crs === \"CRS:84\" || boundingBox.crs === \"EPSG:4326\") {\r\n return rangeFromJSONArray(boundingBox.extent);\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction initArray<T>(input: any): undefined | T[] {\r\n return Array.isArray(input) ? input.slice() : undefined;\r\n}\r\n\r\n/** Encapsulation of the capabilities for an WMS server\r\n * @internal\r\n */\r\nexport namespace WmsCapability {\r\n\r\n export class Service {\r\n public readonly name: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly onlineResource?: string;\r\n public readonly contactInformation?: string;\r\n public readonly accessConstraints?: string;\r\n\r\n constructor(json: any) {\r\n this.name = json.Name ? json.Name : \"\";\r\n this.title = json.Title;\r\n this.abstract = json.Abstract;\r\n this.onlineResource = json.OnlineResource;\r\n this.contactInformation = json.ContactInformation;\r\n this.accessConstraints = json.AccessConstraints;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly queryable: boolean;\r\n public readonly title?: string;\r\n public readonly srs?: string[];\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly subLayers = new Array<SubLayer>();\r\n private static readonly PREFIX_SEPARATOR = \":\";\r\n\r\n constructor(_json: any) {\r\n this.queryable = _json.queryable;\r\n this.title = _json.title;\r\n this.srs = initArray<string>(_json.SRS);\r\n this.cartoRange = rangeFromJSON(_json);\r\n this.subLayers.push(new SubLayer(_json));\r\n\r\n }\r\n public getSubLayers(visible = true): MapSubLayerProps[] {\r\n const subLayers = new Array<MapSubLayerProps>();\r\n let index = 1;\r\n let childrenFound = false;\r\n const pushSubLayer = ((subLayer: SubLayer, parent?: number) => {\r\n let children;\r\n const id = index++;\r\n if (subLayer.children) {\r\n childrenFound = false;\r\n children = new Array<number>();\r\n subLayer.children.forEach((child) => {\r\n children.push(index);\r\n pushSubLayer(child, id);\r\n });\r\n }\r\n subLayers.push({ name: subLayer.name, title: subLayer.title, visible, parent, children, id });\r\n });\r\n this.subLayers.forEach((subLayer) => pushSubLayer(subLayer));\r\n\r\n if (!childrenFound) {\r\n const prefixed = new Map<string, MapSubLayerProps[]>();\r\n subLayers.forEach((subLayer) => {\r\n if (subLayer.name && subLayer.name.indexOf(Layer.PREFIX_SEPARATOR) > 0) {\r\n const prefix = subLayer.name.slice(0, subLayer.name.indexOf(Layer.PREFIX_SEPARATOR));\r\n const found = prefixed.get(prefix);\r\n if (found)\r\n found.push(subLayer);\r\n else\r\n prefixed.set(prefix, [subLayer]);\r\n }\r\n });\r\n if (prefixed.size > 1) {\r\n // Preserve the root node if any.\r\n const rootNode = (this.subLayers.length === 1 && this.subLayers[0].children && this.subLayers[0].children.length > 1) ? subLayers.find((curSubLayer) => this.subLayers[0].name === curSubLayer.name)?.id : undefined;\r\n prefixed.forEach((children, parent) => {\r\n children.forEach((child) => {\r\n child.parent = index;\r\n // Remove the prefix from the title if present.\r\n if (child.title && child.title.indexOf(parent + Layer.PREFIX_SEPARATOR) === 0)\r\n child.title = child.title.slice(parent.length + Layer.PREFIX_SEPARATOR.length);\r\n });\r\n subLayers.push({ name: \"\", title: parent, parent: rootNode, id: index++, children: children.map((child) => child.id as number), visible });\r\n });\r\n }\r\n }\r\n\r\n return subLayers;\r\n }\r\n\r\n public getSubLayersCrs(layerNameFilter: string[]): Map<string, string[]> {\r\n const subLayerCrs = new Map<string, string[]>();\r\n\r\n const processSubLayer = ((subLayer: SubLayer) => {\r\n if (layerNameFilter.includes(subLayer.name)) {\r\n subLayerCrs.set(subLayer.name, subLayer.crs);\r\n }\r\n if (subLayer.children) {\r\n subLayer.children.forEach((child) => {\r\n processSubLayer(child);\r\n });\r\n }\r\n });\r\n\r\n this.subLayers.forEach((subLayer) => processSubLayer(subLayer));\r\n return subLayerCrs;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class SubLayer {\r\n public readonly name: string;\r\n public readonly title: string;\r\n public readonly crs: string[];\r\n public readonly ownCrs: string[]; // CRS specific to this layer (ie. not including inherited CRS)\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly children?: SubLayer[];\r\n public readonly queryable: boolean;\r\n public constructor(_json: any, public readonly parent?: SubLayer) {\r\n\r\n const getParentCrs = (parentLayer: SubLayer, crsSet: Set<string>) => {\r\n parentLayer.crs.forEach((parentCrs) => crsSet.add(parentCrs));\r\n if (parentLayer.parent) {\r\n getParentCrs(parentLayer.parent, crsSet);\r\n }\r\n };\r\n\r\n this.name = _json.Name ? _json.Name : \"\";\r\n this.title = _json.Title;\r\n this.queryable = _json.queryable ? true : false;\r\n this.cartoRange = rangeFromJSON(_json);\r\n this.ownCrs = _json.CRS;\r\n const crs = new Set<string>(this.ownCrs);\r\n if (parent) {\r\n getParentCrs(parent, crs);\r\n }\r\n this.crs = [...crs];\r\n\r\n if (Array.isArray(_json.Layer)) {\r\n this.children = new Array<SubLayer>();\r\n for (const childLayer of _json.Layer) {\r\n this.children.push(new SubLayer(childLayer, this));\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WmsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmsCapabilities | undefined>();\r\n public readonly service: WmsCapability.Service;\r\n public readonly version?: string;\r\n public readonly layer?: WmsCapability.Layer;\r\n public get json() { return this._json; }\r\n public get maxLevel(): number { return this.layer ? this.layer.subLayers.length : - 1; }\r\n public get cartoRange(): MapCartoRectangle | undefined { return this.layer?.cartoRange; }\r\n public get featureInfoSupported() { return undefined !== this._json.Capability?.Request?.GetFeatureInfo; }\r\n public get featureInfoFormats(): string[] | undefined { return Array.isArray(this._json.Capability?.Request?.GetFeatureInfo?.Format) ? this._json.Capability?.Request?.GetFeatureInfo?.Format : undefined; }\r\n constructor(private _json: any) {\r\n this.version = _json.version;\r\n this.service = new WmsCapability.Service(_json.Service);\r\n if (_json.Capability)\r\n this.layer = new WmsCapability.Layer(_json.Capability.Layer);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const xmlCapabilities = await getXml(`${WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMS`, credentials);\r\n\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = new WmsCapabilities(new WMS().parse(xmlCapabilities));\r\n WmsCapabilities._capabilitiesCache.set(url, capabilities);\r\n\r\n return capabilities;\r\n }\r\n public getSubLayers(visible = true): undefined | MapSubLayerProps[] {\r\n return this.layer ? this.layer.getSubLayers(visible) : undefined;\r\n }\r\n\r\n public getSubLayersCrs(subLayerNames: string[]): Map<string, string[]>|undefined {\r\n return this.layer ? this.layer.getSubLayersCrs(subLayerNames) : undefined;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"WmsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmsCapabilities.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 Views\r\n */\r\n\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"../../request/Request\";\r\nimport WMS from \"wms-capabilities\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\";\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<any> {\r\n const options: RequestOptions = {\r\n method: \"GET\",\r\n responseType: \"text\",\r\n timeout: { response: 20000 },\r\n retries: 2,\r\n auth: credentials,\r\n };\r\n const data = await request(url, options);\r\n return data.text;\r\n}\r\nfunction rangeFromJSONArray(json: any): MapCartoRectangle | undefined {\r\n return (Array.isArray(json) && json.length === 4) ? MapCartoRectangle.createFromDegrees(json[0], json[1], json[2], json[3]) : undefined;\r\n}\r\n\r\nfunction rangeFromJSON(json: any): MapCartoRectangle | undefined {\r\n if (undefined !== json.LatLonBoundingBox)\r\n return rangeFromJSONArray(json.LatLonBoundingBox);\r\n else if (Array.isArray(json.EX_GeographicBoundingBox)) {\r\n return rangeFromJSONArray(json.EX_GeographicBoundingBox);\r\n } else {\r\n if (Array.isArray(json.BoundingBox))\r\n for (const boundingBox of json.BoundingBox) {\r\n if (boundingBox.crs === \"CRS:84\" || boundingBox.crs === \"EPSG:4326\") {\r\n return rangeFromJSONArray(boundingBox.extent);\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction initArray<T>(input: any): undefined | T[] {\r\n return Array.isArray(input) ? input.slice() : undefined;\r\n}\r\n\r\n/** Encapsulation of the capabilities for an WMS server\r\n * @internal\r\n */\r\nexport namespace WmsCapability {\r\n\r\n export class Service {\r\n public readonly name: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly onlineResource?: string;\r\n public readonly contactInformation?: string;\r\n public readonly accessConstraints?: string;\r\n\r\n constructor(json: any) {\r\n this.name = json.Name ? json.Name : \"\";\r\n this.title = json.Title;\r\n this.abstract = json.Abstract;\r\n this.onlineResource = json.OnlineResource;\r\n this.contactInformation = json.ContactInformation;\r\n this.accessConstraints = json.AccessConstraints;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly queryable: boolean;\r\n public readonly title?: string;\r\n public readonly srs?: string[];\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly subLayers = new Array<SubLayer>();\r\n private static readonly PREFIX_SEPARATOR = \":\";\r\n\r\n constructor(_json: any) {\r\n this.queryable = _json.queryable;\r\n this.title = _json.title;\r\n this.srs = initArray<string>(_json.SRS);\r\n this.cartoRange = rangeFromJSON(_json);\r\n this.subLayers.push(new SubLayer(_json));\r\n\r\n }\r\n public getSubLayers(visible = true): MapSubLayerProps[] {\r\n const subLayers = new Array<MapSubLayerProps>();\r\n let index = 1;\r\n let childrenFound = false;\r\n const pushSubLayer = ((subLayer: SubLayer, parent?: number) => {\r\n let children;\r\n const id = index++;\r\n if (subLayer.children) {\r\n childrenFound = false;\r\n children = new Array<number>();\r\n subLayer.children.forEach((child) => {\r\n children.push(index);\r\n pushSubLayer(child, id);\r\n });\r\n }\r\n subLayers.push({ name: subLayer.name, title: subLayer.title, visible, parent, children, id });\r\n });\r\n this.subLayers.forEach((subLayer) => pushSubLayer(subLayer));\r\n\r\n if (!childrenFound) {\r\n const prefixed = new Map<string, MapSubLayerProps[]>();\r\n subLayers.forEach((subLayer) => {\r\n if (subLayer.name && subLayer.name.indexOf(Layer.PREFIX_SEPARATOR) > 0) {\r\n const prefix = subLayer.name.slice(0, subLayer.name.indexOf(Layer.PREFIX_SEPARATOR));\r\n const found = prefixed.get(prefix);\r\n if (found)\r\n found.push(subLayer);\r\n else\r\n prefixed.set(prefix, [subLayer]);\r\n }\r\n });\r\n if (prefixed.size > 1) {\r\n // Preserve the root node if any.\r\n const rootNode = (this.subLayers.length === 1 && this.subLayers[0].children && this.subLayers[0].children.length > 1) ? subLayers.find((curSubLayer) => this.subLayers[0].name === curSubLayer.name)?.id : undefined;\r\n prefixed.forEach((children, parent) => {\r\n children.forEach((child) => {\r\n child.parent = index;\r\n // Remove the prefix from the title if present.\r\n if (child.title && child.title.indexOf(parent + Layer.PREFIX_SEPARATOR) === 0)\r\n child.title = child.title.slice(parent.length + Layer.PREFIX_SEPARATOR.length);\r\n });\r\n subLayers.push({ name: \"\", title: parent, parent: rootNode, id: index++, children: children.map((child) => child.id as number), visible });\r\n });\r\n }\r\n }\r\n\r\n return subLayers;\r\n }\r\n\r\n public getSubLayersCrs(layerNameFilter: string[]): Map<string, string[]> {\r\n const subLayerCrs = new Map<string, string[]>();\r\n\r\n const processSubLayer = ((subLayer: SubLayer) => {\r\n if (layerNameFilter.includes(subLayer.name)) {\r\n subLayerCrs.set(subLayer.name, subLayer.crs);\r\n }\r\n if (subLayer.children) {\r\n subLayer.children.forEach((child) => {\r\n processSubLayer(child);\r\n });\r\n }\r\n });\r\n\r\n this.subLayers.forEach((subLayer) => processSubLayer(subLayer));\r\n return subLayerCrs;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class SubLayer {\r\n public readonly name: string;\r\n public readonly title: string;\r\n public readonly crs: string[];\r\n public readonly ownCrs: string[]; // CRS specific to this layer (ie. not including inherited CRS)\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly children?: SubLayer[];\r\n public readonly queryable: boolean;\r\n public constructor(_json: any, public readonly parent?: SubLayer) {\r\n\r\n const getParentCrs = (parentLayer: SubLayer, crsSet: Set<string>) => {\r\n parentLayer.crs.forEach((parentCrs) => crsSet.add(parentCrs));\r\n if (parentLayer.parent) {\r\n getParentCrs(parentLayer.parent, crsSet);\r\n }\r\n };\r\n\r\n this.name = _json.Name ? _json.Name : \"\";\r\n this.title = _json.Title;\r\n this.queryable = _json.queryable ? true : false;\r\n this.cartoRange = rangeFromJSON(_json);\r\n this.ownCrs = _json.CRS;\r\n const crs = new Set<string>(this.ownCrs);\r\n if (parent) {\r\n getParentCrs(parent, crs);\r\n }\r\n this.crs = [...crs];\r\n\r\n if (Array.isArray(_json.Layer)) {\r\n this.children = new Array<SubLayer>();\r\n for (const childLayer of _json.Layer) {\r\n this.children.push(new SubLayer(childLayer, this));\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WmsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmsCapabilities | undefined>();\r\n public readonly service: WmsCapability.Service;\r\n public readonly version?: string;\r\n public readonly layer?: WmsCapability.Layer;\r\n public get json() { return this._json; }\r\n public get maxLevel(): number { return this.layer ? this.layer.subLayers.length : - 1; }\r\n public get cartoRange(): MapCartoRectangle | undefined { return this.layer?.cartoRange; }\r\n public get featureInfoSupported() { return undefined !== this._json.Capability?.Request?.GetFeatureInfo; }\r\n public get featureInfoFormats(): string[] | undefined { return Array.isArray(this._json.Capability?.Request?.GetFeatureInfo?.Format) ? this._json.Capability?.Request?.GetFeatureInfo?.Format : undefined; }\r\n constructor(private _json: any) {\r\n this.version = _json.version;\r\n this.service = new WmsCapability.Service(_json.Service);\r\n if (_json.Capability)\r\n this.layer = new WmsCapability.Layer(_json.Capability.Layer);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const xmlCapabilities = await getXml(`${WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMS`, credentials);\r\n\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = new WmsCapabilities(new WMS().parse(xmlCapabilities));\r\n WmsCapabilities._capabilitiesCache.set(url, capabilities);\r\n\r\n return capabilities;\r\n }\r\n public getSubLayers(visible = true): undefined | MapSubLayerProps[] {\r\n return this.layer ? this.layer.getSubLayers(visible) : undefined;\r\n }\r\n\r\n public getSubLayersCrs(subLayerNames: string[]): Map<string, string[]>|undefined {\r\n return this.layer ? this.layer.getSubLayersCrs(subLayerNames) : undefined;\r\n }\r\n}\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module Views
|
|
3
3
|
*/
|
|
4
4
|
import { Point2d, Range2d } from "@itwin/core-geometry";
|
|
5
|
-
import { RequestBasicCredentials } from "
|
|
5
|
+
import { RequestBasicCredentials } from "../../request/Request";
|
|
6
6
|
import { MapCartoRectangle } from "../internal";
|
|
7
7
|
/** Encapsulation of the capabilities for an WMTS server
|
|
8
8
|
* @internal
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @module Views
|
|
7
7
|
*/
|
|
8
8
|
import { Point2d, Range2d } from "@itwin/core-geometry";
|
|
9
|
-
import { request } from "
|
|
9
|
+
import { request } from "../../request/Request";
|
|
10
10
|
import { xml2json } from "xml-js";
|
|
11
11
|
import { MapCartoRectangle, WmsUtilities } from "../internal"; // WmsUtilities needed for getBaseUrl
|
|
12
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmtsCapabilities.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 Views\r\n */\r\n\r\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"@bentley/itwin-client\";\r\nimport { xml2json } from \"xml-js\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\"; // WmsUtilities needed for getBaseUrl\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<any> {\r\n const options: RequestOptions = {\r\n method: \"GET\",\r\n responseType: \"text\",\r\n timeout: { response: 20000 },\r\n retries: 2,\r\n auth: credentials,\r\n };\r\n const data = await request(url, options);\r\n return data.text;\r\n}\r\n\r\n/** Encapsulation of the capabilities for an WMTS server\r\n * @internal\r\n */\r\nexport namespace WmtsCapability {\r\n\r\n export abstract class OwsConstants {\r\n // OWS xml tag names\r\n public static readonly ABSTRACT_XMLTAG = \"ows:Abstract\";\r\n public static readonly ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\";\r\n public static readonly ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\";\r\n public static readonly BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\";\r\n public static readonly CONSTRAINT_XMLTAG = \"ows:Constraint\";\r\n public static readonly DCP_XMLTAG = \"ows:DCP\";\r\n public static readonly FEES_XMLTAG = \"ows:Fees\";\r\n public static readonly GET_XMLTAG = \"ows:Get\";\r\n public static readonly HTTP_XMLTAG = \"ows:HTTP\";\r\n public static readonly IDENTIFIER_XMLTAG = \"ows:Identifier\";\r\n public static readonly KEYWORDS_XMLTAG = \"ows:Keywords\";\r\n public static readonly KEYWORD_XMLTAG = \"ows:Keyword\";\r\n public static readonly LOWERCORNER_XMLTAG = \"ows:LowerCorner\";\r\n public static readonly OPERATION_XMLTAG = \"ows:Operation\";\r\n public static readonly OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\";\r\n public static readonly POST_XMLTAG = \"ows:Post\";\r\n public static readonly SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\";\r\n public static readonly SERVICETYPE_XMLTAG = \"ows:ServiceType\";\r\n public static readonly SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\";\r\n public static readonly SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\";\r\n public static readonly TITLE_XMLTAG = \"ows:Title\";\r\n public static readonly UPPERCORNER_XMLTAG = \"ows:UpperCorner\";\r\n public static readonly VALUE_XMLTAG = \"ows:Value\";\r\n public static readonly WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\";\r\n }\r\n\r\n export abstract class XmlConstants {\r\n // Operations names\r\n public static readonly GETCAPABILITIES = \"GetCapabilities\";\r\n public static readonly GETTILE = \"GetTile\";\r\n public static readonly GETFEATUREINFO = \"GetFeatureInfo\";\r\n\r\n public static readonly MATRIXWIDTH_XMLTAG = \"MatrixWidth\";\r\n public static readonly MATRIXHEIGHT_XMLTAG = \"MatrixHeight\";\r\n public static readonly SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\";\r\n\r\n public static readonly TILEHEIGHT_XMLTAG = \"TileHeight\";\r\n public static readonly TILEMATRIX_XMLTAG = \"TileMatrix\";\r\n public static readonly TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\";\r\n public static readonly TILEWIDTH_XMLTAG = \"TileWidth\";\r\n public static readonly TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\";\r\n public static readonly WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\";\r\n\r\n public static readonly CONSTRAINT_NAME_FILTER = \"Encoding\";\r\n public static readonly STYLE_ISDEFAULT = \"IsDefault\";\r\n public static readonly XLINK_HREF = \"xlink:href\";\r\n }\r\n\r\n export abstract class Constants {\r\n public static readonly GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178;\r\n public static readonly GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\";\r\n }\r\n\r\n export class ServiceIdentification {\r\n public readonly abstract?: string;\r\n public readonly accessConstraints?: string;\r\n public readonly fees?: string;\r\n public readonly serviceType?: string;\r\n public readonly serviceTypeVersion?: string;\r\n public readonly title?: string;\r\n public readonly keywords?: string[];\r\n\r\n constructor(json: any) {\r\n this.abstract = json[OwsConstants.ABSTRACT_XMLTAG]?._text;\r\n this.serviceType = json[OwsConstants.SERVICETYPE_XMLTAG]?._text;\r\n this.serviceTypeVersion = json[OwsConstants.SERVICETYPEVERSION_XMLTAG]?._text;\r\n this.title = json[OwsConstants.TITLE_XMLTAG]?._text;\r\n\r\n const keywords = json[OwsConstants.KEYWORDS_XMLTAG]?.[OwsConstants.KEYWORD_XMLTAG];\r\n if (keywords !== undefined) {\r\n this.keywords = [];\r\n\r\n if (Array.isArray(keywords)) {\r\n for (const keyword of keywords) {\r\n if (keyword !== undefined) {\r\n this.keywords.push(keyword._text);\r\n }\r\n }\r\n } else {\r\n this.keywords.push(keywords._text);\r\n }\r\n }\r\n\r\n this.accessConstraints = json[OwsConstants.ACCESSCONSTRAINTS_XMLTAG]?._text;\r\n this.fees = json[OwsConstants.FEES_XMLTAG]?._text;\r\n }\r\n }\r\n\r\n export class OperationMetadata {\r\n private _getCapabilities?: Operation;\r\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\r\n\r\n private _getFeatureInfo?: Operation;\r\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\r\n\r\n private _getTile?: Operation;\r\n public get getTile(): Operation | undefined { return this._getTile; }\r\n\r\n private readOperation(op: any) {\r\n if (op?._attributes?.name === XmlConstants.GETCAPABILITIES)\r\n this._getCapabilities = new Operation(op);\r\n else if (op?._attributes?.name === XmlConstants.GETTILE)\r\n this._getTile = new Operation(op);\r\n else if (op?._attributes?.name === XmlConstants.GETFEATUREINFO)\r\n this._getFeatureInfo = new Operation(op);\r\n }\r\n\r\n constructor(json: any) {\r\n const operation = (json ? json[OwsConstants.OPERATION_XMLTAG] : undefined);\r\n if (operation) {\r\n if (Array.isArray(operation)) {\r\n operation.forEach((op: any) => {\r\n this.readOperation(op);\r\n });\r\n } else {\r\n this.readOperation(operation);\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class HttpDcp {\r\n public readonly url?: string;\r\n public readonly constraintName?: string;\r\n\r\n // For simplicity of use we create a 'static' encoding property instead of having\r\n // a generic constraint data model.\r\n // We make sure the constraint name is 'encoding' related.\r\n public readonly encoding?: string;\r\n\r\n constructor(json: any) {\r\n this.url = json?._attributes[XmlConstants.XLINK_HREF];\r\n this.constraintName = (json ? json[OwsConstants.CONSTRAINT_XMLTAG]?._attributes?.name : undefined);\r\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER))\r\n this.encoding = json[OwsConstants.CONSTRAINT_XMLTAG]?.[OwsConstants.ALLOWEDVALUES_XMLTAG]?.[OwsConstants.VALUE_XMLTAG]?._text;\r\n }\r\n }\r\n\r\n export class Operation {\r\n public readonly name?: string;\r\n private _getDcpHttp?: HttpDcp[];\r\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\r\n private _postDcpHttp?: HttpDcp[];\r\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\r\n\r\n constructor(json: any) {\r\n this.name = json?._attributes?.name;\r\n\r\n const dcpHttp = (json ? json[OwsConstants.DCP_XMLTAG]?.[OwsConstants.HTTP_XMLTAG] : undefined);\r\n if (!dcpHttp)\r\n return;\r\n\r\n const get = dcpHttp[OwsConstants.GET_XMLTAG];\r\n if (get) {\r\n this._getDcpHttp = [];\r\n\r\n if (Array.isArray(get)) {\r\n get.forEach((getItem: any) => {\r\n this._getDcpHttp?.push(new WmtsCapability.HttpDcp(getItem));\r\n });\r\n } else {\r\n this._getDcpHttp?.push(new WmtsCapability.HttpDcp(get));\r\n }\r\n }\r\n\r\n const post = dcpHttp[OwsConstants.POST_XMLTAG];\r\n if (post) {\r\n this._postDcpHttp = [];\r\n\r\n if (Array.isArray(post)) {\r\n post.forEach((postItem: any) => {\r\n this._postDcpHttp?.push(new WmtsCapability.HttpDcp(postItem));\r\n });\r\n } else {\r\n this._postDcpHttp?.push(new WmtsCapability.HttpDcp(post));\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Contents {\r\n public readonly layers: WmtsCapability.Layer[] = [];\r\n public readonly tileMatrixSets: WmtsCapability.TileMatrixSet[] = [];\r\n\r\n constructor(private _json: any) {\r\n\r\n // Layers\r\n const jsonLayer = _json?.Layer;\r\n if (jsonLayer) {\r\n if (Array.isArray(jsonLayer)) {\r\n jsonLayer.forEach((layer: any) => {\r\n this.layers.push(new WmtsCapability.Layer(layer));\r\n });\r\n } else {\r\n this.layers.push(new WmtsCapability.Layer(jsonLayer));\r\n }\r\n }\r\n\r\n // TileMatrixSet\r\n const jsonTileMatrixSet = _json?.TileMatrixSet;\r\n if (jsonTileMatrixSet) {\r\n if (Array.isArray(jsonTileMatrixSet)) {\r\n jsonTileMatrixSet.forEach((matrixSet: any) => {\r\n this.tileMatrixSets.push(new WmtsCapability.TileMatrixSet(matrixSet));\r\n });\r\n } else {\r\n this.tileMatrixSets.push(new WmtsCapability.TileMatrixSet(jsonTileMatrixSet));\r\n }\r\n }\r\n }\r\n\r\n public getGoogleMapsCompatibleTileMatrixSet(): WmtsCapability.TileMatrixSet[] {\r\n const googleMapsTms: WmtsCapability.TileMatrixSet[] = [];\r\n this.tileMatrixSets.forEach((tms) => {\r\n if (tms.wellKnownScaleSet?.toLowerCase().includes(Constants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\r\n googleMapsTms.push(tms);\r\n\r\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\r\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\r\n else if (tms.tileMatrix.length > 0\r\n && Math.abs(tms.tileMatrix[0].scaleDenominator - Constants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\r\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\")))\r\n googleMapsTms.push(tms);\r\n });\r\n return googleMapsTms;\r\n }\r\n\r\n public getEpsg4326CompatibleTileMatrixSet(): WmtsCapability.TileMatrixSet[] {\r\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\r\n }\r\n }\r\n\r\n export class Style {\r\n public readonly isDefault: boolean = false;\r\n public readonly title?: string;\r\n public readonly identifier?: string;\r\n // TODO: LegendURL\r\n\r\n constructor(private _json: any) {\r\n if (!_json)\r\n return;\r\n\r\n if (_json._attributes?.isDefault)\r\n this.isDefault = _json._attributes.isDefault.toLowerCase() === \"true\";\r\n\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n }\r\n }\r\n export class BoundingBox {\r\n public readonly crs?: string;\r\n public readonly range?: Range2d;\r\n\r\n constructor(_json: any) {\r\n this.crs = _json._attributes?.crs;\r\n const lowerCorner = _json[OwsConstants.LOWERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n const upperCorner = _json[OwsConstants.UPPERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n if (lowerCorner.length === 2 && upperCorner.length === 2)\r\n this.range = Range2d.createXYXY(lowerCorner[0], lowerCorner[1], upperCorner[0], upperCorner[1]);\r\n }\r\n }\r\n\r\n export class TileMatrixSetLimits {\r\n public limits?: Range2d;\r\n public tileMatrix?: string;\r\n\r\n constructor(_json: any) {\r\n this.tileMatrix = _json.TileMatrix;\r\n if (_json.MinTileRow !== undefined && _json.MaxTileRow !== undefined && _json.MinTileCol !== undefined && _json.MaxTileCol)\r\n this.limits = Range2d.createXYXY(Number(_json.MinTileCol._text), Number(_json.MinTileRow._text), Number(_json.MaxTileCol._text), Number(_json.MaxTileRow._text));\r\n }\r\n }\r\n\r\n export class TileMatrixSetLink {\r\n public readonly tileMatrixSet: string;\r\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\r\n\r\n constructor(_json: any) {\r\n this.tileMatrixSet = (_json?.TileMatrixSet?._text ? _json.TileMatrixSet._text : \"\");\r\n const tileMatrixLimits = _json?.TileMatrixSetLimits?.TileMatrixLimits;\r\n if (Array.isArray(tileMatrixLimits))\r\n tileMatrixLimits.forEach((tml: any) => this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tml)));\r\n }\r\n }\r\n\r\n export class TileMatrixSet {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly supportedCrs: string;\r\n public readonly wellKnownScaleSet: string;\r\n public readonly tileMatrix: TileMatrix[] = [];\r\n\r\n constructor(_json: any) {\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n if (!this.identifier)\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.abstract = _json[OwsConstants.ABSTRACT_XMLTAG]?._text;\r\n this.supportedCrs = _json[OwsConstants.SUPPORTEDCRS_XMLTAG]?._text;\r\n if (!this.supportedCrs)\r\n throw new Error(\"No supported CRS found.\");\r\n\r\n this.wellKnownScaleSet = _json[XmlConstants.WELLKNOWNSCALESET_XMLTAG]?._text;\r\n\r\n // TileMatrix:\r\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrix = _json[XmlConstants.TILEMATRIX_XMLTAG];\r\n if (!tileMatrix)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n if (Array.isArray(tileMatrix)) {\r\n tileMatrix.forEach((tm: any) => {\r\n this.tileMatrix.push(new TileMatrix(tm));\r\n });\r\n } else {\r\n this.tileMatrix.push(new TileMatrix(tileMatrix));\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrix {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly scaleDenominator: number;\r\n public readonly topLeftCorner: Point2d;\r\n public readonly tileWidth: number;\r\n public readonly tileHeight: number;\r\n public readonly matrixWidth: number;\r\n public readonly matrixHeight: number;\r\n\r\n constructor(_json: any) {\r\n if (!_json)\r\n throw new Error(\"Invalid json data provided\");\r\n\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n if (!this.identifier)\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.abstract = _json[OwsConstants.ABSTRACT_XMLTAG]?._text;\r\n\r\n // Scale denominator\r\n const scaleDenomStr = _json[XmlConstants.SCALEDENOMINATOR_XMLTAG]?._text;\r\n if (!scaleDenomStr)\r\n throw new Error(\"No scale denominator found on TileMatrix.\");\r\n this.scaleDenominator = +scaleDenomStr;\r\n\r\n // Top left corner\r\n const topLeftCorner = _json[XmlConstants.TOPLEFTCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n if (topLeftCorner?.length !== 2)\r\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\r\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\r\n\r\n // Tile Width\r\n const tileWidthStr = _json[XmlConstants.TILEWIDTH_XMLTAG]?._text;\r\n if (!tileWidthStr)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.tileWidth = +tileWidthStr;\r\n\r\n // Tile Height\r\n const tileHeightStr = _json[XmlConstants.TILEHEIGHT_XMLTAG]?._text;\r\n if (!tileHeightStr)\r\n throw new Error(\"No tile eight found on TileMatrix.\");\r\n this.tileHeight = +tileHeightStr;\r\n\r\n // Matrix Width\r\n const matrixWidthStr = _json[XmlConstants.MATRIXWIDTH_XMLTAG]?._text;\r\n if (!matrixWidthStr)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.matrixWidth = +matrixWidthStr;\r\n\r\n // Matrix Height\r\n const matrixHeightStr = _json[XmlConstants.MATRIXHEIGHT_XMLTAG]?._text;\r\n if (!matrixHeightStr)\r\n throw new Error(\"No tile eight found on TileMatrix.\");\r\n this.matrixHeight = +matrixHeightStr;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly format?: string;\r\n public readonly wsg84BoundingBox?: MapCartoRectangle;\r\n public readonly boundingBox?: BoundingBox;\r\n public readonly styles: Style[] = [];\r\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\r\n\r\n constructor(_json: any) {\r\n if (!_json)\r\n throw new Error(\"Invalid json data provided\");\r\n\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.format = _json.Format?._text;\r\n\r\n // BoundingBox\r\n this.boundingBox = (_json[OwsConstants.BOUNDINGBOX_XMLTAG] ? new BoundingBox(_json[OwsConstants.BOUNDINGBOX_XMLTAG]) : undefined);\r\n\r\n // WSG84 BoundingBox\r\n const lowerCorner = _json[OwsConstants.WGS84BOUNDINGBOX_XMLTAG]?.[OwsConstants.LOWERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n const upperCorner = _json[OwsConstants.WGS84BOUNDINGBOX_XMLTAG]?.[OwsConstants.UPPERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n if (lowerCorner?.length === 2 && upperCorner?.length === 2)\r\n this.wsg84BoundingBox = MapCartoRectangle.createFromDegrees(lowerCorner[0], lowerCorner[1], upperCorner[0], upperCorner[1]);\r\n\r\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\r\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\r\n this.wsg84BoundingBox = MapCartoRectangle.createFromDegrees(this.boundingBox.range?.low.x, this.boundingBox.range?.low.y, this.boundingBox.range?.high.x, this.boundingBox.range?.high.y);\r\n }\r\n\r\n // Style\r\n if (Array.isArray(_json.Style)) {\r\n _json.Style.forEach((style: any) => {\r\n this.styles.push(new Style(style));\r\n });\r\n } else if (_json.Style) {\r\n this.styles.push(new Style(_json.Style));\r\n }\r\n\r\n // TileMatrixSetLink\r\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrixSetLink = _json[XmlConstants.TILEMATRIXSETLINK_XMLTAG];\r\n\r\n if (!tileMatrixSetLink)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n if (Array.isArray(tileMatrixSetLink)) {\r\n tileMatrixSetLink.forEach((tmsl: any) => {\r\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\r\n });\r\n } else {\r\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tileMatrixSetLink));\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WmtsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\r\n\r\n public get json() { return this._json; }\r\n\r\n public readonly version?: string;\r\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\r\n public readonly contents?: WmtsCapability.Contents;\r\n\r\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\r\n\r\n constructor(private _json: any) {\r\n // Capabilities version\r\n this.version = _json?.Capabilities?._attributes.version;\r\n\r\n // Service Identification\r\n if (_json?.Capabilities?.[WmtsCapability.OwsConstants.SERVICEIDENTIFICATION_XMLTAG])\r\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(_json?.Capabilities?.[WmtsCapability.OwsConstants.SERVICEIDENTIFICATION_XMLTAG]);\r\n\r\n // Operations metadata\r\n if (_json?.Capabilities?.[WmtsCapability.OwsConstants.OPERATIONSMETADATA_XMLTAG])\r\n this.operationsMetadata = new WmtsCapability.OperationMetadata(_json?.Capabilities?.[WmtsCapability.OwsConstants.OPERATIONSMETADATA_XMLTAG]);\r\n\r\n // Contents\r\n if (_json.Capabilities?.Contents)\r\n this.contents = new WmtsCapability.Contents(_json.Capabilities?.Contents);\r\n }\r\n\r\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\r\n const jsonCapabilities = xml2json(xmlCapabilities, { compact: true, nativeType: false, ignoreComment: true });\r\n const capabilities = JSON.parse(jsonCapabilities);\r\n return new WmtsCapabilities(capabilities);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmtsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const xmlCapabilities = await getXml(`${WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMTS`, credentials);\r\n\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\r\n if (capabilities)\r\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\r\n\r\n return capabilities;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmtsCapabilities.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 Views\r\n */\r\n\r\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"../../request/Request\";\r\nimport { xml2json } from \"xml-js\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\"; // WmsUtilities needed for getBaseUrl\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<any> {\r\n const options: RequestOptions = {\r\n method: \"GET\",\r\n responseType: \"text\",\r\n timeout: { response: 20000 },\r\n retries: 2,\r\n auth: credentials,\r\n };\r\n const data = await request(url, options);\r\n return data.text;\r\n}\r\n\r\n/** Encapsulation of the capabilities for an WMTS server\r\n * @internal\r\n */\r\nexport namespace WmtsCapability {\r\n\r\n export abstract class OwsConstants {\r\n // OWS xml tag names\r\n public static readonly ABSTRACT_XMLTAG = \"ows:Abstract\";\r\n public static readonly ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\";\r\n public static readonly ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\";\r\n public static readonly BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\";\r\n public static readonly CONSTRAINT_XMLTAG = \"ows:Constraint\";\r\n public static readonly DCP_XMLTAG = \"ows:DCP\";\r\n public static readonly FEES_XMLTAG = \"ows:Fees\";\r\n public static readonly GET_XMLTAG = \"ows:Get\";\r\n public static readonly HTTP_XMLTAG = \"ows:HTTP\";\r\n public static readonly IDENTIFIER_XMLTAG = \"ows:Identifier\";\r\n public static readonly KEYWORDS_XMLTAG = \"ows:Keywords\";\r\n public static readonly KEYWORD_XMLTAG = \"ows:Keyword\";\r\n public static readonly LOWERCORNER_XMLTAG = \"ows:LowerCorner\";\r\n public static readonly OPERATION_XMLTAG = \"ows:Operation\";\r\n public static readonly OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\";\r\n public static readonly POST_XMLTAG = \"ows:Post\";\r\n public static readonly SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\";\r\n public static readonly SERVICETYPE_XMLTAG = \"ows:ServiceType\";\r\n public static readonly SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\";\r\n public static readonly SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\";\r\n public static readonly TITLE_XMLTAG = \"ows:Title\";\r\n public static readonly UPPERCORNER_XMLTAG = \"ows:UpperCorner\";\r\n public static readonly VALUE_XMLTAG = \"ows:Value\";\r\n public static readonly WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\";\r\n }\r\n\r\n export abstract class XmlConstants {\r\n // Operations names\r\n public static readonly GETCAPABILITIES = \"GetCapabilities\";\r\n public static readonly GETTILE = \"GetTile\";\r\n public static readonly GETFEATUREINFO = \"GetFeatureInfo\";\r\n\r\n public static readonly MATRIXWIDTH_XMLTAG = \"MatrixWidth\";\r\n public static readonly MATRIXHEIGHT_XMLTAG = \"MatrixHeight\";\r\n public static readonly SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\";\r\n\r\n public static readonly TILEHEIGHT_XMLTAG = \"TileHeight\";\r\n public static readonly TILEMATRIX_XMLTAG = \"TileMatrix\";\r\n public static readonly TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\";\r\n public static readonly TILEWIDTH_XMLTAG = \"TileWidth\";\r\n public static readonly TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\";\r\n public static readonly WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\";\r\n\r\n public static readonly CONSTRAINT_NAME_FILTER = \"Encoding\";\r\n public static readonly STYLE_ISDEFAULT = \"IsDefault\";\r\n public static readonly XLINK_HREF = \"xlink:href\";\r\n }\r\n\r\n export abstract class Constants {\r\n public static readonly GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178;\r\n public static readonly GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\";\r\n }\r\n\r\n export class ServiceIdentification {\r\n public readonly abstract?: string;\r\n public readonly accessConstraints?: string;\r\n public readonly fees?: string;\r\n public readonly serviceType?: string;\r\n public readonly serviceTypeVersion?: string;\r\n public readonly title?: string;\r\n public readonly keywords?: string[];\r\n\r\n constructor(json: any) {\r\n this.abstract = json[OwsConstants.ABSTRACT_XMLTAG]?._text;\r\n this.serviceType = json[OwsConstants.SERVICETYPE_XMLTAG]?._text;\r\n this.serviceTypeVersion = json[OwsConstants.SERVICETYPEVERSION_XMLTAG]?._text;\r\n this.title = json[OwsConstants.TITLE_XMLTAG]?._text;\r\n\r\n const keywords = json[OwsConstants.KEYWORDS_XMLTAG]?.[OwsConstants.KEYWORD_XMLTAG];\r\n if (keywords !== undefined) {\r\n this.keywords = [];\r\n\r\n if (Array.isArray(keywords)) {\r\n for (const keyword of keywords) {\r\n if (keyword !== undefined) {\r\n this.keywords.push(keyword._text);\r\n }\r\n }\r\n } else {\r\n this.keywords.push(keywords._text);\r\n }\r\n }\r\n\r\n this.accessConstraints = json[OwsConstants.ACCESSCONSTRAINTS_XMLTAG]?._text;\r\n this.fees = json[OwsConstants.FEES_XMLTAG]?._text;\r\n }\r\n }\r\n\r\n export class OperationMetadata {\r\n private _getCapabilities?: Operation;\r\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\r\n\r\n private _getFeatureInfo?: Operation;\r\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\r\n\r\n private _getTile?: Operation;\r\n public get getTile(): Operation | undefined { return this._getTile; }\r\n\r\n private readOperation(op: any) {\r\n if (op?._attributes?.name === XmlConstants.GETCAPABILITIES)\r\n this._getCapabilities = new Operation(op);\r\n else if (op?._attributes?.name === XmlConstants.GETTILE)\r\n this._getTile = new Operation(op);\r\n else if (op?._attributes?.name === XmlConstants.GETFEATUREINFO)\r\n this._getFeatureInfo = new Operation(op);\r\n }\r\n\r\n constructor(json: any) {\r\n const operation = (json ? json[OwsConstants.OPERATION_XMLTAG] : undefined);\r\n if (operation) {\r\n if (Array.isArray(operation)) {\r\n operation.forEach((op: any) => {\r\n this.readOperation(op);\r\n });\r\n } else {\r\n this.readOperation(operation);\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class HttpDcp {\r\n public readonly url?: string;\r\n public readonly constraintName?: string;\r\n\r\n // For simplicity of use we create a 'static' encoding property instead of having\r\n // a generic constraint data model.\r\n // We make sure the constraint name is 'encoding' related.\r\n public readonly encoding?: string;\r\n\r\n constructor(json: any) {\r\n this.url = json?._attributes[XmlConstants.XLINK_HREF];\r\n this.constraintName = (json ? json[OwsConstants.CONSTRAINT_XMLTAG]?._attributes?.name : undefined);\r\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER))\r\n this.encoding = json[OwsConstants.CONSTRAINT_XMLTAG]?.[OwsConstants.ALLOWEDVALUES_XMLTAG]?.[OwsConstants.VALUE_XMLTAG]?._text;\r\n }\r\n }\r\n\r\n export class Operation {\r\n public readonly name?: string;\r\n private _getDcpHttp?: HttpDcp[];\r\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\r\n private _postDcpHttp?: HttpDcp[];\r\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\r\n\r\n constructor(json: any) {\r\n this.name = json?._attributes?.name;\r\n\r\n const dcpHttp = (json ? json[OwsConstants.DCP_XMLTAG]?.[OwsConstants.HTTP_XMLTAG] : undefined);\r\n if (!dcpHttp)\r\n return;\r\n\r\n const get = dcpHttp[OwsConstants.GET_XMLTAG];\r\n if (get) {\r\n this._getDcpHttp = [];\r\n\r\n if (Array.isArray(get)) {\r\n get.forEach((getItem: any) => {\r\n this._getDcpHttp?.push(new WmtsCapability.HttpDcp(getItem));\r\n });\r\n } else {\r\n this._getDcpHttp?.push(new WmtsCapability.HttpDcp(get));\r\n }\r\n }\r\n\r\n const post = dcpHttp[OwsConstants.POST_XMLTAG];\r\n if (post) {\r\n this._postDcpHttp = [];\r\n\r\n if (Array.isArray(post)) {\r\n post.forEach((postItem: any) => {\r\n this._postDcpHttp?.push(new WmtsCapability.HttpDcp(postItem));\r\n });\r\n } else {\r\n this._postDcpHttp?.push(new WmtsCapability.HttpDcp(post));\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Contents {\r\n public readonly layers: WmtsCapability.Layer[] = [];\r\n public readonly tileMatrixSets: WmtsCapability.TileMatrixSet[] = [];\r\n\r\n constructor(private _json: any) {\r\n\r\n // Layers\r\n const jsonLayer = _json?.Layer;\r\n if (jsonLayer) {\r\n if (Array.isArray(jsonLayer)) {\r\n jsonLayer.forEach((layer: any) => {\r\n this.layers.push(new WmtsCapability.Layer(layer));\r\n });\r\n } else {\r\n this.layers.push(new WmtsCapability.Layer(jsonLayer));\r\n }\r\n }\r\n\r\n // TileMatrixSet\r\n const jsonTileMatrixSet = _json?.TileMatrixSet;\r\n if (jsonTileMatrixSet) {\r\n if (Array.isArray(jsonTileMatrixSet)) {\r\n jsonTileMatrixSet.forEach((matrixSet: any) => {\r\n this.tileMatrixSets.push(new WmtsCapability.TileMatrixSet(matrixSet));\r\n });\r\n } else {\r\n this.tileMatrixSets.push(new WmtsCapability.TileMatrixSet(jsonTileMatrixSet));\r\n }\r\n }\r\n }\r\n\r\n public getGoogleMapsCompatibleTileMatrixSet(): WmtsCapability.TileMatrixSet[] {\r\n const googleMapsTms: WmtsCapability.TileMatrixSet[] = [];\r\n this.tileMatrixSets.forEach((tms) => {\r\n if (tms.wellKnownScaleSet?.toLowerCase().includes(Constants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\r\n googleMapsTms.push(tms);\r\n\r\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\r\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\r\n else if (tms.tileMatrix.length > 0\r\n && Math.abs(tms.tileMatrix[0].scaleDenominator - Constants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\r\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\")))\r\n googleMapsTms.push(tms);\r\n });\r\n return googleMapsTms;\r\n }\r\n\r\n public getEpsg4326CompatibleTileMatrixSet(): WmtsCapability.TileMatrixSet[] {\r\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\r\n }\r\n }\r\n\r\n export class Style {\r\n public readonly isDefault: boolean = false;\r\n public readonly title?: string;\r\n public readonly identifier?: string;\r\n // TODO: LegendURL\r\n\r\n constructor(private _json: any) {\r\n if (!_json)\r\n return;\r\n\r\n if (_json._attributes?.isDefault)\r\n this.isDefault = _json._attributes.isDefault.toLowerCase() === \"true\";\r\n\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n }\r\n }\r\n export class BoundingBox {\r\n public readonly crs?: string;\r\n public readonly range?: Range2d;\r\n\r\n constructor(_json: any) {\r\n this.crs = _json._attributes?.crs;\r\n const lowerCorner = _json[OwsConstants.LOWERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n const upperCorner = _json[OwsConstants.UPPERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n if (lowerCorner.length === 2 && upperCorner.length === 2)\r\n this.range = Range2d.createXYXY(lowerCorner[0], lowerCorner[1], upperCorner[0], upperCorner[1]);\r\n }\r\n }\r\n\r\n export class TileMatrixSetLimits {\r\n public limits?: Range2d;\r\n public tileMatrix?: string;\r\n\r\n constructor(_json: any) {\r\n this.tileMatrix = _json.TileMatrix;\r\n if (_json.MinTileRow !== undefined && _json.MaxTileRow !== undefined && _json.MinTileCol !== undefined && _json.MaxTileCol)\r\n this.limits = Range2d.createXYXY(Number(_json.MinTileCol._text), Number(_json.MinTileRow._text), Number(_json.MaxTileCol._text), Number(_json.MaxTileRow._text));\r\n }\r\n }\r\n\r\n export class TileMatrixSetLink {\r\n public readonly tileMatrixSet: string;\r\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\r\n\r\n constructor(_json: any) {\r\n this.tileMatrixSet = (_json?.TileMatrixSet?._text ? _json.TileMatrixSet._text : \"\");\r\n const tileMatrixLimits = _json?.TileMatrixSetLimits?.TileMatrixLimits;\r\n if (Array.isArray(tileMatrixLimits))\r\n tileMatrixLimits.forEach((tml: any) => this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tml)));\r\n }\r\n }\r\n\r\n export class TileMatrixSet {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly supportedCrs: string;\r\n public readonly wellKnownScaleSet: string;\r\n public readonly tileMatrix: TileMatrix[] = [];\r\n\r\n constructor(_json: any) {\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n if (!this.identifier)\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.abstract = _json[OwsConstants.ABSTRACT_XMLTAG]?._text;\r\n this.supportedCrs = _json[OwsConstants.SUPPORTEDCRS_XMLTAG]?._text;\r\n if (!this.supportedCrs)\r\n throw new Error(\"No supported CRS found.\");\r\n\r\n this.wellKnownScaleSet = _json[XmlConstants.WELLKNOWNSCALESET_XMLTAG]?._text;\r\n\r\n // TileMatrix:\r\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrix = _json[XmlConstants.TILEMATRIX_XMLTAG];\r\n if (!tileMatrix)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n if (Array.isArray(tileMatrix)) {\r\n tileMatrix.forEach((tm: any) => {\r\n this.tileMatrix.push(new TileMatrix(tm));\r\n });\r\n } else {\r\n this.tileMatrix.push(new TileMatrix(tileMatrix));\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrix {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly scaleDenominator: number;\r\n public readonly topLeftCorner: Point2d;\r\n public readonly tileWidth: number;\r\n public readonly tileHeight: number;\r\n public readonly matrixWidth: number;\r\n public readonly matrixHeight: number;\r\n\r\n constructor(_json: any) {\r\n if (!_json)\r\n throw new Error(\"Invalid json data provided\");\r\n\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n if (!this.identifier)\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.abstract = _json[OwsConstants.ABSTRACT_XMLTAG]?._text;\r\n\r\n // Scale denominator\r\n const scaleDenomStr = _json[XmlConstants.SCALEDENOMINATOR_XMLTAG]?._text;\r\n if (!scaleDenomStr)\r\n throw new Error(\"No scale denominator found on TileMatrix.\");\r\n this.scaleDenominator = +scaleDenomStr;\r\n\r\n // Top left corner\r\n const topLeftCorner = _json[XmlConstants.TOPLEFTCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n if (topLeftCorner?.length !== 2)\r\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\r\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\r\n\r\n // Tile Width\r\n const tileWidthStr = _json[XmlConstants.TILEWIDTH_XMLTAG]?._text;\r\n if (!tileWidthStr)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.tileWidth = +tileWidthStr;\r\n\r\n // Tile Height\r\n const tileHeightStr = _json[XmlConstants.TILEHEIGHT_XMLTAG]?._text;\r\n if (!tileHeightStr)\r\n throw new Error(\"No tile eight found on TileMatrix.\");\r\n this.tileHeight = +tileHeightStr;\r\n\r\n // Matrix Width\r\n const matrixWidthStr = _json[XmlConstants.MATRIXWIDTH_XMLTAG]?._text;\r\n if (!matrixWidthStr)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.matrixWidth = +matrixWidthStr;\r\n\r\n // Matrix Height\r\n const matrixHeightStr = _json[XmlConstants.MATRIXHEIGHT_XMLTAG]?._text;\r\n if (!matrixHeightStr)\r\n throw new Error(\"No tile eight found on TileMatrix.\");\r\n this.matrixHeight = +matrixHeightStr;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly format?: string;\r\n public readonly wsg84BoundingBox?: MapCartoRectangle;\r\n public readonly boundingBox?: BoundingBox;\r\n public readonly styles: Style[] = [];\r\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\r\n\r\n constructor(_json: any) {\r\n if (!_json)\r\n throw new Error(\"Invalid json data provided\");\r\n\r\n this.identifier = _json[OwsConstants.IDENTIFIER_XMLTAG]?._text;\r\n this.title = _json[OwsConstants.TITLE_XMLTAG]?._text;\r\n this.format = _json.Format?._text;\r\n\r\n // BoundingBox\r\n this.boundingBox = (_json[OwsConstants.BOUNDINGBOX_XMLTAG] ? new BoundingBox(_json[OwsConstants.BOUNDINGBOX_XMLTAG]) : undefined);\r\n\r\n // WSG84 BoundingBox\r\n const lowerCorner = _json[OwsConstants.WGS84BOUNDINGBOX_XMLTAG]?.[OwsConstants.LOWERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n const upperCorner = _json[OwsConstants.WGS84BOUNDINGBOX_XMLTAG]?.[OwsConstants.UPPERCORNER_XMLTAG]?._text?.split(\" \").map((x: string) => +x);\r\n if (lowerCorner?.length === 2 && upperCorner?.length === 2)\r\n this.wsg84BoundingBox = MapCartoRectangle.createFromDegrees(lowerCorner[0], lowerCorner[1], upperCorner[0], upperCorner[1]);\r\n\r\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\r\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\r\n this.wsg84BoundingBox = MapCartoRectangle.createFromDegrees(this.boundingBox.range?.low.x, this.boundingBox.range?.low.y, this.boundingBox.range?.high.x, this.boundingBox.range?.high.y);\r\n }\r\n\r\n // Style\r\n if (Array.isArray(_json.Style)) {\r\n _json.Style.forEach((style: any) => {\r\n this.styles.push(new Style(style));\r\n });\r\n } else if (_json.Style) {\r\n this.styles.push(new Style(_json.Style));\r\n }\r\n\r\n // TileMatrixSetLink\r\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrixSetLink = _json[XmlConstants.TILEMATRIXSETLINK_XMLTAG];\r\n\r\n if (!tileMatrixSetLink)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n if (Array.isArray(tileMatrixSetLink)) {\r\n tileMatrixSetLink.forEach((tmsl: any) => {\r\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\r\n });\r\n } else {\r\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tileMatrixSetLink));\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WmtsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\r\n\r\n public get json() { return this._json; }\r\n\r\n public readonly version?: string;\r\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\r\n public readonly contents?: WmtsCapability.Contents;\r\n\r\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\r\n\r\n constructor(private _json: any) {\r\n // Capabilities version\r\n this.version = _json?.Capabilities?._attributes.version;\r\n\r\n // Service Identification\r\n if (_json?.Capabilities?.[WmtsCapability.OwsConstants.SERVICEIDENTIFICATION_XMLTAG])\r\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(_json?.Capabilities?.[WmtsCapability.OwsConstants.SERVICEIDENTIFICATION_XMLTAG]);\r\n\r\n // Operations metadata\r\n if (_json?.Capabilities?.[WmtsCapability.OwsConstants.OPERATIONSMETADATA_XMLTAG])\r\n this.operationsMetadata = new WmtsCapability.OperationMetadata(_json?.Capabilities?.[WmtsCapability.OwsConstants.OPERATIONSMETADATA_XMLTAG]);\r\n\r\n // Contents\r\n if (_json.Capabilities?.Contents)\r\n this.contents = new WmtsCapability.Contents(_json.Capabilities?.Contents);\r\n }\r\n\r\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\r\n const jsonCapabilities = xml2json(xmlCapabilities, { compact: true, nativeType: false, ignoreComment: true });\r\n const capabilities = JSON.parse(jsonCapabilities);\r\n return new WmtsCapabilities(capabilities);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmtsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const xmlCapabilities = await getXml(`${WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMTS`, credentials);\r\n\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\r\n if (capabilities)\r\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\r\n\r\n return capabilities;\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-frontend",
|
|
3
|
-
"version": "3.0.0-dev.
|
|
3
|
+
"version": "3.0.0-dev.184",
|
|
4
4
|
"description": "iTwin.js frontend components",
|
|
5
5
|
"main": "lib/cjs/core-frontend.js",
|
|
6
6
|
"module": "lib/esm/core-frontend.js",
|
|
@@ -23,36 +23,38 @@
|
|
|
23
23
|
"url": "http://www.bentley.com"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@
|
|
27
|
-
"@itwin/
|
|
28
|
-
"@itwin/core-
|
|
29
|
-
"@itwin/core-
|
|
30
|
-
"@itwin/core-
|
|
31
|
-
"@itwin/core-
|
|
32
|
-
"@itwin/
|
|
33
|
-
"@itwin/webgl-compatibility": "^3.0.0-dev.180"
|
|
26
|
+
"@itwin/appui-abstract": "^3.0.0-dev.184",
|
|
27
|
+
"@itwin/core-bentley": "^3.0.0-dev.184",
|
|
28
|
+
"@itwin/core-common": "^3.0.0-dev.184",
|
|
29
|
+
"@itwin/core-geometry": "^3.0.0-dev.184",
|
|
30
|
+
"@itwin/core-orbitgt": "^3.0.0-dev.184",
|
|
31
|
+
"@itwin/core-quantity": "^3.0.0-dev.184",
|
|
32
|
+
"@itwin/webgl-compatibility": "^3.0.0-dev.184"
|
|
34
33
|
},
|
|
35
34
|
"//devDependencies": [
|
|
36
35
|
"NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install",
|
|
37
36
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
38
37
|
],
|
|
39
38
|
"devDependencies": {
|
|
40
|
-
"@
|
|
41
|
-
"@itwin/
|
|
42
|
-
"@itwin/
|
|
43
|
-
"@itwin/core-
|
|
44
|
-
"@itwin/core-
|
|
45
|
-
"@itwin/core-
|
|
46
|
-
"@itwin/core-
|
|
47
|
-
"@itwin/
|
|
48
|
-
"@itwin/
|
|
49
|
-
"@itwin/
|
|
50
|
-
"@itwin/webgl-compatibility": "3.0.0-dev.180",
|
|
39
|
+
"@itwin/appui-abstract": "3.0.0-dev.184",
|
|
40
|
+
"@itwin/build-tools": "3.0.0-dev.184",
|
|
41
|
+
"@itwin/core-bentley": "3.0.0-dev.184",
|
|
42
|
+
"@itwin/core-common": "3.0.0-dev.184",
|
|
43
|
+
"@itwin/core-geometry": "3.0.0-dev.184",
|
|
44
|
+
"@itwin/core-orbitgt": "3.0.0-dev.184",
|
|
45
|
+
"@itwin/core-quantity": "3.0.0-dev.184",
|
|
46
|
+
"@itwin/certa": "3.0.0-dev.184",
|
|
47
|
+
"@itwin/eslint-plugin": "3.0.0-dev.184",
|
|
48
|
+
"@itwin/webgl-compatibility": "3.0.0-dev.184",
|
|
51
49
|
"@types/chai": "^4.1.4",
|
|
52
50
|
"@types/chai-as-promised": "^7",
|
|
51
|
+
"@types/deep-assign": "^0.1.0",
|
|
52
|
+
"@types/lodash": "^4.14.0",
|
|
53
53
|
"@types/mocha": "^8.2.2",
|
|
54
54
|
"@types/node": "14.14.31",
|
|
55
|
+
"@types/qs": "^6.5.0",
|
|
55
56
|
"@types/semver": "^5.5.0",
|
|
57
|
+
"@types/superagent": "^4.1.14",
|
|
56
58
|
"@types/sinon": "^9.0.0",
|
|
57
59
|
"chai": "^4.1.2",
|
|
58
60
|
"chai-as-promised": "^7",
|
|
@@ -72,10 +74,14 @@
|
|
|
72
74
|
"NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"
|
|
73
75
|
],
|
|
74
76
|
"dependencies": {
|
|
75
|
-
"@itwin/core-i18n": "3.0.0-dev.
|
|
76
|
-
"@itwin/core-telemetry": "3.0.0-dev.
|
|
77
|
+
"@itwin/core-i18n": "3.0.0-dev.184",
|
|
78
|
+
"@itwin/core-telemetry": "3.0.0-dev.184",
|
|
79
|
+
"deep-assign": "^2.0.0",
|
|
77
80
|
"fuse.js": "^3.3.0",
|
|
81
|
+
"lodash": "^4.17.10",
|
|
82
|
+
"qs": "^6.5.1",
|
|
78
83
|
"semver": "^5.5.0",
|
|
84
|
+
"superagent": "^7.0.1",
|
|
79
85
|
"wms-capabilities": "0.4.0",
|
|
80
86
|
"xml-js": "~1.6.11"
|
|
81
87
|
},
|