@itwin/core-frontend 5.0.0-dev.67 → 5.0.0-dev.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +11 -2
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +2 -0
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +4 -0
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +5 -3
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +2 -0
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +5 -0
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +3 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +5 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +5 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +5 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +5 -1
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +8 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +5 -0
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -0
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +51 -5
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +6 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +2 -0
- package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js +3 -0
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +5 -2
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +24 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +6 -4
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js +9 -4
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +11 -2
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +2 -0
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +4 -0
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +5 -3
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts +2 -0
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +5 -0
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +3 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +5 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -0
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +5 -0
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +5 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -0
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -0
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +5 -1
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +8 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +5 -0
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -0
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +52 -6
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +6 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +2 -0
- package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js +3 -0
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +5 -2
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +24 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +6 -4
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js +9 -4
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAsD;AACtD,oDAAyG;AACzG,wDAA6C;AAC7C,+CAA4C;AAC5C,mEAAwF;AAExF,0CAA6N;AAE7N,+CAAyG;AAEzG,gBAAgB;AAChB,MAAM,aAAa,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,CAAC;AAClD,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B;;GAEG;AACH,IAAY,6BAGX;AAHD,WAAY,6BAA6B;IACvC,mFAAK,CAAA;IACL,+FAAW,CAAA;AACb,CAAC,EAHW,6BAA6B,6CAA7B,6BAA6B,QAGxC;AAWD;;;GAGG;AACH,MAAsB,uBAAuB;IAqEZ;IAA4C;IApEjE,2BAA2B,GAAG,KAAK,CAAC;IAC9B,eAAe,GAAG,IAAI,sBAAO,EAA+C,CAAC;IAE7F,gBAAgB;IACC,qBAAqB,GAAG,IAAI,kCAAuB,EAAE,CAAC;IAEvE,gBAAgB;IACC,uBAAuB,GAAG,IAAI,iCAAsB,EAAE,CAAC;IAExE,gBAAgB;IACR,OAAO,GAAG,6BAA6B,CAAC,KAAK,CAAC;IAEtD,gBAAgB;IACN,uBAAuB,GAAG,KAAK,CAAC;IAE1C,gBAAgB;IACG,uBAAuB,GAAG,IAAI,sBAAO,EAAc,CAAC;IAEvE,gBAAgB;IACN,oBAAoB,CAA0B;IAExD,gBAAgB;IAChB,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IACH,IAAW,sBAAsB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAEvD,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7E,gBAAgB;IAChB,IAAW,QAAQ,KAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAElG,gBAAgB;IAChB,IAAW,iBAAiB,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5D,IAAW,gBAAgB,KAAa,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9E,IAAW,gBAAgB,KAAa,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9E,gBAAgB;IAChB,IAAW,eAAe,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE9D,IAAW,uBAAuB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAE/D,gBAAgB;IAChB,IAAW,yBAAyB,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAEjD,UAAU,CAAqB;IAEtC;;;OAGG;IACgB,uBAAuB,GAAG,CAAC,CAAC;IAE/C;;;OAGG;IACgB,uBAAuB,GAAG,EAAE,CAAC;IAEhD,gBAAgB;IAChB,IAAc,mBAAmB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEpD,YAA+B,SAAgC,EAAY,gBAAyB;QAArE,cAAS,GAAT,SAAS,CAAuB;QAAY,qBAAgB,GAAhB,gBAAgB,CAAS;QAClG,IAAI,CAAC,qBAAqB,GAAG,IAAI,kCAAuB,EAAE,CAAC;QAC3D,IAAI,CAAC,uBAAuB,GAAG,IAAI,iCAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,QAAiC,EAAE,EAAE;YAC3F,IAAI,QAAQ,KAAK,SAAS;gBACxB,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAkB,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAID,IAAW,YAAY,KAAsB,OAAO,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEjJ;;;;;OAKG;IACI,YAAY,CAAC,MAAwB,EAAE,SAAyB,IAAU,CAAC;IAElF,gBAAgB;IACN,gBAAgB,CAAc;IAExC,gBAAgB;IAChB,IAAW,2BAA2B,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpH,gBAAgB;IACN,KAAK,CAAC,qBAAqB,CAAC,KAAqB,IAAsB,OAAO,IAAI,CAAC,CAAC,CAAC;IAE/F,gBAAgB;IACT,oBAAoB,CAAC,MAAc;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC;IAClJ,CAAC;IAED;;;;;;OAMG;IACO,iBAAiB,CAAC,MAAc,EAAE,eAA6C;QACvF,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB;IACT,gBAAgB,CAAC,IAAoB,EAAE,eAA6C;QACzF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC3J,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,UAAU,CAAC,OAAiB,EAAE,MAAc,EAAE,MAAoB,EAAE,IAAwB;QACvG,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,WAAW,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,cAAc,CAAC,YAAmC,EAAE,OAAe,EAAE,MAAoB,EAAE,KAAyB,EAAE,IAAe,EAAE,QAAgC;QAClL,8DAA8D;QAC9D,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB;IACN,KAAK,CAAC,wBAAwB,CAAC,YAAsB,EAAE,SAAiB;QAChF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,SAAS,GAAe,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC;YACrD,OAAO,SAAS,CAAC;QAEnB,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;QAC5E,IAAI,WAA0C,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,mFAAmF;YACnF,+EAA+E;YAC/E,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACpC,WAAW,GAAG,+BAAiB,CAAC,IAAI,CAAC;iBAClC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACxC,WAAW,GAAG,+BAAiB,CAAC,GAAG,CAAC;QACxC,CAAC;QAED,IAAI,WAAW,KAAK,SAAS;YAC3B,OAAO,IAAI,yBAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEjD,IAAA,qBAAM,EAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,MAAqC;QACpD,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,UAAyC,IAAI,CAAC;IAExE,gBAAgB;IACN,uBAAuB,CAAC,OAAgB;QAChD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvD,IAAA,6BAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,SAAkB;QAE1D,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAC5B,IAAI,CAAC,oBAAoB,GAAI,IAAI,OAAO,CAAO,CAAC,OAAY,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAE,EAAE,CAAA,OAAO,EAAE,CAAC,CAAC,CAAC;;YAEtH,MAAM,IAAI,CAAC,oBAAoB,CAAC;QAElC,IAAI,QAA4B,CAAC;QACjC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,SAAkB;QAEtD,IAAI,QAA4B,CAAC;QAEjC,IAAI,OAA4B,CAAC;QACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvD,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,IAAI,GAAgB;YACxB,MAAM,EAAE,KAAK;YACb,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS;YACzB,IAAA,yBAAiB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAErC,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;eAClB,IAAA,gCAAwB,EAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eACjE,CAAC,IAAI,CAAC,uBAAuB;eAC7B,CAAC,QAAQ,EAChB,CAAC;YACD,0EAA0E;YAC1E,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAE7B,6FAA6F;YAC7F,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAG,IAAI,CAAC,CAAC;YACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAI,mDAAmD;YAC7F,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,0DAA0D;IACnD,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QAElE,IAAI,CAAC;YACH,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBACtB,OAAO,SAAS,CAAC;YAEnB,MAAM,YAAY,GAAa,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEnE,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACtC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;YAC1C,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;gBAE1D,0EAA0E;gBAC1E,kFAAkF;gBAClF,yCAAyC;gBACzC,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;oBACrC,MAAM,GAAG,GAAG,qBAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,gDAAgD,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5I,qBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,0CAAoB,CAAC,2CAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtG,CAAC;YAEH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,gBAAgB;IACN,KAAK,CAAC,cAAc,CAAC,OAAiB,EAAE,GAAW;QAC3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aAClE,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QACT,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,kBAAkB,CAAC,QAAoB;QAC5C,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACxB,OAAO,KAAK,CAAC;QACf,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAClD,OAAO,KAAK,CAAC;QACf,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,SAAiB;QACnC,OAAO,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,QAAgB;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAa;QACjC,OAAO,qBAAK,CAAC,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAa;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACvE,OAAO,qBAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;OAQG;IACI,iBAAiB,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACrE,oGAAoG;QACpG,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpC,MAAM,aAAa,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAEvF,MAAM,cAAc,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAC5E,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAEpF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACI,iBAAiB,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACrE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE1D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,gBAAgB;IACT,uBAAuB,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACrI,CAAC;IAED,gBAAgB;IACT,2BAA2B,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB,EAAE,mBAA4B;QAC7G,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAEvE,CAAC;IAED,gBAAgB;IACT,uBAAuB,CAAC,UAAuB,EAAE,mBAA4B;QAElF,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvK,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvK,CAAC;IACH,CAAC;IAED;;OAEG;IACO,kBAAkB,CAAC,GAAW;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB;YACxE,OAAO,GAAG,CAAC;QAEb,IAAI,MAAM,GAAG,IAAA,4BAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrE,MAAM,GAAG,IAAA,4BAAiB,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApcD,0DAocC","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 MapLayers\n */\n\nimport { assert, BeEvent } from \"@itwin/core-bentley\";\nimport { Cartographic, ImageMapLayerSettings, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\nimport { Angle } from \"@itwin/core-geometry\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../NotificationManager\";\nimport { ScreenViewport } from \"../../Viewport\";\nimport { appendQueryParams, GeographicTilingScheme, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapFeatureInfoOptions, MapLayerFeatureInfo, MapTilingScheme, QuadId, WebMercatorTilingScheme } from \"../internal\";\nimport { HitDetail } from \"../../HitDetail\";\nimport { headersIncludeAuthMethod, setBasicAuthorization, setRequestTimeout } from \"../../request/utils\";\n\n/** @internal */\nconst tileImageSize = 256, untiledImageSize = 256;\nconst earthRadius = 6378137;\nconst doDebugToolTips = false;\n\n/** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.\n * @public\n */\nexport enum MapLayerImageryProviderStatus {\n Valid,\n RequireAuth,\n}\n\n/** @internal */\nexport interface WGS84Extent\n{\n longitudeLeft: number;\n longitudeRight: number;\n latitudeTop: number;\n latitudeBottom: number;\n}\n\n/** Abstract class for map layer imagery providers.\n * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.\n * @beta\n */\nexport abstract class MapLayerImageryProvider {\n protected _hasSuccessfullyFetchedTile = false;\n public readonly onStatusChanged = new BeEvent<(provider: MapLayerImageryProvider) => void>();\n\n /** @internal */\n private readonly _mercatorTilingScheme = new WebMercatorTilingScheme();\n\n /** @internal */\n private readonly _geographicTilingScheme = new GeographicTilingScheme();\n\n /** @internal */\n private _status = MapLayerImageryProviderStatus.Valid;\n\n /** @internal */\n protected _includeUserCredentials = false;\n\n /** @internal */\n protected readonly onFirstRequestCompleted = new BeEvent<() => void>();\n\n /** @internal */\n protected _firstRequestPromise: Promise<void>|undefined;\n\n /** @internal */\n public get status() { return this._status; }\n\n /** Determine if this provider supports map feature info.\n * For example, this can be used to show the map feature info tool only when a provider is registered to support it.\n * @returns true if provider supports map feature info else return false.\n * @public\n */\n public get supportsMapFeatureInfo(): boolean { return false; }\n\n public resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }\n\n /** @internal */\n public get tileSize(): number { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }\n\n /** @internal */\n public get maximumScreenSize() { return 2 * this.tileSize; }\n\n public get minimumZoomLevel(): number { return this.defaultMinimumZoomLevel; }\n\n public get maximumZoomLevel(): number { return this.defaultMaximumZoomLevel; }\n\n /** @internal */\n public get usesCachedTiles() { return this._usesCachedTiles; }\n\n public get mutualExclusiveSubLayer(): boolean { return false; }\n\n /** @internal */\n public get useGeographicTilingScheme() { return false; }\n\n public cartoRange?: MapCartoRectangle;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMinimumZoomLevel = 0;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMaximumZoomLevel = 22;\n\n /** @internal */\n protected get _filterByCartoRange() { return true; }\n\n constructor(protected readonly _settings: ImageMapLayerSettings, protected _usesCachedTiles: boolean) {\n this._mercatorTilingScheme = new WebMercatorTilingScheme();\n this._geographicTilingScheme = new GeographicTilingScheme(2, 1, true);\n }\n\n /**\n * Initialize the provider by loading the first tile at its default maximum zoom level.\n * @beta\n */\n public async initialize(): Promise<void> {\n this.loadTile(0, 0, this.defaultMaximumZoomLevel).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 }\n\n public abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;\n\n public get tilingScheme(): MapTilingScheme { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }\n\n /**\n * Add attribution logo cards for the data supplied by this provider to the [[Viewport]]'s logo div.\n * @param _cards Logo cards HTML element that may contain custom data attributes.\n * @param _viewport Viewport to add logo cards to.\n * @beta\n */\n public addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void { }\n\n /** @internal */\n protected _missingTileData?: Uint8Array;\n\n /** @internal */\n public get transparentBackgroundString(): string { return this._settings.transparentBackground ? \"true\" : \"false\"; }\n\n /** @internal */\n protected async _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean> { return true; }\n\n /** @internal */\n public getPotentialChildIds(quadId: QuadId): QuadId[] {\n const childLevel = quadId.level + 1;\n return quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));\n }\n\n /**\n * Get child IDs of a quad and generate tiles based on these child IDs.\n * See [[ImageryTileTree._loadChildren]] for the definition of `resolveChildren` where this function is commonly called.\n * @param quadId quad to generate child IDs for.\n * @param resolveChildren Function that creates tiles from child IDs.\n * @beta\n */\n protected _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void) {\n resolveChildren(this.getPotentialChildIds(quadId));\n }\n\n /** @internal */\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\n if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {\n tile.setLeaf();\n return;\n }\n this._generateChildIds(tile.quadId, resolveChildren);\n }\n\n /**\n * Get tooltip text for a specific quad and cartographic position.\n * @param strings List of strings to contain tooltip text.\n * @param quadId Quad ID to get tooltip for.\n * @param _carto Cartographic that may be used to retrieve and/or format tooltip text.\n * @param tree Tree associated with the quad to get the tooltip for.\n * @internal\n */\n public async getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\n if (doDebugToolTips) {\n const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);\n strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);\n }\n }\n\n /** @internal */\n public async getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree, _hit: HitDetail, _options?: MapFeatureInfoOptions): Promise<void> {\n // default implementation; simply return an empty feature info\n featureInfos.push({ layerName: this._settings.name });\n }\n\n /** @internal */\n protected async getImageFromTileResponse(tileResponse: Response, zoomLevel: number) {\n const arrayBuffer = await tileResponse.arrayBuffer();\n const byteArray: Uint8Array = new Uint8Array(arrayBuffer);\n if (!byteArray || (byteArray.length === 0))\n return undefined;\n if (this.matchesMissingTile(byteArray) && zoomLevel > 8)\n return undefined;\n\n const contentType = tileResponse.headers.get(\"content-type\")?.toLowerCase();\n let imageFormat: ImageSourceFormat | undefined;\n if (contentType) {\n // Note: 'includes' is used here instead of exact comparison because we encountered\n // some servers that would give content type such as 'image/png;charset=UTF-8'.\n if (contentType.includes(\"image/jpeg\"))\n imageFormat = ImageSourceFormat.Jpeg;\n else if (contentType.includes(\"image/png\"))\n imageFormat = ImageSourceFormat.Png;\n }\n\n if (imageFormat !== undefined)\n return new ImageSource(byteArray, imageFormat);\n\n assert(false, \"Invalid tile content type\");\n return undefined;\n }\n\n /**\n * Change the status of this provider.\n * Sub-classes should override 'onStatusUpdated' instead of this method.\n * @internal\n */\n public setStatus(status: MapLayerImageryProviderStatus) {\n if (this._status !== status) {\n this.onStatusUpdated(status);\n this._status = status;\n this.onStatusChanged.raiseEvent(this);\n }\n }\n\n /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.\n * @internal\n */\n protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus) { }\n\n /** @internal */\n protected setRequestAuthorization(headers: Headers) {\n if (this._settings.userName && this._settings.password) {\n setBasicAuthorization(headers, this._settings.userName, this._settings.password);\n }\n }\n\n /** @internal */\n public async makeTileRequest(url: string, timeoutMs?: number): Promise<Response> {\n\n // We want to complete the first request before letting other requests go;\n // this done to avoid flooding server with requests missing credentials\n if (!this._firstRequestPromise)\n this._firstRequestPromise = new Promise<void>((resolve: any) => this.onFirstRequestCompleted.addOnce(()=>resolve()));\n else\n await this._firstRequestPromise;\n\n let response: Response|undefined;\n try {\n response = await this.makeRequest(url, timeoutMs);\n } finally {\n this.onFirstRequestCompleted.raiseEvent();\n }\n\n if (response === undefined)\n throw new Error(\"fetch call failed\");\n\n return response;\n }\n\n /** @internal */\n public async makeRequest(url: string, timeoutMs?: number) {\n\n let response: Response|undefined;\n\n let headers: Headers | undefined;\n let hasCreds = false;\n if (this._settings.userName && this._settings.password) {\n hasCreds = true;\n headers = new Headers();\n this.setRequestAuthorization(headers);\n }\n const opts: RequestInit = {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n };\n\n if (timeoutMs !== undefined)\n setRequestTimeout(opts, timeoutMs);\n\n response = await fetch(url, opts);\n\n if (response.status === 401\n && headersIncludeAuthMethod(response.headers, [\"ntlm\", \"negotiate\"])\n && !this._includeUserCredentials\n && !hasCreds\n ) {\n // Removed the previous headers and make sure \"include\" credentials is set\n opts.headers = undefined;\n opts.credentials = \"include\";\n\n // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)\n response = await fetch(url, opts);\n if (response.status === 200) {\n this._includeUserCredentials = true; // avoid going through 401 challenges over and over\n }\n }\n\n return response;\n }\n\n /** Returns a map layer tile at the specified settings. */\n public async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\n\n try {\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\n if (tileUrl.length === 0)\n return undefined;\n\n const tileResponse: Response = await this.makeTileRequest(tileUrl);\n\n if (!this._hasSuccessfullyFetchedTile) {\n this._hasSuccessfullyFetchedTile = true;\n }\n\n return await this.getImageFromTileResponse(tileResponse, zoomLevel);\n } catch (error: any) {\n if (error?.status === 401) {\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\n\n // Only report error to end-user if we were previously able to fetch tiles\n // and then encountered an error, otherwise I assume an error was already reported\n // through the source validation process.\n if (this._hasSuccessfullyFetchedTile) {\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\n }\n\n }\n return undefined;\n }\n }\n\n /** @internal */\n protected async toolTipFromUrl(strings: string[], url: string): Promise<void> {\n const headers = new Headers();\n this.setRequestAuthorization(headers);\n\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n });\n const text = await response.text();\n if (undefined !== text) {\n strings.push(text);\n }\n } catch {\n }\n }\n\n /** @internal */\n public matchesMissingTile(tileData: Uint8Array): boolean {\n if (!this._missingTileData)\n return false;\n if (tileData.length !== this._missingTileData.length)\n return false;\n for (let i: number = 0; i < tileData.length; i += 10) {\n if (this._missingTileData[i] !== tileData[i]) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Calculates the projected x cartesian coordinate in EPSG:3857 from the longitude in EPSG:4326 (WGS84)\n * @param longitude Longitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857X(longitude: number): number {\n return longitude * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the projected y cartesian coordinate in EPSG:3857 from the latitude in EPSG:4326 (WGS84)\n * @param latitude Latitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857Y(latitude: number): number {\n const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);\n return y * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857\n * @param x3857 Projected x cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lon(x3857: number): number {\n return Angle.radiansToDegrees(x3857 / earthRadius);\n }\n\n /**\n * Calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857\n * @param y3857 Projected y cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lat(y3857: number): number {\n const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);\n return Angle.radiansToDegrees(y);\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:4326 (WGS84) format.\n * Map tile providers like Bing and Mapbox allow the URL to be constructed directly from the zoom level and tile coordinates.\n * However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG4326Extent(row: number, column: number, zoomLevel: number): WGS84Extent {\n // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,\n // so use Math.pow instead (I assume the performance lost to be minimal)\n const mapSize = this.tileSize * Math.pow(2, zoomLevel);\n const leftGrid = this.tileSize * column;\n const topGrid = this.tileSize * row;\n\n const longitudeLeft = 360 * ((leftGrid / mapSize) - 0.5);\n const y0 = 0.5 - ((topGrid + this.tileSize) / mapSize);\n const latitudeBottom = 90.0 - 360.0 * Math.atan(Math.exp(-y0 * 2 * Math.PI)) / Math.PI;\n\n const longitudeRight = 360 * (((leftGrid + this.tileSize) / mapSize) - 0.5);\n const y1 = 0.5 - (topGrid / mapSize);\n const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;\n\n return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:3857 format.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG3857Extent(row: number, column: number, zoomLevel: number): { left: number, right: number, top: number, bottom: number } {\n const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);\n\n const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);\n const right = this.getEPSG3857X(epsg4326Extent.longitudeRight);\n const bottom = this.getEPSG3857Y(epsg4326Extent.latitudeBottom);\n const top = this.getEPSG3857Y(epsg4326Extent.latitudeTop);\n\n return { left, right, bottom, top };\n }\n\n /** @internal */\n public getEPSG3857ExtentString(row: number, column: number, zoomLevel: number) {\n const tileExtent = this.getEPSG3857Extent(row, column, zoomLevel);\n return `${tileExtent.left.toFixed(2)},${tileExtent.bottom.toFixed(2)},${tileExtent.right.toFixed(2)},${tileExtent.top.toFixed(2)}`;\n }\n\n /** @internal */\n public getEPSG4326TileExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean) {\n const tileExtent = this.getEPSG4326Extent(row, column, zoomLevel);\n return this.getEPSG4326ExtentString(tileExtent, latLongAxisOrdering);\n\n }\n\n /** @internal */\n public getEPSG4326ExtentString(tileExtent: WGS84Extent, latLongAxisOrdering: boolean) {\n\n if (latLongAxisOrdering) {\n return `${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)}`;\n } else {\n return `${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)}`;\n }\n }\n\n /** Append custom parameters for settings to provided URL object.\n * @internal\n */\n protected appendCustomParams(url: string) {\n if (!this._settings.savedQueryParams && !this._settings.unsavedQueryParams)\n return url;\n\n let tmpUrl = appendQueryParams(url, this._settings.savedQueryParams);\n tmpUrl = appendQueryParams(tmpUrl, this._settings.unsavedQueryParams);\n return tmpUrl;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.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 MapLayers\n */\n\nimport { assert, BeEvent } from \"@itwin/core-bentley\";\nimport { Cartographic, ImageMapLayerSettings, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\nimport { Angle } from \"@itwin/core-geometry\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../NotificationManager\";\nimport { ScreenViewport } from \"../../Viewport\";\nimport { appendQueryParams, GeographicTilingScheme, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapFeatureInfoOptions, MapLayerFeatureInfo, MapTilingScheme, QuadId, WebMercatorTilingScheme } from \"../internal\";\nimport { HitDetail } from \"../../HitDetail\";\nimport { headersIncludeAuthMethod, setBasicAuthorization, setRequestTimeout } from \"../../request/utils\";\nimport { DecorateContext } from \"../../ViewContext\";\n\n/** @internal */\nconst tileImageSize = 256, untiledImageSize = 256;\nconst earthRadius = 6378137;\nconst doDebugToolTips = false;\n\n/** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.\n * @public\n */\nexport enum MapLayerImageryProviderStatus {\n Valid,\n RequireAuth,\n}\n\n/** @internal */\nexport interface WGS84Extent\n{\n longitudeLeft: number;\n longitudeRight: number;\n latitudeTop: number;\n latitudeBottom: number;\n}\n\n/** Abstract class for map layer imagery providers.\n * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.\n * @beta\n */\nexport abstract class MapLayerImageryProvider {\n protected _hasSuccessfullyFetchedTile = false;\n public readonly onStatusChanged = new BeEvent<(provider: MapLayerImageryProvider) => void>();\n\n /** @internal */\n private readonly _mercatorTilingScheme = new WebMercatorTilingScheme();\n\n /** @internal */\n private readonly _geographicTilingScheme = new GeographicTilingScheme();\n\n /** @internal */\n private _status = MapLayerImageryProviderStatus.Valid;\n\n /** @internal */\n protected _includeUserCredentials = false;\n\n /** @internal */\n protected readonly onFirstRequestCompleted = new BeEvent<() => void>();\n\n /** @internal */\n protected _firstRequestPromise: Promise<void>|undefined;\n\n /** @internal */\n public get status() { return this._status; }\n\n /** Determine if this provider supports map feature info.\n * For example, this can be used to show the map feature info tool only when a provider is registered to support it.\n * @returns true if provider supports map feature info else return false.\n * @public\n */\n public get supportsMapFeatureInfo(): boolean { return false; }\n\n public resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }\n\n /** @internal */\n public get tileSize(): number { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }\n\n /** @internal */\n public get maximumScreenSize() { return 2 * this.tileSize; }\n\n public get minimumZoomLevel(): number { return this.defaultMinimumZoomLevel; }\n\n public get maximumZoomLevel(): number { return this.defaultMaximumZoomLevel; }\n\n /** @internal */\n public get usesCachedTiles() { return this._usesCachedTiles; }\n\n public get mutualExclusiveSubLayer(): boolean { return false; }\n\n /** @internal */\n public get useGeographicTilingScheme() { return false; }\n\n public cartoRange?: MapCartoRectangle;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMinimumZoomLevel = 0;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMaximumZoomLevel = 22;\n\n /** @internal */\n protected get _filterByCartoRange() { return true; }\n\n constructor(protected readonly _settings: ImageMapLayerSettings, protected _usesCachedTiles: boolean) {\n this._mercatorTilingScheme = new WebMercatorTilingScheme();\n this._geographicTilingScheme = new GeographicTilingScheme(2, 1, true);\n }\n\n /**\n * Initialize the provider by loading the first tile at its default maximum zoom level.\n * @beta\n */\n public async initialize(): Promise<void> {\n this.loadTile(0, 0, this.defaultMaximumZoomLevel).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 }\n\n public abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;\n\n public get tilingScheme(): MapTilingScheme { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }\n\n /** @deprecated in 5.0 Use [addAttributions] instead. */\n public addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void { }\n\n /**\n * Add attribution logo cards for the data supplied by this provider to the [[Viewport]]'s logo div.\n * @param _cards Logo cards HTML element that may contain custom data attributes.\n * @param _viewport Viewport to add logo cards to.\n * @beta\n */\n public 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 /** @internal */\n protected _missingTileData?: Uint8Array;\n\n /** @internal */\n public get transparentBackgroundString(): string { return this._settings.transparentBackground ? \"true\" : \"false\"; }\n\n /** @internal */\n protected async _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean> { return true; }\n\n /** @internal */\n public getPotentialChildIds(quadId: QuadId): QuadId[] {\n const childLevel = quadId.level + 1;\n return quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));\n }\n\n /**\n * Get child IDs of a quad and generate tiles based on these child IDs.\n * See [[ImageryTileTree._loadChildren]] for the definition of `resolveChildren` where this function is commonly called.\n * @param quadId quad to generate child IDs for.\n * @param resolveChildren Function that creates tiles from child IDs.\n * @beta\n */\n protected _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void) {\n resolveChildren(this.getPotentialChildIds(quadId));\n }\n\n /** @internal */\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\n if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {\n tile.setLeaf();\n return;\n }\n this._generateChildIds(tile.quadId, resolveChildren);\n }\n\n /**\n * Get tooltip text for a specific quad and cartographic position.\n * @param strings List of strings to contain tooltip text.\n * @param quadId Quad ID to get tooltip for.\n * @param _carto Cartographic that may be used to retrieve and/or format tooltip text.\n * @param tree Tree associated with the quad to get the tooltip for.\n * @internal\n */\n public async getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\n if (doDebugToolTips) {\n const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);\n strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);\n }\n }\n\n /** @internal */\n public async getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree, _hit: HitDetail, _options?: MapFeatureInfoOptions): Promise<void> {\n // default implementation; simply return an empty feature info\n featureInfos.push({ layerName: this._settings.name });\n }\n\n /** @internal */\n public decorate(_context: DecorateContext): void {\n }\n\n /** @internal */\n protected async getImageFromTileResponse(tileResponse: Response, zoomLevel: number) {\n const arrayBuffer = await tileResponse.arrayBuffer();\n const byteArray: Uint8Array = new Uint8Array(arrayBuffer);\n if (!byteArray || (byteArray.length === 0))\n return undefined;\n if (this.matchesMissingTile(byteArray) && zoomLevel > 8)\n return undefined;\n\n const contentType = tileResponse.headers.get(\"content-type\")?.toLowerCase();\n let imageFormat: ImageSourceFormat | undefined;\n if (contentType) {\n // Note: 'includes' is used here instead of exact comparison because we encountered\n // some servers that would give content type such as 'image/png;charset=UTF-8'.\n if (contentType.includes(\"image/jpeg\"))\n imageFormat = ImageSourceFormat.Jpeg;\n else if (contentType.includes(\"image/png\"))\n imageFormat = ImageSourceFormat.Png;\n }\n\n if (imageFormat !== undefined)\n return new ImageSource(byteArray, imageFormat);\n\n assert(false, \"Invalid tile content type\");\n return undefined;\n }\n\n /**\n * Change the status of this provider.\n * Sub-classes should override 'onStatusUpdated' instead of this method.\n * @internal\n */\n public setStatus(status: MapLayerImageryProviderStatus) {\n if (this._status !== status) {\n this.onStatusUpdated(status);\n this._status = status;\n this.onStatusChanged.raiseEvent(this);\n }\n }\n\n /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.\n * @internal\n */\n protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus) { }\n\n /** @internal */\n protected setRequestAuthorization(headers: Headers) {\n if (this._settings.userName && this._settings.password) {\n setBasicAuthorization(headers, this._settings.userName, this._settings.password);\n }\n }\n\n /** @internal */\n public async makeTileRequest(url: string, timeoutMs?: number): Promise<Response> {\n\n // We want to complete the first request before letting other requests go;\n // this done to avoid flooding server with requests missing credentials\n if (!this._firstRequestPromise)\n this._firstRequestPromise = new Promise<void>((resolve: any) => this.onFirstRequestCompleted.addOnce(()=>resolve()));\n else\n await this._firstRequestPromise;\n\n let response: Response|undefined;\n try {\n response = await this.makeRequest(url, timeoutMs);\n } finally {\n this.onFirstRequestCompleted.raiseEvent();\n }\n\n if (response === undefined)\n throw new Error(\"fetch call failed\");\n\n return response;\n }\n\n /** @internal */\n public async makeRequest(url: string, timeoutMs?: number) {\n\n let response: Response|undefined;\n\n let headers: Headers | undefined;\n let hasCreds = false;\n if (this._settings.userName && this._settings.password) {\n hasCreds = true;\n headers = new Headers();\n this.setRequestAuthorization(headers);\n }\n const opts: RequestInit = {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n };\n\n if (timeoutMs !== undefined)\n setRequestTimeout(opts, timeoutMs);\n\n response = await fetch(url, opts);\n\n if (response.status === 401\n && headersIncludeAuthMethod(response.headers, [\"ntlm\", \"negotiate\"])\n && !this._includeUserCredentials\n && !hasCreds\n ) {\n // Removed the previous headers and make sure \"include\" credentials is set\n opts.headers = undefined;\n opts.credentials = \"include\";\n\n // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)\n response = await fetch(url, opts);\n if (response.status === 200) {\n this._includeUserCredentials = true; // avoid going through 401 challenges over and over\n }\n }\n\n return response;\n }\n\n /** Returns a map layer tile at the specified settings. */\n public async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\n\n try {\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\n if (tileUrl.length === 0)\n return undefined;\n\n const tileResponse: Response = await this.makeTileRequest(tileUrl);\n\n if (!this._hasSuccessfullyFetchedTile) {\n this._hasSuccessfullyFetchedTile = true;\n }\n\n return await this.getImageFromTileResponse(tileResponse, zoomLevel);\n } catch (error: any) {\n if (error?.status === 401) {\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\n\n // Only report error to end-user if we were previously able to fetch tiles\n // and then encountered an error, otherwise I assume an error was already reported\n // through the source validation process.\n if (this._hasSuccessfullyFetchedTile) {\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\n }\n\n }\n return undefined;\n }\n }\n\n /** @internal */\n protected async toolTipFromUrl(strings: string[], url: string): Promise<void> {\n const headers = new Headers();\n this.setRequestAuthorization(headers);\n\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n });\n const text = await response.text();\n if (undefined !== text) {\n strings.push(text);\n }\n } catch {\n }\n }\n\n /** @internal */\n public matchesMissingTile(tileData: Uint8Array): boolean {\n if (!this._missingTileData)\n return false;\n if (tileData.length !== this._missingTileData.length)\n return false;\n for (let i: number = 0; i < tileData.length; i += 10) {\n if (this._missingTileData[i] !== tileData[i]) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Calculates the projected x cartesian coordinate in EPSG:3857 from the longitude in EPSG:4326 (WGS84)\n * @param longitude Longitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857X(longitude: number): number {\n return longitude * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the projected y cartesian coordinate in EPSG:3857 from the latitude in EPSG:4326 (WGS84)\n * @param latitude Latitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857Y(latitude: number): number {\n const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);\n return y * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857\n * @param x3857 Projected x cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lon(x3857: number): number {\n return Angle.radiansToDegrees(x3857 / earthRadius);\n }\n\n /**\n * Calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857\n * @param y3857 Projected y cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lat(y3857: number): number {\n const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);\n return Angle.radiansToDegrees(y);\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:4326 (WGS84) format.\n * Map tile providers like Bing and Mapbox allow the URL to be constructed directly from the zoom level and tile coordinates.\n * However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG4326Extent(row: number, column: number, zoomLevel: number): WGS84Extent {\n // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,\n // so use Math.pow instead (I assume the performance lost to be minimal)\n const mapSize = this.tileSize * Math.pow(2, zoomLevel);\n const leftGrid = this.tileSize * column;\n const topGrid = this.tileSize * row;\n\n const longitudeLeft = 360 * ((leftGrid / mapSize) - 0.5);\n const y0 = 0.5 - ((topGrid + this.tileSize) / mapSize);\n const latitudeBottom = 90.0 - 360.0 * Math.atan(Math.exp(-y0 * 2 * Math.PI)) / Math.PI;\n\n const longitudeRight = 360 * (((leftGrid + this.tileSize) / mapSize) - 0.5);\n const y1 = 0.5 - (topGrid / mapSize);\n const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;\n\n return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:3857 format.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG3857Extent(row: number, column: number, zoomLevel: number): { left: number, right: number, top: number, bottom: number } {\n const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);\n\n const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);\n const right = this.getEPSG3857X(epsg4326Extent.longitudeRight);\n const bottom = this.getEPSG3857Y(epsg4326Extent.latitudeBottom);\n const top = this.getEPSG3857Y(epsg4326Extent.latitudeTop);\n\n return { left, right, bottom, top };\n }\n\n /** @internal */\n public getEPSG3857ExtentString(row: number, column: number, zoomLevel: number) {\n const tileExtent = this.getEPSG3857Extent(row, column, zoomLevel);\n return `${tileExtent.left.toFixed(2)},${tileExtent.bottom.toFixed(2)},${tileExtent.right.toFixed(2)},${tileExtent.top.toFixed(2)}`;\n }\n\n /** @internal */\n public getEPSG4326TileExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean) {\n const tileExtent = this.getEPSG4326Extent(row, column, zoomLevel);\n return this.getEPSG4326ExtentString(tileExtent, latLongAxisOrdering);\n\n }\n\n /** @internal */\n public getEPSG4326ExtentString(tileExtent: WGS84Extent, latLongAxisOrdering: boolean) {\n\n if (latLongAxisOrdering) {\n return `${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)}`;\n } else {\n return `${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)}`;\n }\n }\n\n /** Append custom parameters for settings to provided URL object.\n * @internal\n */\n protected appendCustomParams(url: string) {\n if (!this._settings.savedQueryParams && !this._settings.unsavedQueryParams)\n return url;\n\n let tmpUrl = appendQueryParams(url, this._settings.savedQueryParams);\n tmpUrl = appendQueryParams(tmpUrl, this._settings.unsavedQueryParams);\n return tmpUrl;\n }\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import { MapLayerSettings } from "@itwin/core-common";
|
|
|
5
5
|
import { HitDetail } from "../../HitDetail";
|
|
6
6
|
import { IModelConnection } from "../../IModelConnection";
|
|
7
7
|
import { MapLayerImageryProvider, TileTreeReference } from "../internal";
|
|
8
|
+
import { DecorateContext } from "../../ViewContext";
|
|
8
9
|
/**
|
|
9
10
|
* A [[TileTreeReference]] to be used specifically for [[MapTileTree]]s.
|
|
10
11
|
* The reference refers to its MapTileTree by way of the tree's [[TileTreeOwner]].
|
|
@@ -39,6 +40,7 @@ export declare abstract class MapLayerTileTreeReference extends TileTreeReferenc
|
|
|
39
40
|
get transparency(): number | undefined;
|
|
40
41
|
canSupplyToolTip(hit: HitDetail): boolean;
|
|
41
42
|
getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined>;
|
|
43
|
+
decorate(_context: DecorateContext): void;
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
46
|
* Creates a MapLayerTileTreeReference.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayerTileTreeReference.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerTileTreeReference.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAyB,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAwC,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"MapLayerTileTreeReference.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerTileTreeReference.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAyB,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAwC,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;GAMG;AACH,8BAAsB,yBAA0B,SAAQ,iBAAiB;IAEvE,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAE3C,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvB,MAAM,EAAE,gBAAgB,CAAC;IAEhC;;;;;;OAMG;gBACS,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAQ3F,SAAS,KAAK,aAAa,uBAA8F;IAEzH,oFAAoF;IACpF,IAAW,QAAQ,YAElB;IAGD,IAAW,SAAS,WAAuC;IAE3D,sDAAsD;IACtD,IAAW,eAAe,IAAI,uBAAuB,GAAG,SAAS,CAAsB;IAEvF,IAAW,aAAa,CAAC,aAAa,EAAE,gBAAgB,EAA0C;IAElG,oDAAoD;IACpD,IAAW,aAAa,IAAI,gBAAgB,CAAgC;IAE5E,wEAAwE;IACxE,IAAW,UAAU,IAAI,MAAM,CAA6B;IAE5D,uDAAuD;IACvD,IAAW,YAAY,uBAAiC;IAExC,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAMnC,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAY3E,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;CAG1D;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,SAAS,CAShK"}
|
|
@@ -72,6 +72,9 @@ class MapLayerTileTreeReference extends internal_1.TileTreeReference {
|
|
|
72
72
|
div.innerHTML = strings.join("<br>");
|
|
73
73
|
return div;
|
|
74
74
|
}
|
|
75
|
+
decorate(_context) {
|
|
76
|
+
this.imageryProvider?.decorate(_context);
|
|
77
|
+
}
|
|
75
78
|
}
|
|
76
79
|
exports.MapLayerTileTreeReference = MapLayerTileTreeReference;
|
|
77
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayerTileTreeReference.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerTileTreeReference.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"MapLayerTileTreeReference.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerTileTreeReference.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 } from \"@itwin/core-bentley\";\nimport { ImageMapLayerSettings, MapLayerSettings, ModelMapLayerSettings } from \"@itwin/core-common\";\nimport { HitDetail } from \"../../HitDetail\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { IModelConnection } from \"../../IModelConnection\";\nimport { createModelMapLayerTileTreeReference, MapLayerImageryProvider, TileTreeReference } from \"../internal\";\nimport { DecorateContext } from \"../../ViewContext\";\n\n/**\n * A [[TileTreeReference]] to be used specifically for [[MapTileTree]]s.\n * The reference refers to its MapTileTree by way of the tree's [[TileTreeOwner]].\n * Multiple MapLayerTileTreeReferences can refer to the same TileTree if the map layer settings are equivalent, meaning\n * they have identical format IDs, URLs, credentials, etc.\n * @beta\n */\nexport abstract class MapLayerTileTreeReference extends TileTreeReference {\n /* @internal */\n protected _layerSettings: MapLayerSettings;\n /* @internal */\n protected _layerIndex: number;\n /* @internal */\n public iModel: IModelConnection;\n\n /**\n * Constructor for a MapLayerTileTreeReference.\n * @param _layerSettings Map layer settings that are applied to the MapLayerTileTreeReference.\n * @param _layerIndex The index of the associated map layer.\n * @param iModel The iModel containing the MapLayerTileTreeReference.\n * @internal\n */\n constructor(_layerSettings: MapLayerSettings, _layerIndex: number, iModel: IModelConnection) {\n super();\n this._layerSettings = _layerSettings;\n this._layerIndex = _layerIndex;\n this.iModel = iModel;\n }\n\n /* @internal */\n protected get _transparency() { return this._layerSettings.transparency ? this._layerSettings.transparency : undefined; }\n\n /** Returns true if the associated map layer, including its sublayers, is opaque. */\n public get isOpaque() {\n return this._layerSettings.visible && (!this._layerSettings.allSubLayersInvisible) && !this._layerSettings.transparentBackground && 0 === this._layerSettings.transparency;\n }\n\n /* Returns the map layer name. */\n public get layerName() { return this._layerSettings.name; }\n\n /** Returns the imagery provider for the tile tree. */\n public get imageryProvider(): MapLayerImageryProvider | undefined { return undefined; }\n\n public set layerSettings(layerSettings: MapLayerSettings) { this._layerSettings = layerSettings; }\n\n /** Returns the layer settings for the map layer. */\n public get layerSettings(): MapLayerSettings { return this._layerSettings; }\n\n /** Returns the index of the map layer associated with the tile tree. */\n public get layerIndex(): number { return this._layerIndex; }\n\n /** Returns the transparency value of the map layer. */\n public get transparency() { return this._transparency; }\n\n public override canSupplyToolTip(hit: HitDetail): boolean {\n const tree = this.treeOwner.tileTree;\n return undefined !== tree && hit.iModel === tree.iModel && tree.modelId === hit.sourceId;\n }\n\n /* Returns a tooltip describing the hit with the map layer name. */\n public override async getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined> {\n const tree = this.treeOwner.tileTree;\n if (undefined === tree || hit.iModel !== tree.iModel || tree.modelId !== hit.sourceId)\n return undefined;\n\n const strings = [];\n strings.push(`Map Layer: ${this._layerSettings.name}`);\n const div = document.createElement(\"div\");\n div.innerHTML = strings.join(\"<br>\");\n return div;\n }\n\n public override decorate(_context: DecorateContext): void {\n this.imageryProvider?.decorate(_context);\n }\n}\n\n/**\n * Creates a MapLayerTileTreeReference.\n * @param layerSettings Model or image map layer settings that are applied to the MapLayerTileTreeReference.\n * @param layerIndex The index of the associated map layer.\n * @param iModel The iModel containing the new MapLayerTileTreeReference.\n * @returns Returns the new tile tree reference, either a ModelMapLayerTileTreeReference or an ImageryMapLayerTreeReference.\n * @internal\n */\nexport function createMapLayerTreeReference(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection): MapLayerTileTreeReference | undefined {\n if (layerSettings instanceof ModelMapLayerSettings) {\n return createModelMapLayerTileTreeReference(layerSettings, layerIndex, iModel);\n } else if (layerSettings instanceof ImageMapLayerSettings)\n return IModelApp.mapLayerFormatRegistry.createImageryMapLayerTree(layerSettings, layerIndex, iModel);\n else {\n assert (false);\n return undefined;\n }\n}\n"]}
|
|
@@ -9,7 +9,7 @@ import { HitDetail } from "../../HitDetail";
|
|
|
9
9
|
import { IModelConnection } from "../../IModelConnection";
|
|
10
10
|
import { FeatureSymbology } from "../../render/FeatureSymbology";
|
|
11
11
|
import { RenderPlanarClassifier } from "../../internal/render/RenderPlanarClassifier";
|
|
12
|
-
import { SceneContext } from "../../ViewContext";
|
|
12
|
+
import { DecorateContext, SceneContext } from "../../ViewContext";
|
|
13
13
|
import { ScreenViewport } from "../../Viewport";
|
|
14
14
|
import { DisclosedTileTreeSet, GeometryTileTreeReference, ImageryMapLayerTreeReference, ImageryMapTileTree, ImageryTileTreeState, MapCartoRectangle, MapFeatureInfoOptions, MapLayerFeatureInfo, MapLayerImageryProvider, MapLayerIndex, MapLayerTileTreeReference, MapTile, MapTileLoader, MapTilingScheme, ModelMapLayerTileTreeReference, QuadId, RealityTile, RealityTileTree, RealityTileTreeParams, Tile, TileDrawArgs, TileParams, TileTree, TileTreeOwner, TileTreeReference } from "../internal";
|
|
15
15
|
/** Utility interface that ties an imagery tile tree to its corresponding map-layer settings object.
|
|
@@ -260,8 +260,11 @@ export declare class MapTileTreeReference extends TileTreeReference {
|
|
|
260
260
|
canSupplyToolTip(hit: HitDetail): boolean;
|
|
261
261
|
getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined>;
|
|
262
262
|
getMapFeatureInfo(hit: HitDetail, options?: MapFeatureInfoOptions): Promise<MapLayerFeatureInfo[] | undefined>;
|
|
263
|
-
/**
|
|
263
|
+
/** @deprecated in 5.0 Use [addAttributions] instead. */
|
|
264
264
|
addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void;
|
|
265
|
+
/** Add logo cards to logo div. */
|
|
266
|
+
addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void>;
|
|
267
|
+
decorate(context: DecorateContext): void;
|
|
265
268
|
}
|
|
266
269
|
/** Returns whether a GCS converter is available.
|
|
267
270
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapTileTree.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapTileTree.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAqI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpL,OAAO,EACL,qBAAqB,EAAE,iBAAiB,EAAgB,QAAQ,EAAqC,SAAS,EAAE,gBAAgB,EACjI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACwB,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAC9G,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MapTileTree.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapTileTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1021,20 +1021,43 @@ class MapTileTreeReference extends internal_1.TileTreeReference {
|
|
|
1021
1021
|
}
|
|
1022
1022
|
return info;
|
|
1023
1023
|
}
|
|
1024
|
-
/**
|
|
1024
|
+
/** @deprecated in 5.0 Use [addAttributions] instead. */
|
|
1025
1025
|
addLogoCards(cards, vp) {
|
|
1026
1026
|
const tree = this.treeOwner.tileTree;
|
|
1027
1027
|
if (tree) {
|
|
1028
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1028
1029
|
tree.mapLoader.terrainProvider.addLogoCards(cards, vp);
|
|
1029
1030
|
for (const imageryTreeRef of this._layerTrees) {
|
|
1030
1031
|
if (imageryTreeRef?.layerSettings.visible) {
|
|
1031
1032
|
const imageryTree = imageryTreeRef.treeOwner.tileTree;
|
|
1032
1033
|
if (imageryTree instanceof internal_1.ImageryMapTileTree)
|
|
1034
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1033
1035
|
imageryTree.addLogoCards(cards, vp);
|
|
1034
1036
|
}
|
|
1035
1037
|
}
|
|
1036
1038
|
}
|
|
1037
1039
|
}
|
|
1040
|
+
/** Add logo cards to logo div. */
|
|
1041
|
+
async addAttributions(cards, vp) {
|
|
1042
|
+
const tree = this.treeOwner.tileTree;
|
|
1043
|
+
if (tree) {
|
|
1044
|
+
const promises = [tree.mapLoader.terrainProvider.addAttributions(cards, vp)];
|
|
1045
|
+
for (const imageryTreeRef of this._layerTrees) {
|
|
1046
|
+
if (imageryTreeRef?.layerSettings.visible) {
|
|
1047
|
+
const imageryTree = imageryTreeRef.treeOwner.tileTree;
|
|
1048
|
+
if (imageryTree instanceof internal_1.ImageryMapTileTree)
|
|
1049
|
+
promises.push(imageryTree.addAttributions(cards, vp));
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
await Promise.all(promises);
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
decorate(context) {
|
|
1056
|
+
for (const layerTree of this._layerTrees) {
|
|
1057
|
+
if (layerTree)
|
|
1058
|
+
layerTree.decorate(context);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1038
1061
|
}
|
|
1039
1062
|
exports.MapTileTreeReference = MapTileTreeReference;
|
|
1040
1063
|
/** Returns whether a GCS converter is available.
|