@itwin/core-frontend 5.1.0-dev.5 → 5.1.0-dev.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/CHANGELOG.md +101 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +2 -0
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.js +2 -2
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/GraphicalEditingScope.d.ts +1 -1
  9. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  10. package/lib/cjs/GraphicalEditingScope.js +1 -1
  11. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  12. package/lib/cjs/HitDetail.d.ts +1 -1
  13. package/lib/cjs/HitDetail.d.ts.map +1 -1
  14. package/lib/cjs/HitDetail.js.map +1 -1
  15. package/lib/cjs/IModelApp.d.ts +19 -4
  16. package/lib/cjs/IModelApp.d.ts.map +1 -1
  17. package/lib/cjs/IModelApp.js +21 -2
  18. package/lib/cjs/IModelApp.js.map +1 -1
  19. package/lib/cjs/IModelConnection.d.ts +6 -6
  20. package/lib/cjs/IModelConnection.js +6 -6
  21. package/lib/cjs/IModelConnection.js.map +1 -1
  22. package/lib/cjs/IpcApp.d.ts +2 -1
  23. package/lib/cjs/IpcApp.d.ts.map +1 -1
  24. package/lib/cjs/IpcApp.js +4 -2
  25. package/lib/cjs/IpcApp.js.map +1 -1
  26. package/lib/cjs/RealityDataSource.d.ts +65 -3
  27. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  28. package/lib/cjs/RealityDataSource.js +79 -3
  29. package/lib/cjs/RealityDataSource.js.map +1 -1
  30. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +1 -1
  31. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  32. package/lib/cjs/SelectionSet.d.ts +7 -7
  33. package/lib/cjs/SelectionSet.js +3 -3
  34. package/lib/cjs/SelectionSet.js.map +1 -1
  35. package/lib/cjs/SheetViewState.d.ts +2 -0
  36. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  37. package/lib/cjs/SheetViewState.js +25 -3
  38. package/lib/cjs/SheetViewState.js.map +1 -1
  39. package/lib/cjs/ViewContext.d.ts +4 -1
  40. package/lib/cjs/ViewContext.d.ts.map +1 -1
  41. package/lib/cjs/ViewContext.js +10 -5
  42. package/lib/cjs/ViewContext.js.map +1 -1
  43. package/lib/cjs/ViewManager.js +2 -2
  44. package/lib/cjs/ViewManager.js.map +1 -1
  45. package/lib/cjs/ViewState.d.ts +1 -1
  46. package/lib/cjs/ViewState.js +1 -1
  47. package/lib/cjs/ViewState.js.map +1 -1
  48. package/lib/cjs/Viewport.d.ts +7 -5
  49. package/lib/cjs/Viewport.d.ts.map +1 -1
  50. package/lib/cjs/Viewport.js +9 -5
  51. package/lib/cjs/Viewport.js.map +1 -1
  52. package/lib/cjs/core-frontend.d.ts +1 -1
  53. package/lib/cjs/core-frontend.d.ts.map +1 -1
  54. package/lib/cjs/core-frontend.js.map +1 -1
  55. package/lib/cjs/extension/ExtensionRuntime.js +15 -2
  56. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  57. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  58. package/lib/cjs/internal/GoogleMapsDecorator.d.ts +53 -0
  59. package/lib/cjs/internal/GoogleMapsDecorator.d.ts.map +1 -0
  60. package/lib/cjs/internal/GoogleMapsDecorator.js +132 -0
  61. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -0
  62. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  63. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  64. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js +201 -0
  65. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  66. package/lib/cjs/internal/cross-package.d.ts +1 -0
  67. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  68. package/lib/cjs/internal/cross-package.js +4 -1
  69. package/lib/cjs/internal/cross-package.js.map +1 -1
  70. package/lib/cjs/internal/render/MockRender.d.ts +1 -1
  71. package/lib/cjs/internal/render/MockRender.d.ts.map +1 -1
  72. package/lib/cjs/internal/render/MockRender.js +1 -1
  73. package/lib/cjs/internal/render/MockRender.js.map +1 -1
  74. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  75. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  76. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
  77. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  78. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  79. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  80. package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
  81. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  82. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
  83. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  84. package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
  85. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  86. package/lib/cjs/internal/render/webgl/RenderCommands.d.ts.map +1 -1
  87. package/lib/cjs/internal/render/webgl/RenderCommands.js +2 -3
  88. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  89. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
  90. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  91. package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
  92. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  93. package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
  94. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  95. package/lib/cjs/internal/render/webgl/Target.js +2 -2
  96. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  97. package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts +3 -3
  98. package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
  99. package/lib/cjs/internal/render/webgl/TargetGraphics.js +10 -7
  100. package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
  101. package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
  102. package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
  103. package/lib/cjs/internal/render/webgl/Technique.js +3 -3
  104. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  105. package/lib/cjs/internal/tile/ClassifierTileTree.js +3 -1
  106. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  107. package/lib/cjs/internal/tile/IModelTile.d.ts +1 -0
  108. package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
  109. package/lib/cjs/internal/tile/IModelTile.js +4 -0
  110. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  111. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  112. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  113. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  114. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts +4 -1
  115. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  116. package/lib/cjs/internal/tile/OrbitGtTileTree.js +4 -0
  117. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  118. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  119. package/lib/cjs/internal/tile/PrimaryTileTree.js +4 -3
  120. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  121. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +20 -3
  122. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  123. package/lib/cjs/internal/tile/RealityModelTileTree.js +39 -14
  124. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  125. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  126. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  127. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  128. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  129. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  130. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  131. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  132. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  133. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  134. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  135. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  136. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  137. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  138. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  139. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  140. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  141. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  142. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  143. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  144. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  145. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  146. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  147. package/lib/cjs/internal/tile/map/WmtsCapabilities.js +17 -0
  148. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  149. package/lib/cjs/properties/AngleDescription.d.ts +4 -1
  150. package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
  151. package/lib/cjs/properties/AngleDescription.js +10 -2
  152. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  153. package/lib/cjs/properties/FormattedQuantityDescription.d.ts +11 -1
  154. package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
  155. package/lib/cjs/properties/FormattedQuantityDescription.js +7 -2
  156. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  157. package/lib/cjs/properties/LengthDescription.d.ts +12 -3
  158. package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
  159. package/lib/cjs/properties/LengthDescription.js +30 -6
  160. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  161. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +103 -7
  162. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  163. package/lib/cjs/quantity-formatting/QuantityFormatter.js +212 -23
  164. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  165. package/lib/cjs/render/Decorations.d.ts +1 -1
  166. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  167. package/lib/cjs/render/Decorations.js +1 -1
  168. package/lib/cjs/render/Decorations.js.map +1 -1
  169. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  170. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  171. package/lib/cjs/render/GraphicBranch.js +1 -1
  172. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  173. package/lib/cjs/render/RenderGraphic.d.ts +1 -1
  174. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  175. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  176. package/lib/cjs/render/RenderSystem.d.ts +2 -2
  177. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  178. package/lib/cjs/render/RenderSystem.js.map +1 -1
  179. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  180. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  181. package/lib/cjs/render/RenderTarget.js.map +1 -1
  182. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  183. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  184. package/lib/cjs/request/Request.d.ts +2 -2
  185. package/lib/cjs/request/Request.js.map +1 -1
  186. package/lib/cjs/tile/GltfReader.d.ts +1 -0
  187. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  188. package/lib/cjs/tile/GltfReader.js +1 -0
  189. package/lib/cjs/tile/GltfReader.js.map +1 -1
  190. package/lib/cjs/tile/RealityTile.d.ts +5 -0
  191. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  192. package/lib/cjs/tile/RealityTile.js +5 -0
  193. package/lib/cjs/tile/RealityTile.js.map +1 -1
  194. package/lib/cjs/tile/Tile.d.ts +1 -1
  195. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  196. package/lib/cjs/tile/Tile.js +1 -1
  197. package/lib/cjs/tile/Tile.js.map +1 -1
  198. package/lib/cjs/tile/TileAdmin.d.ts +10 -0
  199. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  200. package/lib/cjs/tile/TileAdmin.js +3 -0
  201. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  202. package/lib/cjs/tile/TileTree.d.ts +1 -1
  203. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  204. package/lib/cjs/tile/TileTree.js +1 -1
  205. package/lib/cjs/tile/TileTree.js.map +1 -1
  206. package/lib/cjs/tile/TileTreeReference.d.ts +1 -1
  207. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  208. package/lib/cjs/tile/TileTreeReference.js +1 -1
  209. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  210. package/lib/cjs/tile/map/CesiumTerrainProvider.js +1 -1
  211. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  212. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
  213. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  214. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  215. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  216. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
  217. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  218. package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
  219. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  220. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -3
  221. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  222. package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -5
  223. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  224. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  225. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  226. package/lib/cjs/tile/map/MapTileTree.js +1 -1
  227. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  228. package/lib/cjs/tile/map/QuadId.d.ts +15 -0
  229. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  230. package/lib/cjs/tile/map/QuadId.js +12 -0
  231. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  232. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  233. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  234. package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
  235. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  236. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +7 -0
  237. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
  238. package/lib/cjs/tools/AccuDrawViewportUI.js +14 -0
  239. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  240. package/lib/cjs/tools/ElementSetTool.d.ts +9 -1
  241. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  242. package/lib/cjs/tools/ElementSetTool.js +128 -7
  243. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  244. package/lib/cjs/tools/MeasureTool.d.ts +9 -0
  245. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  246. package/lib/cjs/tools/MeasureTool.js +53 -22
  247. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  248. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -1
  249. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  250. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  251. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  252. package/lib/cjs/tools/SelectTool.d.ts +2 -2
  253. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  254. package/lib/cjs/tools/SelectTool.js +26 -97
  255. package/lib/cjs/tools/SelectTool.js.map +1 -1
  256. package/lib/cjs/tools/Tool.d.ts +10 -1
  257. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  258. package/lib/cjs/tools/Tool.js +27 -4
  259. package/lib/cjs/tools/Tool.js.map +1 -1
  260. package/lib/cjs/tools/ToolAdmin.d.ts +1 -0
  261. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  262. package/lib/cjs/tools/ToolAdmin.js +8 -2
  263. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  264. package/lib/cjs/tools/ToolSettings.d.ts +5 -0
  265. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  266. package/lib/cjs/tools/ToolSettings.js +5 -0
  267. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  268. package/lib/cjs/tools/ViewTool.d.ts +1 -2
  269. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  270. package/lib/cjs/tools/ViewTool.js +10 -47
  271. package/lib/cjs/tools/ViewTool.js.map +1 -1
  272. package/lib/esm/AccuDraw.d.ts +2 -0
  273. package/lib/esm/AccuDraw.d.ts.map +1 -1
  274. package/lib/esm/AccuDraw.js +2 -0
  275. package/lib/esm/AccuDraw.js.map +1 -1
  276. package/lib/esm/AccuSnap.js +2 -2
  277. package/lib/esm/AccuSnap.js.map +1 -1
  278. package/lib/esm/GraphicalEditingScope.d.ts +1 -1
  279. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  280. package/lib/esm/GraphicalEditingScope.js +1 -1
  281. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  282. package/lib/esm/HitDetail.d.ts +1 -1
  283. package/lib/esm/HitDetail.d.ts.map +1 -1
  284. package/lib/esm/HitDetail.js.map +1 -1
  285. package/lib/esm/IModelApp.d.ts +19 -4
  286. package/lib/esm/IModelApp.d.ts.map +1 -1
  287. package/lib/esm/IModelApp.js +22 -3
  288. package/lib/esm/IModelApp.js.map +1 -1
  289. package/lib/esm/IModelConnection.d.ts +6 -6
  290. package/lib/esm/IModelConnection.js +6 -6
  291. package/lib/esm/IModelConnection.js.map +1 -1
  292. package/lib/esm/IpcApp.d.ts +2 -1
  293. package/lib/esm/IpcApp.d.ts.map +1 -1
  294. package/lib/esm/IpcApp.js +4 -2
  295. package/lib/esm/IpcApp.js.map +1 -1
  296. package/lib/esm/RealityDataSource.d.ts +65 -3
  297. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  298. package/lib/esm/RealityDataSource.js +77 -3
  299. package/lib/esm/RealityDataSource.js.map +1 -1
  300. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +1 -1
  301. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  302. package/lib/esm/SelectionSet.d.ts +7 -7
  303. package/lib/esm/SelectionSet.js +3 -3
  304. package/lib/esm/SelectionSet.js.map +1 -1
  305. package/lib/esm/SheetViewState.d.ts +2 -0
  306. package/lib/esm/SheetViewState.d.ts.map +1 -1
  307. package/lib/esm/SheetViewState.js +25 -3
  308. package/lib/esm/SheetViewState.js.map +1 -1
  309. package/lib/esm/ViewContext.d.ts +4 -1
  310. package/lib/esm/ViewContext.d.ts.map +1 -1
  311. package/lib/esm/ViewContext.js +10 -5
  312. package/lib/esm/ViewContext.js.map +1 -1
  313. package/lib/esm/ViewManager.js +2 -2
  314. package/lib/esm/ViewManager.js.map +1 -1
  315. package/lib/esm/ViewState.d.ts +1 -1
  316. package/lib/esm/ViewState.js +1 -1
  317. package/lib/esm/ViewState.js.map +1 -1
  318. package/lib/esm/Viewport.d.ts +7 -5
  319. package/lib/esm/Viewport.d.ts.map +1 -1
  320. package/lib/esm/Viewport.js +9 -5
  321. package/lib/esm/Viewport.js.map +1 -1
  322. package/lib/esm/core-frontend.d.ts +1 -1
  323. package/lib/esm/core-frontend.d.ts.map +1 -1
  324. package/lib/esm/core-frontend.js.map +1 -1
  325. package/lib/esm/extension/ExtensionRuntime.js +15 -2
  326. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  327. package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -1
  328. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  329. package/lib/esm/internal/GoogleMapsDecorator.d.ts +53 -0
  330. package/lib/esm/internal/GoogleMapsDecorator.d.ts.map +1 -0
  331. package/lib/esm/internal/GoogleMapsDecorator.js +126 -0
  332. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -0
  333. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  334. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  335. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js +197 -0
  336. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  337. package/lib/esm/internal/cross-package.d.ts +1 -0
  338. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  339. package/lib/esm/internal/cross-package.js +1 -0
  340. package/lib/esm/internal/cross-package.js.map +1 -1
  341. package/lib/esm/internal/render/MockRender.d.ts +1 -1
  342. package/lib/esm/internal/render/MockRender.d.ts.map +1 -1
  343. package/lib/esm/internal/render/MockRender.js +1 -1
  344. package/lib/esm/internal/render/MockRender.js.map +1 -1
  345. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  346. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  347. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
  348. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  349. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  350. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  351. package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
  352. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  353. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
  354. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  355. package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
  356. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  357. package/lib/esm/internal/render/webgl/RenderCommands.d.ts.map +1 -1
  358. package/lib/esm/internal/render/webgl/RenderCommands.js +2 -3
  359. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  360. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
  361. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  362. package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
  363. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  364. package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
  365. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  366. package/lib/esm/internal/render/webgl/Target.js +2 -2
  367. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  368. package/lib/esm/internal/render/webgl/TargetGraphics.d.ts +3 -3
  369. package/lib/esm/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
  370. package/lib/esm/internal/render/webgl/TargetGraphics.js +10 -7
  371. package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
  372. package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
  373. package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
  374. package/lib/esm/internal/render/webgl/Technique.js +3 -3
  375. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  376. package/lib/esm/internal/tile/ClassifierTileTree.js +3 -1
  377. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  378. package/lib/esm/internal/tile/IModelTile.d.ts +1 -0
  379. package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
  380. package/lib/esm/internal/tile/IModelTile.js +4 -0
  381. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  382. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  383. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  384. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  385. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts +4 -1
  386. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  387. package/lib/esm/internal/tile/OrbitGtTileTree.js +5 -1
  388. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  389. package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  390. package/lib/esm/internal/tile/PrimaryTileTree.js +4 -3
  391. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  392. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +20 -3
  393. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  394. package/lib/esm/internal/tile/RealityModelTileTree.js +38 -14
  395. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  396. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  397. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  398. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  399. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  400. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  401. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  402. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  403. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  404. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  405. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  406. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  407. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  408. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  409. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  410. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  411. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  412. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  413. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  414. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  415. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  416. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  417. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  418. package/lib/esm/internal/tile/map/WmtsCapabilities.js +17 -0
  419. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  420. package/lib/esm/properties/AngleDescription.d.ts +4 -1
  421. package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
  422. package/lib/esm/properties/AngleDescription.js +10 -2
  423. package/lib/esm/properties/AngleDescription.js.map +1 -1
  424. package/lib/esm/properties/FormattedQuantityDescription.d.ts +11 -1
  425. package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
  426. package/lib/esm/properties/FormattedQuantityDescription.js +7 -2
  427. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  428. package/lib/esm/properties/LengthDescription.d.ts +12 -3
  429. package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
  430. package/lib/esm/properties/LengthDescription.js +30 -6
  431. package/lib/esm/properties/LengthDescription.js.map +1 -1
  432. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +103 -7
  433. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  434. package/lib/esm/quantity-formatting/QuantityFormatter.js +210 -23
  435. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  436. package/lib/esm/render/Decorations.d.ts +1 -1
  437. package/lib/esm/render/Decorations.d.ts.map +1 -1
  438. package/lib/esm/render/Decorations.js +1 -1
  439. package/lib/esm/render/Decorations.js.map +1 -1
  440. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  441. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  442. package/lib/esm/render/GraphicBranch.js +1 -1
  443. package/lib/esm/render/GraphicBranch.js.map +1 -1
  444. package/lib/esm/render/RenderGraphic.d.ts +1 -1
  445. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  446. package/lib/esm/render/RenderGraphic.js.map +1 -1
  447. package/lib/esm/render/RenderSystem.d.ts +2 -2
  448. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  449. package/lib/esm/render/RenderSystem.js.map +1 -1
  450. package/lib/esm/render/RenderTarget.d.ts +1 -1
  451. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  452. package/lib/esm/render/RenderTarget.js.map +1 -1
  453. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  454. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  455. package/lib/esm/request/Request.d.ts +2 -2
  456. package/lib/esm/request/Request.js.map +1 -1
  457. package/lib/esm/tile/GltfReader.d.ts +1 -0
  458. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  459. package/lib/esm/tile/GltfReader.js +1 -0
  460. package/lib/esm/tile/GltfReader.js.map +1 -1
  461. package/lib/esm/tile/RealityTile.d.ts +5 -0
  462. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  463. package/lib/esm/tile/RealityTile.js +5 -0
  464. package/lib/esm/tile/RealityTile.js.map +1 -1
  465. package/lib/esm/tile/Tile.d.ts +1 -1
  466. package/lib/esm/tile/Tile.d.ts.map +1 -1
  467. package/lib/esm/tile/Tile.js +1 -1
  468. package/lib/esm/tile/Tile.js.map +1 -1
  469. package/lib/esm/tile/TileAdmin.d.ts +10 -0
  470. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  471. package/lib/esm/tile/TileAdmin.js +3 -0
  472. package/lib/esm/tile/TileAdmin.js.map +1 -1
  473. package/lib/esm/tile/TileTree.d.ts +1 -1
  474. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  475. package/lib/esm/tile/TileTree.js +1 -1
  476. package/lib/esm/tile/TileTree.js.map +1 -1
  477. package/lib/esm/tile/TileTreeReference.d.ts +1 -1
  478. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  479. package/lib/esm/tile/TileTreeReference.js +1 -1
  480. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  481. package/lib/esm/tile/map/CesiumTerrainProvider.js +1 -1
  482. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  483. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
  484. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  485. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  486. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  487. package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
  488. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  489. package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
  490. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  491. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -3
  492. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  493. package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -5
  494. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  495. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  496. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  497. package/lib/esm/tile/map/MapTileTree.js +1 -1
  498. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  499. package/lib/esm/tile/map/QuadId.d.ts +15 -0
  500. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  501. package/lib/esm/tile/map/QuadId.js +12 -0
  502. package/lib/esm/tile/map/QuadId.js.map +1 -1
  503. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  504. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  505. package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
  506. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  507. package/lib/esm/tools/AccuDrawViewportUI.d.ts +7 -0
  508. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
  509. package/lib/esm/tools/AccuDrawViewportUI.js +14 -0
  510. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  511. package/lib/esm/tools/ElementSetTool.d.ts +9 -1
  512. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  513. package/lib/esm/tools/ElementSetTool.js +130 -9
  514. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  515. package/lib/esm/tools/MeasureTool.d.ts +9 -0
  516. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  517. package/lib/esm/tools/MeasureTool.js +53 -22
  518. package/lib/esm/tools/MeasureTool.js.map +1 -1
  519. package/lib/esm/tools/PrimitiveTool.d.ts +1 -1
  520. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  521. package/lib/esm/tools/PrimitiveTool.js +2 -2
  522. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  523. package/lib/esm/tools/SelectTool.d.ts +2 -2
  524. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  525. package/lib/esm/tools/SelectTool.js +26 -97
  526. package/lib/esm/tools/SelectTool.js.map +1 -1
  527. package/lib/esm/tools/Tool.d.ts +10 -1
  528. package/lib/esm/tools/Tool.d.ts.map +1 -1
  529. package/lib/esm/tools/Tool.js +27 -4
  530. package/lib/esm/tools/Tool.js.map +1 -1
  531. package/lib/esm/tools/ToolAdmin.d.ts +1 -0
  532. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  533. package/lib/esm/tools/ToolAdmin.js +8 -2
  534. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  535. package/lib/esm/tools/ToolSettings.d.ts +5 -0
  536. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  537. package/lib/esm/tools/ToolSettings.js +5 -0
  538. package/lib/esm/tools/ToolSettings.js.map +1 -1
  539. package/lib/esm/tools/ViewTool.d.ts +1 -2
  540. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  541. package/lib/esm/tools/ViewTool.js +10 -47
  542. package/lib/esm/tools/ViewTool.js.map +1 -1
  543. package/lib/public/images/google_on_non_white.png +0 -0
  544. package/lib/public/images/google_on_non_white_hdpi.png +0 -0
  545. package/lib/public/images/google_on_white.png +0 -0
  546. package/lib/public/images/google_on_white_hdpi.png +0 -0
  547. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  548. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  549. package/package.json +22 -20
@@ -7,7 +7,7 @@ import { ScreenViewport } from "../../../../Viewport";
7
7
  export declare class AzureMapsLayerImageryProvider extends MapLayerImageryProvider {
8
8
  constructor(settings: ImageMapLayerSettings);
9
9
  constructUrl(y: number, x: number, zoom: number): Promise<string>;
10
- /** @deprecated in 5.0 Use [addAttributions] instead. */
10
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
11
11
  addLogoCards(cards: HTMLTableElement): void;
12
12
  addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void>;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AzureMapsLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,qBAAa,6BAA8B,SAAQ,uBAAuB;gBAC5D,QAAQ,EAAE,qBAAqB;IAG9B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9E,wDAAwD;IACxC,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAOrC,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAInG"}
1
+ {"version":3,"file":"AzureMapsLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,qBAAa,6BAA8B,SAAQ,uBAAuB;gBAC5D,QAAQ,EAAE,qBAAqB;IAG9B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9E,sGAAsG;IACtF,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAOrC,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAInG"}
@@ -15,7 +15,7 @@ export class AzureMapsLayerImageryProvider extends MapLayerImageryProvider {
15
15
  return "";
16
16
  return `${this._settings.url}&${this._settings.accessKey.key}=${this._settings.accessKey.value}&api-version=2.0&zoom=${zoom}&x=${x}&y=${y}`;
17
17
  }
18
- /** @deprecated in 5.0 Use [addAttributions] instead. */
18
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
19
19
  addLogoCards(cards) {
20
20
  if (!cards.dataset.azureMapsLogoCard) {
21
21
  cards.dataset.azureMapsLogoCard = "true";
@@ -1 +1 @@
1
- {"version":3,"file":"AzureMapsLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,OAAO,6BAA8B,SAAQ,uBAAuB;IACxE,YAAY,QAA+B,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvE,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;YAC3B,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,yBAAyB,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9I,CAAC;IAED,wDAAwD;IACxC,YAAY,CAAC,KAAuB;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACrC,KAAK,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC;YACzC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,2CAA2C,CAAC,EAAE,CAAC,CAAC,CAAC;QACvK,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,eAAe,CAAC,KAAuB,EAAE,GAAmB;QAChF,4DAA4D;QAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../../../IModelApp\";\nimport { MapLayerImageryProvider } from \"../../../../tile/internal\";\nimport { ScreenViewport } from \"../../../../Viewport\";\n\n\nexport class AzureMapsLayerImageryProvider extends MapLayerImageryProvider {\n constructor(settings: ImageMapLayerSettings) { super(settings, true); }\n\n // construct the Url from the desired Tile\n public async constructUrl(y: number, x: number, zoom: number): Promise<string> {\n if (!this._settings.accessKey)\n return \"\";\n return `${this._settings.url}&${this._settings.accessKey.key}=${this._settings.accessKey.value}&api-version=2.0&zoom=${zoom}&x=${x}&y=${y}`;\n }\n\n /** @deprecated in 5.0 Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement): void {\n if (!cards.dataset.azureMapsLogoCard) {\n cards.dataset.azureMapsLogoCard = \"true\";\n cards.appendChild(IModelApp.makeLogoCard({ heading: \"Azure Maps\", notice: IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.AzureMapsCopyright\") }));\n }\n }\n\n public override async addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards));\n }\n}\n"]}
1
+ {"version":3,"file":"AzureMapsLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,OAAO,6BAA8B,SAAQ,uBAAuB;IACxE,YAAY,QAA+B,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvE,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;YAC3B,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,yBAAyB,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9I,CAAC;IAED,sGAAsG;IACtF,YAAY,CAAC,KAAuB;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACrC,KAAK,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC;YACzC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,2CAA2C,CAAC,EAAE,CAAC,CAAC,CAAC;QACvK,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,eAAe,CAAC,KAAuB,EAAE,GAAmB;QAChF,4DAA4D;QAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../../../IModelApp\";\nimport { MapLayerImageryProvider } from \"../../../../tile/internal\";\nimport { ScreenViewport } from \"../../../../Viewport\";\n\n\nexport class AzureMapsLayerImageryProvider extends MapLayerImageryProvider {\n constructor(settings: ImageMapLayerSettings) { super(settings, true); }\n\n // construct the Url from the desired Tile\n public async constructUrl(y: number, x: number, zoom: number): Promise<string> {\n if (!this._settings.accessKey)\n return \"\";\n return `${this._settings.url}&${this._settings.accessKey.key}=${this._settings.accessKey.value}&api-version=2.0&zoom=${zoom}&x=${x}&y=${y}`;\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement): void {\n if (!cards.dataset.azureMapsLogoCard) {\n cards.dataset.azureMapsLogoCard = \"true\";\n cards.appendChild(IModelApp.makeLogoCard({ heading: \"Azure Maps\", notice: IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.AzureMapsCopyright\") }));\n }\n }\n\n public override async addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards));\n }\n}\n"]}
@@ -19,7 +19,7 @@ export declare class BingMapsImageryLayerProvider extends MapLayerImageryProvide
19
19
  private tileXYToQuadKey;
20
20
  constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
21
21
  private getMatchingAttributions;
22
- /** @deprecated in 5.0 Use [addAttributions] instead. */
22
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
23
23
  addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void;
24
24
  addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void>;
25
25
  initialize(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"BingImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/BingImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAe,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,uBAAuB,EAExB,MAAM,2BAA2B,CAAC;AAoDnC,qBAAa,4BAA6B,SAAQ,uBAAuB;IACvE,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAoB;IAC1C,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,qBAAqB;IAQ3C,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,UAAU,IAAI,MAAM,CAA6B;IAE5D,OAAO,CAAC,eAAe;IAuBV,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1F,OAAO,CAAC,uBAAuB;IAqB9B,wDAAwD;IACzC,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAiBzD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjD,OAAO,CAAC,gBAAgB;CAezB"}
1
+ {"version":3,"file":"BingImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/BingImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAe,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,uBAAuB,EAExB,MAAM,2BAA2B,CAAC;AAoDnC,qBAAa,4BAA6B,SAAQ,uBAAuB;IACvE,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAoB;IAC1C,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,qBAAqB;IAQ3C,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,UAAU,IAAI,MAAM,CAA6B;IAE5D,OAAO,CAAC,eAAe;IAuBV,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1F,OAAO,CAAC,uBAAuB;IAqB9B,sGAAsG;IACvF,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAiBzD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjD,OAAO,CAAC,gBAAgB;CAezB"}
@@ -134,7 +134,7 @@ export class BingMapsImageryLayerProvider extends MapLayerImageryProvider {
134
134
  }
135
135
  return matchingAttributions;
136
136
  }
137
- /** @deprecated in 5.0 Use [addAttributions] instead. */
137
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
138
138
  addLogoCards(cards, vp) {
139
139
  const tiles = IModelApp.tileAdmin.getTilesForUser(vp)?.selected;
140
140
  const matchingAttributions = this.getMatchingAttributions(tiles);
@@ -1 +1 @@
1
- {"version":3,"file":"BingImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/BingImageryProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, BentleyError, IModelStatus } from \"@itwin/core-bentley\";\nimport { Range2d } from \"@itwin/core-geometry\";\nimport { ImageMapLayerSettings, ImageSource } from \"@itwin/core-common\";\nimport { request } from \"../../../../request/Request\";\nimport { IModelApp } from \"../../../../IModelApp\";\nimport { ScreenViewport } from \"../../../../Viewport\";\nimport {\n MapLayerImageryProvider, MapTile, MapTilingScheme, QuadId,\n Tile, WebMercatorTilingScheme,\n} from \"../../../../tile/internal\";\n\n/** Represents one range of geography and tile zoom levels for a bing data provider\n */\nclass Coverage {\n constructor(private _lowerLeftLatitude: number,\n private _lowerLeftLongitude: number,\n private _upperRightLatitude: number,\n private _upperRightLongitude: number,\n private _minimumZoomLevel: number,\n private _maximumZoomLevel: number) { }\n\n public overlaps(quadId: QuadId, tilingScheme: MapTilingScheme): boolean {\n const range: Range2d = quadId.getLatLongRangeDegrees(tilingScheme);\n if (quadId.level < this._minimumZoomLevel)\n return false;\n if (quadId.level > this._maximumZoomLevel)\n return false;\n if (range.low.x > this._upperRightLongitude)\n return false;\n if (range.low.y > this._upperRightLatitude)\n return false;\n if (range.high.x < this._lowerLeftLongitude)\n return false;\n if (range.high.y < this._lowerLeftLatitude)\n return false;\n\n return true;\n }\n}\n\n/** Represents the copyright message and an array of coverage data for one of bing's data providers (HERE for example).\n */\nclass BingAttribution {\n constructor(public copyrightMessage: string, private _coverages: Coverage[]) { }\n\n public matchesTile(tile: Tile, tilingScheme: MapTilingScheme): boolean {\n const quadId = QuadId.createFromContentId(tile.contentId);\n for (const coverage of this._coverages) {\n if (coverage.overlaps(quadId, tilingScheme))\n return true;\n }\n return false;\n }\n}\n\n// in deployed applications, we can only make https requests, but the Bing Maps metadata request returns templates with \"http:\".\n// This function fixes those.\nfunction replaceHttpWithHttps(originalUrl: string) {\n return originalUrl.startsWith(\"http:\") ? \"https:\".concat(originalUrl.slice(5)) : originalUrl;\n}\n\nexport class BingMapsImageryLayerProvider extends MapLayerImageryProvider {\n private _urlTemplate?: string;\n private _urlSubdomains?: string[];\n private _zoomMax: number;\n private _tileHeight: number;\n private _tileWidth: number;\n private _attributions?: BingAttribution[]; // array of Bing's data providers.\n private _mapTilingScheme: MapTilingScheme;\n private _urlBase: string;\n\n constructor(settings: ImageMapLayerSettings) {\n super(settings, true);\n this._urlBase = settings.url;\n this._zoomMax = 0;\n this._tileHeight = this._tileWidth = 0;\n this._mapTilingScheme = new WebMercatorTilingScheme();\n }\n\n public get tileWidth(): number { return this._tileWidth; }\n public get tileHeight(): number { return this._tileHeight; }\n\n private tileXYToQuadKey(tileX: number, tileY: number, zoomLevel: number) {\n // from C# example in bing documentation https://msdn.microsoft.com/en-us/library/bb259689.aspx\n let quadKey: string = \"\";\n\n // Root tile is not displayable. Returns 0 for _GetMaximumSize(). Should not end up here.\n assert(0 !== zoomLevel);\n\n for (let i: number = zoomLevel; i > 0; i--) {\n let digit: number = 0x30; // '0'\n const mask: number = 1 << (i - 1);\n if ((tileX & mask) !== 0) {\n digit++;\n }\n if ((tileY & mask) !== 0) {\n digit++;\n digit++;\n }\n quadKey = quadKey.concat(String.fromCharCode(digit));\n }\n return quadKey;\n }\n\n // construct the Url from the desired Tile\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\n // From the tile, get a \"quadKey\" the Microsoft way.\n const quadKey: string = this.tileXYToQuadKey(column, row, zoomLevel);\n const subdomain: string = this._urlSubdomains![(row + column) % this._urlSubdomains!.length];\n\n // from the template url, construct the tile url.\n let url: string = this._urlTemplate!.replace(\"{subdomain}\", subdomain);\n url = url.replace(\"{quadkey}\", quadKey);\n\n return url;\n }\n\n // gets the attributions that match the tile set.\n private getMatchingAttributions(tiles: Set<Tile> | undefined): BingAttribution[] {\n const matchingAttributions: BingAttribution[] = new Array<BingAttribution>();\n if (!this._attributions || !tiles)\n return matchingAttributions;\n\n const unmatchedSet: BingAttribution[] = this._attributions.slice();\n for (const tile of tiles) {\n if (tile instanceof MapTile) {\n // compare to the set of Bing attributions that we have not yet matched.\n for (let iAttr = 0; iAttr < unmatchedSet.length; iAttr++) {\n const attribution = unmatchedSet[iAttr];\n if (attribution.matchesTile(tile, this._mapTilingScheme)) {\n matchingAttributions.push(attribution);\n unmatchedSet.splice(iAttr, 1);\n break;\n }\n }\n }\n }\n return matchingAttributions;\n }\n /** @deprecated in 5.0 Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void {\n const tiles = IModelApp.tileAdmin.getTilesForUser(vp)?.selected;\n const matchingAttributions = this.getMatchingAttributions(tiles);\n const copyrights: string[] = [];\n for (const match of matchingAttributions)\n copyrights.push(match.copyrightMessage);\n\n let copyrightMsg = \"\";\n for (let i = 0; i < copyrights.length; ++i) {\n if (i > 0)\n copyrightMsg += \"<br>\";\n copyrightMsg += copyrights[i];\n }\n\n cards.appendChild(IModelApp.makeLogoCard({ iconSrc: `${IModelApp.publicPath}images/bing.svg`, heading: \"Microsoft Bing\", notice: copyrightMsg }));\n }\n\n public override async addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards, vp));\n }\n\n // initializes the BingImageryProvider by reading the templateUrl, logo image, and attribution list.\n public override async initialize(): Promise<void> {\n // get the template url\n const bingRequestUrl = this._urlBase.replace(\"{bingKey}\", this._settings.accessKey ? this._settings.accessKey.value : \"\");\n\n try {\n const bingResponseProps = await request(bingRequestUrl, \"json\");\n\n const thisResourceSetProps = bingResponseProps.resourceSets[0];\n const thisResourceProps = thisResourceSetProps.resources[0];\n this._zoomMax = thisResourceProps.zoomMax;\n this._tileHeight = thisResourceProps.imageHeight;\n this._tileWidth = thisResourceProps.imageWidth;\n this._urlTemplate = replaceHttpWithHttps(thisResourceProps.imageUrl.replace(\"{culture}\", \"en-US\")); // NEEDSWORK - get locale from somewhere.\n this._urlSubdomains = thisResourceProps.imageUrlSubdomains;\n // read the list of Bing's data suppliers and the range of data they provide. Used in calculation of copyright message.\n this.readAttributions(thisResourceProps.imageryProviders);\n\n // Bing sometimes provides tiles that have nothing but a camera icon in the middle of them when you ask\n // for tiles at zoom levels where they don't have data. Their application stops you from zooming in when that's the\n // case, but we can't stop - the user might want to look at design data a closer zoom. So we intentionally load such\n // a tile, and then compare other tiles to it, rejecting them if they match.\n this.loadTile(0, 0, this._zoomMax - 1).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\n if (tileData !== undefined)\n this._missingTileData = tileData.data as Uint8Array;\n });\n } catch {\n throw new BentleyError(IModelStatus.BadModel, \"Error in Bing Server communications\");\n }\n }\n\n // reads the list of Bing data providers and the map range for which they each provide data.\n private readAttributions(attributionProps: any) {\n for (const thisAttributionProps of attributionProps) {\n const copyrightMessage: string = thisAttributionProps.attribution;\n const coverages: Coverage[] = new Array<Coverage>();\n for (const thisCoverageProps of thisAttributionProps.coverageAreas) {\n const thisCoverage = new Coverage(thisCoverageProps.bbox[0], thisCoverageProps.bbox[1], thisCoverageProps.bbox[2], thisCoverageProps.bbox[3],\n thisCoverageProps.zoomMin, thisCoverageProps.zoomMax);\n coverages.push(thisCoverage);\n }\n const thisAttribution: BingAttribution = new BingAttribution(copyrightMessage, coverages);\n if (!this._attributions)\n this._attributions = new Array<BingAttribution>();\n this._attributions.push(thisAttribution);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"BingImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/BingImageryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EACL,uBAAuB,EAAE,OAAO,EAAmB,MAAM,EACnD,uBAAuB,GAC9B,MAAM,2BAA2B,CAAC;AAEnC;GACG;AACH,MAAM,QAAQ;IACQ;IACV;IACA;IACA;IACA;IACA;IALV,YAAoB,kBAA0B,EACpC,mBAA2B,EAC3B,mBAA2B,EAC3B,oBAA4B,EAC5B,iBAAyB,EACzB,iBAAyB;QALf,uBAAkB,GAAlB,kBAAkB,CAAQ;QACpC,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,sBAAiB,GAAjB,iBAAiB,CAAQ;IAAI,CAAC;IAEjC,QAAQ,CAAC,MAAc,EAAE,YAA6B;QAC3D,MAAM,KAAK,GAAY,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB;YACvC,OAAO,KAAK,CAAC;QACf,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB;YACvC,OAAO,KAAK,CAAC;QACf,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB;YACzC,OAAO,KAAK,CAAC;QACf,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB;YACxC,OAAO,KAAK,CAAC;QACf,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB;YACzC,OAAO,KAAK,CAAC;QACf,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB;YACxC,OAAO,KAAK,CAAC;QAEf,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;GACG;AACH,MAAM,eAAe;IACA;IAAkC;IAArD,YAAmB,gBAAwB,EAAU,UAAsB;QAAxD,qBAAgB,GAAhB,gBAAgB,CAAQ;QAAU,eAAU,GAAV,UAAU,CAAY;IAAI,CAAC;IAEzE,WAAW,CAAC,IAAU,EAAE,YAA6B;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBACzC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,gIAAgI;AAChI,6BAA6B;AAC7B,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC/F,CAAC;AAED,MAAM,OAAO,4BAA6B,SAAQ,uBAAuB;IAC/D,YAAY,CAAU;IACtB,cAAc,CAAY;IAC1B,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,UAAU,CAAS;IACnB,aAAa,CAAqB,CAAC,kCAAkC;IACrE,gBAAgB,CAAkB;IAClC,QAAQ,CAAS;IAEzB,YAAY,QAA+B;QACzC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACxD,CAAC;IAED,IAAW,SAAS,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,IAAW,UAAU,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpD,eAAe,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB;QACrE,+FAA+F;QAC/F,IAAI,OAAO,GAAW,EAAE,CAAC;QAEzB,yFAAyF;QACzF,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAExB,KAAK,IAAI,CAAC,GAAW,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,GAAW,IAAI,CAAC,CAAC,MAAM;YAChC,MAAM,IAAI,GAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,EAAE,CAAC;YACV,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;YACV,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACtE,oDAAoD;QACpD,MAAM,OAAO,GAAW,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,SAAS,GAAW,IAAI,CAAC,cAAe,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,cAAe,CAAC,MAAM,CAAC,CAAC;QAE7F,iDAAiD;QACjD,IAAI,GAAG,GAAW,IAAI,CAAC,YAAa,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACvE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAExC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iDAAiD;IACzC,uBAAuB,CAAC,KAA4B;QAC1D,MAAM,oBAAoB,GAAsB,IAAI,KAAK,EAAmB,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK;YAC/B,OAAO,oBAAoB,CAAC;QAE9B,MAAM,YAAY,GAAsB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;gBAC5B,wEAAwE;gBACxE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;oBACzD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACzD,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACvC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC9B,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACA,sGAAsG;IACvF,YAAY,CAAC,KAAuB,EAAE,EAAkB;QACtE,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;QAChE,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,oBAAoB;YACtC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE1C,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC;gBACP,YAAY,IAAI,MAAM,CAAC;YACzB,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,UAAU,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACpJ,CAAC;IAEe,KAAK,CAAC,eAAe,CAAC,KAAuB,EAAE,EAAkB;QAC/E,4DAA4D;QAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,oGAAoG;IACpF,KAAK,CAAC,UAAU;QAC9B,uBAAuB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1H,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAEhE,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,yCAAyC;YAC7I,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;YAC3D,uHAAuH;YACvH,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAE1D,uGAAuG;YACvG,mHAAmH;YACnH,oHAAoH;YACpH,4EAA4E;YAC5E,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAiC,EAAE,EAAE;gBAChF,IAAI,QAAQ,KAAK,SAAS;oBACxB,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAkB,CAAC;YACxD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,4FAA4F;IACpF,gBAAgB,CAAC,gBAAqB;QAC5C,KAAK,MAAM,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;YACpD,MAAM,gBAAgB,GAAW,oBAAoB,CAAC,WAAW,CAAC;YAClE,MAAM,SAAS,GAAe,IAAI,KAAK,EAAY,CAAC;YACpD,KAAK,MAAM,iBAAiB,IAAI,oBAAoB,CAAC,aAAa,EAAE,CAAC;gBACnE,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAC1I,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACxD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,eAAe,GAAoB,IAAI,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI,CAAC,aAAa;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAmB,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, BentleyError, IModelStatus } from \"@itwin/core-bentley\";\nimport { Range2d } from \"@itwin/core-geometry\";\nimport { ImageMapLayerSettings, ImageSource } from \"@itwin/core-common\";\nimport { request } from \"../../../../request/Request\";\nimport { IModelApp } from \"../../../../IModelApp\";\nimport { ScreenViewport } from \"../../../../Viewport\";\nimport {\n MapLayerImageryProvider, MapTile, MapTilingScheme, QuadId,\n Tile, WebMercatorTilingScheme,\n} from \"../../../../tile/internal\";\n\n/** Represents one range of geography and tile zoom levels for a bing data provider\n */\nclass Coverage {\n constructor(private _lowerLeftLatitude: number,\n private _lowerLeftLongitude: number,\n private _upperRightLatitude: number,\n private _upperRightLongitude: number,\n private _minimumZoomLevel: number,\n private _maximumZoomLevel: number) { }\n\n public overlaps(quadId: QuadId, tilingScheme: MapTilingScheme): boolean {\n const range: Range2d = quadId.getLatLongRangeDegrees(tilingScheme);\n if (quadId.level < this._minimumZoomLevel)\n return false;\n if (quadId.level > this._maximumZoomLevel)\n return false;\n if (range.low.x > this._upperRightLongitude)\n return false;\n if (range.low.y > this._upperRightLatitude)\n return false;\n if (range.high.x < this._lowerLeftLongitude)\n return false;\n if (range.high.y < this._lowerLeftLatitude)\n return false;\n\n return true;\n }\n}\n\n/** Represents the copyright message and an array of coverage data for one of bing's data providers (HERE for example).\n */\nclass BingAttribution {\n constructor(public copyrightMessage: string, private _coverages: Coverage[]) { }\n\n public matchesTile(tile: Tile, tilingScheme: MapTilingScheme): boolean {\n const quadId = QuadId.createFromContentId(tile.contentId);\n for (const coverage of this._coverages) {\n if (coverage.overlaps(quadId, tilingScheme))\n return true;\n }\n return false;\n }\n}\n\n// in deployed applications, we can only make https requests, but the Bing Maps metadata request returns templates with \"http:\".\n// This function fixes those.\nfunction replaceHttpWithHttps(originalUrl: string) {\n return originalUrl.startsWith(\"http:\") ? \"https:\".concat(originalUrl.slice(5)) : originalUrl;\n}\n\nexport class BingMapsImageryLayerProvider extends MapLayerImageryProvider {\n private _urlTemplate?: string;\n private _urlSubdomains?: string[];\n private _zoomMax: number;\n private _tileHeight: number;\n private _tileWidth: number;\n private _attributions?: BingAttribution[]; // array of Bing's data providers.\n private _mapTilingScheme: MapTilingScheme;\n private _urlBase: string;\n\n constructor(settings: ImageMapLayerSettings) {\n super(settings, true);\n this._urlBase = settings.url;\n this._zoomMax = 0;\n this._tileHeight = this._tileWidth = 0;\n this._mapTilingScheme = new WebMercatorTilingScheme();\n }\n\n public get tileWidth(): number { return this._tileWidth; }\n public get tileHeight(): number { return this._tileHeight; }\n\n private tileXYToQuadKey(tileX: number, tileY: number, zoomLevel: number) {\n // from C# example in bing documentation https://msdn.microsoft.com/en-us/library/bb259689.aspx\n let quadKey: string = \"\";\n\n // Root tile is not displayable. Returns 0 for _GetMaximumSize(). Should not end up here.\n assert(0 !== zoomLevel);\n\n for (let i: number = zoomLevel; i > 0; i--) {\n let digit: number = 0x30; // '0'\n const mask: number = 1 << (i - 1);\n if ((tileX & mask) !== 0) {\n digit++;\n }\n if ((tileY & mask) !== 0) {\n digit++;\n digit++;\n }\n quadKey = quadKey.concat(String.fromCharCode(digit));\n }\n return quadKey;\n }\n\n // construct the Url from the desired Tile\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\n // From the tile, get a \"quadKey\" the Microsoft way.\n const quadKey: string = this.tileXYToQuadKey(column, row, zoomLevel);\n const subdomain: string = this._urlSubdomains![(row + column) % this._urlSubdomains!.length];\n\n // from the template url, construct the tile url.\n let url: string = this._urlTemplate!.replace(\"{subdomain}\", subdomain);\n url = url.replace(\"{quadkey}\", quadKey);\n\n return url;\n }\n\n // gets the attributions that match the tile set.\n private getMatchingAttributions(tiles: Set<Tile> | undefined): BingAttribution[] {\n const matchingAttributions: BingAttribution[] = new Array<BingAttribution>();\n if (!this._attributions || !tiles)\n return matchingAttributions;\n\n const unmatchedSet: BingAttribution[] = this._attributions.slice();\n for (const tile of tiles) {\n if (tile instanceof MapTile) {\n // compare to the set of Bing attributions that we have not yet matched.\n for (let iAttr = 0; iAttr < unmatchedSet.length; iAttr++) {\n const attribution = unmatchedSet[iAttr];\n if (attribution.matchesTile(tile, this._mapTilingScheme)) {\n matchingAttributions.push(attribution);\n unmatchedSet.splice(iAttr, 1);\n break;\n }\n }\n }\n }\n return matchingAttributions;\n }\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void {\n const tiles = IModelApp.tileAdmin.getTilesForUser(vp)?.selected;\n const matchingAttributions = this.getMatchingAttributions(tiles);\n const copyrights: string[] = [];\n for (const match of matchingAttributions)\n copyrights.push(match.copyrightMessage);\n\n let copyrightMsg = \"\";\n for (let i = 0; i < copyrights.length; ++i) {\n if (i > 0)\n copyrightMsg += \"<br>\";\n copyrightMsg += copyrights[i];\n }\n\n cards.appendChild(IModelApp.makeLogoCard({ iconSrc: `${IModelApp.publicPath}images/bing.svg`, heading: \"Microsoft Bing\", notice: copyrightMsg }));\n }\n\n public override async addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards, vp));\n }\n\n // initializes the BingImageryProvider by reading the templateUrl, logo image, and attribution list.\n public override async initialize(): Promise<void> {\n // get the template url\n const bingRequestUrl = this._urlBase.replace(\"{bingKey}\", this._settings.accessKey ? this._settings.accessKey.value : \"\");\n\n try {\n const bingResponseProps = await request(bingRequestUrl, \"json\");\n\n const thisResourceSetProps = bingResponseProps.resourceSets[0];\n const thisResourceProps = thisResourceSetProps.resources[0];\n this._zoomMax = thisResourceProps.zoomMax;\n this._tileHeight = thisResourceProps.imageHeight;\n this._tileWidth = thisResourceProps.imageWidth;\n this._urlTemplate = replaceHttpWithHttps(thisResourceProps.imageUrl.replace(\"{culture}\", \"en-US\")); // NEEDSWORK - get locale from somewhere.\n this._urlSubdomains = thisResourceProps.imageUrlSubdomains;\n // read the list of Bing's data suppliers and the range of data they provide. Used in calculation of copyright message.\n this.readAttributions(thisResourceProps.imageryProviders);\n\n // Bing sometimes provides tiles that have nothing but a camera icon in the middle of them when you ask\n // for tiles at zoom levels where they don't have data. Their application stops you from zooming in when that's the\n // case, but we can't stop - the user might want to look at design data a closer zoom. So we intentionally load such\n // a tile, and then compare other tiles to it, rejecting them if they match.\n this.loadTile(0, 0, this._zoomMax - 1).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\n if (tileData !== undefined)\n this._missingTileData = tileData.data as Uint8Array;\n });\n } catch {\n throw new BentleyError(IModelStatus.BadModel, \"Error in Bing Server communications\");\n }\n }\n\n // reads the list of Bing data providers and the map range for which they each provide data.\n private readAttributions(attributionProps: any) {\n for (const thisAttributionProps of attributionProps) {\n const copyrightMessage: string = thisAttributionProps.attribution;\n const coverages: Coverage[] = new Array<Coverage>();\n for (const thisCoverageProps of thisAttributionProps.coverageAreas) {\n const thisCoverage = new Coverage(thisCoverageProps.bbox[0], thisCoverageProps.bbox[1], thisCoverageProps.bbox[2], thisCoverageProps.bbox[3],\n thisCoverageProps.zoomMin, thisCoverageProps.zoomMax);\n coverages.push(thisCoverage);\n }\n const thisAttribution: BingAttribution = new BingAttribution(copyrightMessage, coverages);\n if (!this._attributions)\n this._attributions = new Array<BingAttribution>();\n this._attributions.push(thisAttribution);\n }\n }\n}\n"]}
@@ -16,7 +16,7 @@ export declare class MapBoxLayerImageryProvider extends MapLayerImageryProvider
16
16
  get minimumZoomLevel(): number;
17
17
  get maximumZoomLevel(): number;
18
18
  constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
19
- /** @deprecated in 5.0 Use [addAttributions] instead. */
19
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
20
20
  addLogoCards(cards: HTMLTableElement): void;
21
21
  addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void>;
22
22
  initialize(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MapBoxLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;GACG;AACH,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,qBAAqB;IAO3C,IAAW,SAAS,IAAI,MAAM,CAAgB;IAC9C,IAAW,UAAU,IAAI,MAAM,CAAgB;IAC/C,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IACxE,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IAG3D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAczF,wDAAwD;IACzC,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAOrC,eAAe,CAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAClD"}
1
+ {"version":3,"file":"MapBoxLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;GACG;AACH,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,qBAAqB;IAO3C,IAAW,SAAS,IAAI,MAAM,CAAgB;IAC9C,IAAW,UAAU,IAAI,MAAM,CAAgB;IAC/C,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IACxE,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IAG3D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAczF,sGAAsG;IACvF,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAOrC,eAAe,CAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAClD"}
@@ -35,7 +35,7 @@ export class MapBoxLayerImageryProvider extends MapLayerImageryProvider {
35
35
  url = url.concat(`?${this._settings.accessKey.key}=${this._settings.accessKey.value}`);
36
36
  return url;
37
37
  }
38
- /** @deprecated in 5.0 Use [addAttributions] instead. */
38
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
39
39
  addLogoCards(cards) {
40
40
  if (!cards.dataset.mapboxLogoCard) {
41
41
  cards.dataset.mapboxLogoCard = "true";
@@ -1 +1 @@
1
- {"version":3,"file":"MapBoxLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE;GACG;AACH,MAAM,OAAO,0BAA2B,SAAQ,uBAAuB;IAC7D,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IAEzB,YAAY,QAA+B;QACzC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,IAAW,SAAS,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAW,UAAU,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExE,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,iDAAiD;QACjD,2EAA2E;QAC3E,IAAI,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpF,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvF,OAAO,GAAG,CAAC;IACb,CAAC;IAEA,wDAAwD;IACzC,YAAY,CAAC,KAAuB;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC;YACtC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChK,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,eAAe,CAAE,KAAuB,EAAE,GAAmB;QACjF,4DAA4D;QAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,sDAAsD;IACtC,KAAK,CAAC,UAAU,KAAoB,CAAC;CACtD","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../../../IModelApp\";\nimport { MapLayerImageryProvider } from \"../../../../tile/internal\";\nimport { ScreenViewport } from \"../../../../Viewport\";\n\n\n/** Base class imagery map layer formats. Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].\n */\nexport class MapBoxLayerImageryProvider extends MapLayerImageryProvider {\n private _zoomMin: number;\n private _zoomMax: number;\n private _baseUrl: string;\n\n constructor(settings: ImageMapLayerSettings) {\n super(settings, true);\n this._baseUrl = settings.url;\n this._zoomMin = 1;\n this._zoomMax = 20;\n }\n\n public get tileWidth(): number { return 256; }\n public get tileHeight(): number { return 256; }\n public override get minimumZoomLevel(): number { return this._zoomMin; }\n public override get maximumZoomLevel(): number { return this._zoomMax; }\n\n // construct the Url from the desired Tile\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\n if (!this._settings.accessKey) {\n return \"\";\n }\n\n // from the template url, construct the tile url.\n // format: {baseUrl}/{tileSize}/{level}/{column}/{row}?access_token={token}\n let url: string = this._baseUrl.concat(this.tileWidth.toString());\n url = url.concat(`/${zoomLevel.toString()}/${column.toString()}/${row.toString()}`);\n url = url.concat(`?${this._settings.accessKey.key}=${this._settings.accessKey.value}`);\n\n return url;\n }\n\n /** @deprecated in 5.0 Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement): void {\n if (!cards.dataset.mapboxLogoCard) {\n cards.dataset.mapboxLogoCard = \"true\";\n cards.appendChild(IModelApp.makeLogoCard({ heading: \"Mapbox\", notice: IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.MapBoxCopyright\") }));\n }\n }\n\n public override async addAttributions (cards: HTMLTableElement, _vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards));\n }\n\n // no initialization needed for MapBoxImageryProvider.\n public override async initialize(): Promise<void> { }\n}\n"]}
1
+ {"version":3,"file":"MapBoxLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE;GACG;AACH,MAAM,OAAO,0BAA2B,SAAQ,uBAAuB;IAC7D,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IAEzB,YAAY,QAA+B;QACzC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,IAAW,SAAS,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAW,UAAU,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExE,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,iDAAiD;QACjD,2EAA2E;QAC3E,IAAI,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpF,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvF,OAAO,GAAG,CAAC;IACb,CAAC;IAEA,sGAAsG;IACvF,YAAY,CAAC,KAAuB;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC;YACtC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChK,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,eAAe,CAAE,KAAuB,EAAE,GAAmB;QACjF,4DAA4D;QAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,sDAAsD;IACtC,KAAK,CAAC,UAAU,KAAoB,CAAC;CACtD","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../../../IModelApp\";\nimport { MapLayerImageryProvider } from \"../../../../tile/internal\";\nimport { ScreenViewport } from \"../../../../Viewport\";\n\n\n/** Base class imagery map layer formats. Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].\n */\nexport class MapBoxLayerImageryProvider extends MapLayerImageryProvider {\n private _zoomMin: number;\n private _zoomMax: number;\n private _baseUrl: string;\n\n constructor(settings: ImageMapLayerSettings) {\n super(settings, true);\n this._baseUrl = settings.url;\n this._zoomMin = 1;\n this._zoomMax = 20;\n }\n\n public get tileWidth(): number { return 256; }\n public get tileHeight(): number { return 256; }\n public override get minimumZoomLevel(): number { return this._zoomMin; }\n public override get maximumZoomLevel(): number { return this._zoomMax; }\n\n // construct the Url from the desired Tile\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\n if (!this._settings.accessKey) {\n return \"\";\n }\n\n // from the template url, construct the tile url.\n // format: {baseUrl}/{tileSize}/{level}/{column}/{row}?access_token={token}\n let url: string = this._baseUrl.concat(this.tileWidth.toString());\n url = url.concat(`/${zoomLevel.toString()}/${column.toString()}/${row.toString()}`);\n url = url.concat(`?${this._settings.accessKey.key}=${this._settings.accessKey.value}`);\n\n return url;\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement): void {\n if (!cards.dataset.mapboxLogoCard) {\n cards.dataset.mapboxLogoCard = \"true\";\n cards.appendChild(IModelApp.makeLogoCard({ heading: \"Mapbox\", notice: IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.MapBoxCopyright\") }));\n }\n }\n\n public override async addAttributions (cards: HTMLTableElement, _vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards));\n }\n\n // no initialization needed for MapBoxImageryProvider.\n public override async initialize(): Promise<void> { }\n}\n"]}
@@ -6,10 +6,14 @@ export declare class WmtsMapLayerImageryProvider extends MapLayerImageryProvider
6
6
  private _preferredLayerTileMatrixSet;
7
7
  private _preferredLayerStyle;
8
8
  displayedLayerName: string;
9
+ private _resourceUrlTemplate?;
10
+ private _maximumZoomLevel;
9
11
  get mutualExclusiveSubLayer(): boolean;
10
12
  constructor(settings: ImageMapLayerSettings);
11
13
  initialize(): Promise<void>;
14
+ get maximumZoomLevel(): number;
12
15
  private initDisplayedLayer;
16
+ private initResourceUrl;
13
17
  private initPreferredTileMatrixSet;
14
18
  private initPreferredStyle;
15
19
  private initCartoRange;
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAe,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,uBAAuB,EAEvB,MAAM,EAEP,MAAM,2BAA2B,CAAC;AAInC,qBAAa,2BAA4B,SAAQ,uBAAuB;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,4BAA4B,CAA6C;IACjF,OAAO,CAAC,oBAAoB,CAA2C;IAChE,kBAAkB,SAAM;IAE/B,IAAoB,uBAAuB,IAAI,OAAO,CAAiB;gBAE3D,QAAQ,EAAE,qBAAqB;IAKrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjD,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,0BAA0B;IAwClC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kCAAkC;cAIvB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;IAoBlG,IAAoB,yBAAyB,IAAI,OAAO,CAGvD;IAEY,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkB3F"}
1
+ {"version":3,"file":"WmtsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAe,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,uBAAuB,EAEvB,MAAM,EAEP,MAAM,2BAA2B,CAAC;AASnC,qBAAa,2BAA4B,SAAQ,uBAAuB;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,4BAA4B,CAA6C;IACjF,OAAO,CAAC,oBAAoB,CAA2C;IAChE,kBAAkB,SAAM;IAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAAC;IAC1B,IAAoB,uBAAuB,IAAI,OAAO,CAAiB;gBAE3D,QAAQ,EAAE,qBAAqB;IAMrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjD,IAAoB,gBAAgB,IAAI,MAAM,CAAmC;IAEjF,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,0BAA0B;IAyClC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,kCAAkC;cAIvB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;IAoBlG,IAAoB,yBAAyB,IAAI,OAAO,CAGvD;IAEY,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA2B3F"}
@@ -8,15 +8,22 @@
8
8
  import { assert, IModelStatus } from "@itwin/core-bentley";
9
9
  import { ServerError } from "@itwin/core-common";
10
10
  import { MapLayerImageryProvider, MapLayerImageryProviderStatus, WmsUtilities, WmtsCapabilities, WmtsConstants, } from "../../../../tile/internal";
11
+ const tileMatrixSetToken = "{TileMatrixSet}";
12
+ const tileMatrixToken = "{TileMatrix}";
13
+ const tileColToken = "{TileCol}";
14
+ const tileRowToken = "{TileRow}";
11
15
  export class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
12
16
  _baseUrl;
13
17
  _capabilities;
14
18
  _preferredLayerTileMatrixSet = new Map();
15
19
  _preferredLayerStyle = new Map();
16
20
  displayedLayerName = "";
21
+ _resourceUrlTemplate;
22
+ _maximumZoomLevel;
17
23
  get mutualExclusiveSubLayer() { return true; }
18
24
  constructor(settings) {
19
25
  super(settings, true);
26
+ this._maximumZoomLevel = this.defaultMaximumZoomLevel;
20
27
  this._baseUrl = WmsUtilities.getBaseUrl(this._settings.url);
21
28
  }
22
29
  async initialize() {
@@ -24,8 +31,9 @@ export class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
24
31
  this._capabilities = await WmtsCapabilities.create(this._baseUrl);
25
32
  this.initPreferredTileMatrixSet();
26
33
  this.initPreferredStyle();
27
- this.initCartoRange();
28
34
  this.initDisplayedLayer();
35
+ this.initCartoRange();
36
+ this.initResourceUrl();
29
37
  if (this._preferredLayerTileMatrixSet.size === 0 || this._preferredLayerStyle.size === 0)
30
38
  throw new ServerError(IModelStatus.ValidationFailed, "");
31
39
  }
@@ -41,14 +49,39 @@ export class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
41
49
  }
42
50
  }
43
51
  }
52
+ get maximumZoomLevel() { return this._maximumZoomLevel; }
44
53
  initDisplayedLayer() {
45
- if (0 === this._settings.subLayers.length) {
46
- assert(false);
54
+ const layers = this._capabilities?.contents?.layers;
55
+ if (0 === this._settings.subLayers.length && layers && layers.length > 0) {
56
+ // No sub-layers defined in settings, pick first layer from capabilities.
57
+ this.displayedLayerName = layers[0].identifier;
47
58
  return;
48
59
  }
60
+ // If sub-layers are defined in settings, pick the first one that is visible.
49
61
  const firstDisplayedLayer = this._settings.subLayers.find((subLayer) => subLayer.visible);
50
62
  this.displayedLayerName = firstDisplayedLayer ? firstDisplayedLayer.name : this._settings.subLayers[0].name;
51
63
  }
64
+ initResourceUrl() {
65
+ const layersCapabilities = this._capabilities?.contents?.layers;
66
+ if (undefined === layersCapabilities) {
67
+ return;
68
+ }
69
+ const layerCapability = layersCapabilities.find((layer) => layer.identifier === this.displayedLayerName);
70
+ if (undefined === layerCapability) {
71
+ return;
72
+ }
73
+ let resourceUrl = layerCapability.resourceUrls.find((url) => url.format.includes("png"));
74
+ if (undefined === resourceUrl) {
75
+ // If no PNG resource URL is found, try to find a JPEG one.
76
+ resourceUrl = layerCapability.resourceUrls.find((url) => url.format.includes("jpeg") || url.format.includes("jpg"));
77
+ }
78
+ if (undefined !== resourceUrl
79
+ && (resourceUrl.template.indexOf(tileMatrixToken) > 0
80
+ && resourceUrl.template.indexOf(tileColToken) > 0
81
+ && resourceUrl.template.indexOf(tileRowToken) > 0)) {
82
+ this._resourceUrlTemplate = resourceUrl.template;
83
+ }
84
+ }
52
85
  // Each layer can be served in multiple tile matrix set (i.e. TileTree).
53
86
  // We have to pick one for each layer: for now we look for a Google Maps compatible tile tree.
54
87
  initPreferredTileMatrixSet() {
@@ -80,6 +113,7 @@ export class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
80
113
  if (preferredTms !== undefined) {
81
114
  const tmsLink = layer.tileMatrixSetLinks.find((tmsl) => tmsl.tileMatrixSet === preferredTms.identifier);
82
115
  this._preferredLayerTileMatrixSet.set(layer.identifier, { tileMatrixSet: preferredTms, limits: tmsLink?.tileMatrixSetLimits });
116
+ this._maximumZoomLevel = Math.max(this._maximumZoomLevel, preferredTms.tileMatrix.length - 1);
83
117
  }
84
118
  });
85
119
  }
@@ -102,14 +136,13 @@ export class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
102
136
  });
103
137
  }
104
138
  initCartoRange() {
105
- this._capabilities?.contents?.layers.forEach((layer) => {
106
- if (layer.wsg84BoundingBox) {
107
- if (this.cartoRange)
108
- this.cartoRange.extendRange(layer.wsg84BoundingBox);
109
- else
110
- this.cartoRange = layer.wsg84BoundingBox.clone();
111
- }
112
- });
139
+ const activeLayer = this._capabilities?.contents?.layers.find((layer) => layer.identifier === this.displayedLayerName);
140
+ if (activeLayer?.wsg84BoundingBox) {
141
+ if (this.cartoRange)
142
+ this.cartoRange.extendRange(activeLayer.wsg84BoundingBox);
143
+ else
144
+ this.cartoRange = activeLayer.wsg84BoundingBox.clone();
145
+ }
113
146
  }
114
147
  getDisplayedTileMatrixSetAndLimits() {
115
148
  return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);
@@ -144,6 +177,14 @@ export class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
144
177
  let tileMatrix;
145
178
  if (matrixSetAndLimits && matrixSetAndLimits.tileMatrixSet.tileMatrix.length > zoomLevel)
146
179
  tileMatrix = matrixSetAndLimits.tileMatrixSet.tileMatrix[zoomLevel].identifier;
180
+ if (this._resourceUrlTemplate) {
181
+ const tmpUrl = this._resourceUrlTemplate
182
+ .replace(tileMatrixSetToken, matrixSetAndLimits?.tileMatrixSet.identifier ?? "")
183
+ .replace(tileMatrixToken, tileMatrix ?? zoomLevel.toString())
184
+ .replace(tileColToken, column.toString())
185
+ .replace(tileRowToken, row.toString());
186
+ return this.appendCustomParams(tmpUrl);
187
+ }
147
188
  const styleParam = (style?.identifier === undefined ? "" : `&style=${style.identifier}`);
148
189
  if (tileMatrix !== undefined && matrixSetAndLimits !== undefined) {
149
190
  const tmpUrl = `${this._baseUrl}?Service=WMTS&Version=1.0.0&Request=GetTile&Format=image%2Fpng&layer=${this.displayedLayerName}${styleParam}&TileMatrixSet=${matrixSetAndLimits.tileMatrixSet.identifier}&TileMatrix=${tileMatrix}&TileCol=${column}&TileRow=${row}`;
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\nimport { assert, IModelStatus } from \"@itwin/core-bentley\";\nimport { ImageMapLayerSettings, ServerError } from \"@itwin/core-common\";\nimport {\n MapLayerImageryProvider,\n MapLayerImageryProviderStatus,\n QuadId,\n WmsUtilities, WmtsCapabilities, WmtsCapability, WmtsConstants,\n} from \"../../../../tile/internal\";\n\ninterface TileMatrixSetAndLimits { tileMatrixSet: WmtsCapability.TileMatrixSet, limits: WmtsCapability.TileMatrixSetLimits[] | undefined }\n\nexport class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {\n private _baseUrl: string;\n private _capabilities?: WmtsCapabilities;\n private _preferredLayerTileMatrixSet = new Map<string, TileMatrixSetAndLimits>();\n private _preferredLayerStyle = new Map<string, WmtsCapability.Style>();\n public displayedLayerName = \"\";\n\n public override get mutualExclusiveSubLayer(): boolean { return true; }\n\n constructor(settings: ImageMapLayerSettings) {\n super(settings, true);\n this._baseUrl = WmsUtilities.getBaseUrl(this._settings.url);\n }\n\n public override async initialize(): Promise<void> {\n try {\n this._capabilities = await WmtsCapabilities.create(this._baseUrl);\n this.initPreferredTileMatrixSet();\n this.initPreferredStyle();\n this.initCartoRange();\n this.initDisplayedLayer();\n\n if (this._preferredLayerTileMatrixSet.size === 0 || this._preferredLayerStyle.size === 0)\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\n } catch (error: any) {\n // Don't throw error if unauthorized status:\n // We want the tile tree to be created, so that end-user can get feedback on which layer is missing credentials.\n // When credentials will be provided, a new provider will be created, and initialization should be fine.\n if (error?.status === 401) {\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\n } else {\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\n }\n }\n }\n private initDisplayedLayer() {\n if (0 === this._settings.subLayers.length) {\n assert(false);\n return;\n }\n\n const firstDisplayedLayer = this._settings.subLayers.find((subLayer) => subLayer.visible);\n this.displayedLayerName = firstDisplayedLayer ? firstDisplayedLayer.name : this._settings.subLayers[0].name;\n }\n\n // Each layer can be served in multiple tile matrix set (i.e. TileTree).\n // We have to pick one for each layer: for now we look for a Google Maps compatible tile tree.\n private initPreferredTileMatrixSet() {\n const googleMapsTms = this._capabilities?.contents?.getGoogleMapsCompatibleTileMatrixSet();\n const wellGoogleKnownTms = googleMapsTms?.find((tms) => tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME));\n\n this._capabilities?.contents?.layers.forEach((layer) => {\n let preferredTms: WmtsCapability.TileMatrixSet | undefined;\n\n if (wellGoogleKnownTms && layer.tileMatrixSetLinks.some((tmsl) => tmsl.tileMatrixSet === wellGoogleKnownTms.identifier)) {\n // Favor tile matrix set that was explicitly marked as GoogleMaps compatible\n preferredTms = wellGoogleKnownTms;\n } else {\n\n // Search all compatible tile set matrix if previous attempt didn't work.\n // If more than one candidate is found, pick the tile set with the most LODs.\n let tileMatrixSets = googleMapsTms?.filter((tms) => {\n return layer.tileMatrixSetLinks.some((tmsl) => tmsl.tileMatrixSet === tms.identifier);\n });\n\n if (!tileMatrixSets || tileMatrixSets.length === 0) {\n const eps4326CompatibleTms = this._capabilities?.contents?.getEpsg4326CompatibleTileMatrixSet();\n tileMatrixSets = eps4326CompatibleTms?.filter((tms) => {\n return layer.tileMatrixSetLinks.some((tmsl) => tmsl.tileMatrixSet === tms.identifier);\n });\n }\n\n if (tileMatrixSets && tileMatrixSets.length === 1)\n preferredTms = tileMatrixSets[0];\n else if (tileMatrixSets && tileMatrixSets?.length > 1)\n preferredTms = tileMatrixSets.reduce((prev, current) => (prev.tileMatrix.length > current.tileMatrix.length) ? prev : current);\n\n }\n\n if (preferredTms !== undefined) {\n const tmsLink= layer.tileMatrixSetLinks.find((tmsl) => tmsl.tileMatrixSet === preferredTms.identifier);\n this._preferredLayerTileMatrixSet.set(layer.identifier, { tileMatrixSet: preferredTms, limits: tmsLink?.tileMatrixSetLimits } );\n }\n });\n }\n\n // Each layer can be published different style. We look for a style flagged as 'Default'.\n private initPreferredStyle() {\n this._capabilities?.contents?.layers.forEach((layer) => {\n let preferredStyle: WmtsCapability.Style | undefined;\n if (layer.styles.length === 1)\n preferredStyle = layer.styles[0];\n else if (layer.styles.length > 1) {\n // If more than style is available, takes the default one, otherwise the first one.\n const defaultStyle = layer.styles.find((style) => style.isDefault);\n if (defaultStyle)\n preferredStyle = defaultStyle;\n else\n preferredStyle = layer.styles[0];\n }\n\n if (preferredStyle)\n this._preferredLayerStyle.set(layer.identifier, preferredStyle);\n });\n }\n\n private initCartoRange() {\n this._capabilities?.contents?.layers.forEach((layer) => {\n\n if (layer.wsg84BoundingBox) {\n if (this.cartoRange)\n this.cartoRange.extendRange(layer.wsg84BoundingBox);\n else\n this.cartoRange = layer.wsg84BoundingBox.clone();\n }\n });\n }\n private getDisplayedTileMatrixSetAndLimits(): TileMatrixSetAndLimits | undefined {\n return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);\n }\n\n protected override _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void) {\n const childIds = this.getPotentialChildIds(quadId);\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\n if (!matrixSetAndLimits) {\n assert(false); // Must always hava a matrix set.\n return;\n }\n const limits = matrixSetAndLimits.limits?.[quadId.level + 1]?.limits;\n if (!limits) {\n resolveChildren(childIds);\n return;\n }\n\n const availableChildIds = [];\n for (const childId of childIds)\n if (limits.containsXY(childId.column, childId.row))\n availableChildIds.push(childId);\n\n resolveChildren(availableChildIds);\n }\n public override get useGeographicTilingScheme(): boolean {\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\n return matrixSetAndLimits ? (matrixSetAndLimits?.tileMatrixSet.identifier?.includes(\"4326\") || matrixSetAndLimits?.tileMatrixSet.supportedCrs?.includes(\"4326\")) : false;\n }\n\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\n const style = this._preferredLayerStyle.get(this.displayedLayerName);\n\n // Matrix identifier might be something other than standard 0..n zoom level,\n // so lookup the matrix identifier just in case.\n let tileMatrix;\n if (matrixSetAndLimits && matrixSetAndLimits.tileMatrixSet.tileMatrix.length > zoomLevel)\n tileMatrix = matrixSetAndLimits.tileMatrixSet.tileMatrix[zoomLevel].identifier;\n\n const styleParam = (style?.identifier === undefined ? \"\" : `&style=${style.identifier}`);\n if (tileMatrix !== undefined && matrixSetAndLimits !== undefined) {\n const tmpUrl = `${this._baseUrl}?Service=WMTS&Version=1.0.0&Request=GetTile&Format=image%2Fpng&layer=${this.displayedLayerName}${styleParam}&TileMatrixSet=${matrixSetAndLimits.tileMatrixSet.identifier}&TileMatrix=${tileMatrix}&TileCol=${column}&TileRow=${row}`;\n return this.appendCustomParams(tmpUrl);\n }\n return \"\";\n\n }\n}\n"]}
1
+ {"version":3,"file":"WmtsMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../../src/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\nimport { assert, IModelStatus } from \"@itwin/core-bentley\";\nimport { ImageMapLayerSettings, ServerError } from \"@itwin/core-common\";\nimport {\n MapLayerImageryProvider,\n MapLayerImageryProviderStatus,\n QuadId,\n WmsUtilities, WmtsCapabilities, WmtsCapability, WmtsConstants,\n} from \"../../../../tile/internal\";\n\ninterface TileMatrixSetAndLimits { tileMatrixSet: WmtsCapability.TileMatrixSet, limits: WmtsCapability.TileMatrixSetLimits[] | undefined }\n\nconst tileMatrixSetToken = \"{TileMatrixSet}\";\nconst tileMatrixToken = \"{TileMatrix}\";\nconst tileColToken = \"{TileCol}\";\nconst tileRowToken = \"{TileRow}\";\n\nexport class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {\n private _baseUrl: string;\n private _capabilities?: WmtsCapabilities;\n private _preferredLayerTileMatrixSet = new Map<string, TileMatrixSetAndLimits>();\n private _preferredLayerStyle = new Map<string, WmtsCapability.Style>();\n public displayedLayerName = \"\";\n private _resourceUrlTemplate?: string;\n private _maximumZoomLevel;\n public override get mutualExclusiveSubLayer(): boolean { return true; }\n\n constructor(settings: ImageMapLayerSettings) {\n super(settings, true);\n this._maximumZoomLevel = this.defaultMaximumZoomLevel;\n this._baseUrl = WmsUtilities.getBaseUrl(this._settings.url);\n }\n\n public override async initialize(): Promise<void> {\n try {\n this._capabilities = await WmtsCapabilities.create(this._baseUrl);\n this.initPreferredTileMatrixSet();\n this.initPreferredStyle();\n this.initDisplayedLayer();\n this.initCartoRange();\n this.initResourceUrl();\n\n if (this._preferredLayerTileMatrixSet.size === 0 || this._preferredLayerStyle.size === 0)\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\n } catch (error: any) {\n // Don't throw error if unauthorized status:\n // We want the tile tree to be created, so that end-user can get feedback on which layer is missing credentials.\n // When credentials will be provided, a new provider will be created, and initialization should be fine.\n if (error?.status === 401) {\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\n } else {\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\n }\n }\n }\n\n public override get maximumZoomLevel(): number { return this._maximumZoomLevel; }\n\n private initDisplayedLayer() {\n const layers = this._capabilities?.contents?.layers;\n if (0 === this._settings.subLayers.length && layers && layers.length > 0) {\n // No sub-layers defined in settings, pick first layer from capabilities.\n this.displayedLayerName = layers[0].identifier;\n return;\n }\n\n // If sub-layers are defined in settings, pick the first one that is visible.\n const firstDisplayedLayer = this._settings.subLayers.find((subLayer) => subLayer.visible);\n this.displayedLayerName = firstDisplayedLayer ? firstDisplayedLayer.name : this._settings.subLayers[0].name;\n }\n\n\n private initResourceUrl() {\n const layersCapabilities = this._capabilities?.contents?.layers;\n if (undefined === layersCapabilities) {\n return;\n }\n\n const layerCapability = layersCapabilities.find((layer) => layer.identifier === this.displayedLayerName);\n if (undefined === layerCapability) {\n return;\n }\n\n let resourceUrl = layerCapability.resourceUrls.find((url) => url.format.includes(\"png\"));\n if (undefined === resourceUrl) {\n // If no PNG resource URL is found, try to find a JPEG one.\n resourceUrl = layerCapability.resourceUrls.find((url) => url.format.includes(\"jpeg\") || url.format.includes(\"jpg\"));\n }\n if (undefined !== resourceUrl\n && (resourceUrl.template.indexOf(tileMatrixToken) > 0\n && resourceUrl.template.indexOf(tileColToken) > 0\n && resourceUrl.template.indexOf(tileRowToken) > 0\n )\n ) {\n this._resourceUrlTemplate = resourceUrl.template;\n }\n }\n\n // Each layer can be served in multiple tile matrix set (i.e. TileTree).\n // We have to pick one for each layer: for now we look for a Google Maps compatible tile tree.\n private initPreferredTileMatrixSet() {\n const googleMapsTms = this._capabilities?.contents?.getGoogleMapsCompatibleTileMatrixSet();\n const wellGoogleKnownTms = googleMapsTms?.find((tms) => tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME));\n\n this._capabilities?.contents?.layers.forEach((layer) => {\n let preferredTms: WmtsCapability.TileMatrixSet | undefined;\n\n if (wellGoogleKnownTms && layer.tileMatrixSetLinks.some((tmsl) => tmsl.tileMatrixSet === wellGoogleKnownTms.identifier)) {\n // Favor tile matrix set that was explicitly marked as GoogleMaps compatible\n preferredTms = wellGoogleKnownTms;\n } else {\n\n // Search all compatible tile set matrix if previous attempt didn't work.\n // If more than one candidate is found, pick the tile set with the most LODs.\n let tileMatrixSets = googleMapsTms?.filter((tms) => {\n return layer.tileMatrixSetLinks.some((tmsl) => tmsl.tileMatrixSet === tms.identifier);\n });\n\n if (!tileMatrixSets || tileMatrixSets.length === 0) {\n const eps4326CompatibleTms = this._capabilities?.contents?.getEpsg4326CompatibleTileMatrixSet();\n tileMatrixSets = eps4326CompatibleTms?.filter((tms) => {\n return layer.tileMatrixSetLinks.some((tmsl) => tmsl.tileMatrixSet === tms.identifier);\n });\n }\n\n if (tileMatrixSets && tileMatrixSets.length === 1)\n preferredTms = tileMatrixSets[0];\n else if (tileMatrixSets && tileMatrixSets?.length > 1)\n preferredTms = tileMatrixSets.reduce((prev, current) => (prev.tileMatrix.length > current.tileMatrix.length) ? prev : current);\n\n }\n\n if (preferredTms !== undefined) {\n const tmsLink= layer.tileMatrixSetLinks.find((tmsl) => tmsl.tileMatrixSet === preferredTms.identifier);\n this._preferredLayerTileMatrixSet.set(layer.identifier, { tileMatrixSet: preferredTms, limits: tmsLink?.tileMatrixSetLimits } );\n this._maximumZoomLevel = Math.max(this._maximumZoomLevel, preferredTms.tileMatrix.length-1);\n }\n });\n }\n\n // Each layer can be published different style. We look for a style flagged as 'Default'.\n private initPreferredStyle() {\n this._capabilities?.contents?.layers.forEach((layer) => {\n let preferredStyle: WmtsCapability.Style | undefined;\n if (layer.styles.length === 1)\n preferredStyle = layer.styles[0];\n else if (layer.styles.length > 1) {\n // If more than style is available, takes the default one, otherwise the first one.\n const defaultStyle = layer.styles.find((style) => style.isDefault);\n if (defaultStyle)\n preferredStyle = defaultStyle;\n else\n preferredStyle = layer.styles[0];\n }\n\n if (preferredStyle)\n this._preferredLayerStyle.set(layer.identifier, preferredStyle);\n });\n }\n\n private initCartoRange() {\n const activeLayer = this._capabilities?.contents?.layers.find((layer)=>layer.identifier === this.displayedLayerName);\n\n if (activeLayer?.wsg84BoundingBox) {\n if (this.cartoRange)\n this.cartoRange.extendRange(activeLayer.wsg84BoundingBox);\n else\n this.cartoRange = activeLayer.wsg84BoundingBox.clone();\n }\n\n }\n\n private getDisplayedTileMatrixSetAndLimits(): TileMatrixSetAndLimits | undefined {\n return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);\n }\n\n protected override _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void) {\n const childIds = this.getPotentialChildIds(quadId);\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\n if (!matrixSetAndLimits) {\n assert(false); // Must always hava a matrix set.\n return;\n }\n const limits = matrixSetAndLimits.limits?.[quadId.level + 1]?.limits;\n if (!limits) {\n resolveChildren(childIds);\n return;\n }\n\n const availableChildIds = [];\n for (const childId of childIds)\n if (limits.containsXY(childId.column, childId.row))\n availableChildIds.push(childId);\n\n resolveChildren(availableChildIds);\n }\n public override get useGeographicTilingScheme(): boolean {\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\n return matrixSetAndLimits ? (matrixSetAndLimits?.tileMatrixSet.identifier?.includes(\"4326\") || matrixSetAndLimits?.tileMatrixSet.supportedCrs?.includes(\"4326\")) : false;\n }\n\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\n\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\n const style = this._preferredLayerStyle.get(this.displayedLayerName);\n\n // Matrix identifier might be something other than standard 0..n zoom level,\n // so lookup the matrix identifier just in case.\n let tileMatrix;\n if (matrixSetAndLimits && matrixSetAndLimits.tileMatrixSet.tileMatrix.length > zoomLevel)\n tileMatrix = matrixSetAndLimits.tileMatrixSet.tileMatrix[zoomLevel].identifier;\n\n if (this._resourceUrlTemplate) {\n const tmpUrl = this._resourceUrlTemplate\n .replace(tileMatrixSetToken, matrixSetAndLimits?.tileMatrixSet.identifier??\"\")\n .replace(tileMatrixToken, tileMatrix??zoomLevel.toString())\n .replace(tileColToken, column.toString())\n .replace(tileRowToken, row.toString());\n return this.appendCustomParams(tmpUrl);\n }\n\n const styleParam = (style?.identifier === undefined ? \"\" : `&style=${style.identifier}`);\n if (tileMatrix !== undefined && matrixSetAndLimits !== undefined) {\n const tmpUrl = `${this._baseUrl}?Service=WMTS&Version=1.0.0&Request=GetTile&Format=image%2Fpng&layer=${this.displayedLayerName}${styleParam}&TileMatrixSet=${matrixSetAndLimits.tileMatrixSet.identifier}&TileMatrix=${tileMatrix}&TileCol=${column}&TileRow=${row}`;\n return this.appendCustomParams(tmpUrl);\n }\n return \"\";\n }\n}\n"]}
@@ -73,6 +73,12 @@ export declare namespace WmtsCapability {
73
73
  readonly tileMatrixSetLimits: TileMatrixSetLimits[];
74
74
  constructor(elem: Element);
75
75
  }
76
+ class ResourceURL {
77
+ readonly format: string;
78
+ readonly resourceType: string;
79
+ readonly template: string;
80
+ constructor(elem: Element);
81
+ }
76
82
  class TileMatrixSet {
77
83
  readonly identifier: string;
78
84
  readonly title?: string;
@@ -103,6 +109,7 @@ export declare namespace WmtsCapability {
103
109
  readonly boundingBox?: BoundingBox;
104
110
  readonly styles: Style[];
105
111
  readonly tileMatrixSetLinks: TileMatrixSetLink[];
112
+ readonly resourceUrls: ResourceURL[];
106
113
  constructor(elem: Element);
107
114
  }
108
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsCapabilities.d.ts","sourceRoot":"","sources":["../../../../../src/internal/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WmtsCapabilities.d.ts","sourceRoot":"","sources":["../../../../../src/internal/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,7 @@ var XmlConstants;
46
46
  XmlConstants["TILEHEIGHT_XMLTAG"] = "TileHeight";
47
47
  XmlConstants["TILEMATRIX_XMLTAG"] = "TileMatrix";
48
48
  XmlConstants["TILEMATRIXSETLINK_XMLTAG"] = "TileMatrixSetLink";
49
+ XmlConstants["RESOURCEURL_XMLTAG"] = "ResourceURL";
49
50
  XmlConstants["TILEWIDTH_XMLTAG"] = "TileWidth";
50
51
  XmlConstants["TOPLEFTCORNER_XMLTAG"] = "TopLeftCorner";
51
52
  XmlConstants["WELLKNOWNSCALESET_XMLTAG"] = "WellKnownScaleSet";
@@ -288,6 +289,17 @@ export var WmtsCapability;
288
289
  }
289
290
  }
290
291
  WmtsCapability.TileMatrixSetLink = TileMatrixSetLink;
292
+ class ResourceURL {
293
+ format;
294
+ resourceType;
295
+ template;
296
+ constructor(elem) {
297
+ this.format = elem.getAttribute("format") ?? "";
298
+ this.resourceType = elem.getAttribute("resourceType") ?? "";
299
+ this.template = elem.getAttribute("template") ?? "";
300
+ }
301
+ }
302
+ WmtsCapability.ResourceURL = ResourceURL;
291
303
  class TileMatrixSet {
292
304
  identifier;
293
305
  title;
@@ -380,6 +392,7 @@ export var WmtsCapability;
380
392
  boundingBox;
381
393
  styles = [];
382
394
  tileMatrixSetLinks = [];
395
+ resourceUrls = [];
383
396
  constructor(elem) {
384
397
  const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, "");
385
398
  if (identifier)
@@ -421,6 +434,10 @@ export var WmtsCapability;
421
434
  throw new Error("No matrix set link found for WMTS layer");
422
435
  for (const tmsl of tileMatrixSetLink)
423
436
  this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));
437
+ // ResourceURL are optional. It can be repeated for different resource types.
438
+ const resourceUrls = elem.getElementsByTagName(XmlConstants.RESOURCEURL_XMLTAG);
439
+ for (const url of resourceUrls)
440
+ this.resourceUrls.push(new ResourceURL(url));
424
441
  }
425
442
  }
426
443
  WmtsCapability.Layer = Layer;