@itwin/map-layers-formats 4.1.0-dev.7 → 4.1.0-dev.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +74 -1
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts +19 -0
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +1 -0
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js +46 -0
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js.map +1 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +3 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +16 -8
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +157 -45
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts +5 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js +4 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts +15 -6
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js +6 -4
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +14 -0
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -0
- package/lib/cjs/ArcGisFeature/{ArcGisFeatureJSON.js → ArcGisJsonFeatureReader.js} +51 -55
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -0
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +22 -0
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -0
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js +249 -0
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -0
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +32 -77
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +88 -128
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts +152 -0
- package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts.map +1 -0
- package/lib/cjs/ArcGisFeature/EsriSymbology.js +181 -0
- package/lib/cjs/ArcGisFeature/EsriSymbology.js.map +1 -0
- package/lib/cjs/Tools/MapFeatureInfoDecorator.d.ts +34 -0
- package/lib/cjs/Tools/MapFeatureInfoDecorator.d.ts.map +1 -0
- package/lib/cjs/Tools/MapFeatureInfoDecorator.js +281 -0
- package/lib/cjs/Tools/MapFeatureInfoDecorator.js.map +1 -0
- package/lib/cjs/Tools/MapFeatureInfoTool.d.ts +38 -0
- package/lib/cjs/Tools/MapFeatureInfoTool.d.ts.map +1 -0
- package/lib/cjs/Tools/MapFeatureInfoTool.js +113 -0
- package/lib/cjs/Tools/MapFeatureInfoTool.js.map +1 -0
- package/lib/cjs/map-layers-formats.d.ts +1 -0
- package/lib/cjs/map-layers-formats.d.ts.map +1 -1
- package/lib/cjs/map-layers-formats.js +1 -0
- package/lib/cjs/map-layers-formats.js.map +1 -1
- package/lib/cjs/mapLayersFormats.d.ts +12 -1
- package/lib/cjs/mapLayersFormats.d.ts.map +1 -1
- package/lib/cjs/mapLayersFormats.js +11 -1
- package/lib/cjs/mapLayersFormats.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts +19 -0
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +1 -0
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js +42 -0
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js.map +1 -0
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +4 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +16 -8
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +158 -46
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts +5 -0
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js +4 -0
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts +15 -6
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js +4 -2
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +14 -0
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -0
- package/lib/esm/ArcGisFeature/{ArcGisFeatureJSON.js → ArcGisJsonFeatureReader.js} +51 -55
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -0
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +22 -0
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -0
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js +245 -0
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -0
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +32 -77
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +84 -124
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/esm/ArcGisFeature/EsriSymbology.d.ts +152 -0
- package/lib/esm/ArcGisFeature/EsriSymbology.d.ts.map +1 -0
- package/lib/esm/ArcGisFeature/EsriSymbology.js +170 -0
- package/lib/esm/ArcGisFeature/EsriSymbology.js.map +1 -0
- package/lib/esm/Tools/MapFeatureInfoDecorator.d.ts +34 -0
- package/lib/esm/Tools/MapFeatureInfoDecorator.d.ts.map +1 -0
- package/lib/esm/Tools/MapFeatureInfoDecorator.js +277 -0
- package/lib/esm/Tools/MapFeatureInfoDecorator.js.map +1 -0
- package/lib/esm/Tools/MapFeatureInfoTool.d.ts +38 -0
- package/lib/esm/Tools/MapFeatureInfoTool.d.ts.map +1 -0
- package/lib/esm/Tools/MapFeatureInfoTool.js +110 -0
- package/lib/esm/Tools/MapFeatureInfoTool.js.map +1 -0
- package/lib/esm/map-layers-formats.d.ts +1 -0
- package/lib/esm/map-layers-formats.d.ts.map +1 -1
- package/lib/esm/map-layers-formats.js +1 -0
- package/lib/esm/map-layers-formats.js.map +1 -1
- package/lib/esm/mapLayersFormats.d.ts +12 -1
- package/lib/esm/mapLayersFormats.d.ts.map +1 -1
- package/lib/esm/mapLayersFormats.js +13 -2
- package/lib/esm/mapLayersFormats.js.map +1 -1
- package/lib/public/locales/en/mapLayersFormats.json +12 -0
- package/package.json +19 -22
- package/.nycrc +0 -10
- package/.rush/temp/operation/build/all.log +0 -3
- package/.rush/temp/operation/build/state.json +0 -3
- package/.rush/temp/operation/cover/all.log +0 -98
- package/.rush/temp/operation/cover/state.json +0 -3
- package/.rush/temp/operation/docs/all.log +0 -30
- package/.rush/temp/operation/docs/state.json +0 -3
- package/.rush/temp/package-deps_build.json +0 -36
- package/.rush/temp/package-deps_cover.json +0 -36
- package/.rush/temp/package-deps_docs.json +0 -36
- package/.rush/temp/shrinkwrap-deps.json +0 -505
- package/CHANGELOG.json +0 -119
- package/config/rush-project.json +0 -6
- package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts +0 -15
- package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts.map +0 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js.map +0 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts +0 -15
- package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts.map +0 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js +0 -201
- package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js.map +0 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts +0 -33
- package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts.map +0 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js +0 -143
- package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +0 -35
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js +0 -162
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js +0 -168
- package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +0 -680
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js +0 -104
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +0 -215
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js +0 -95
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +0 -2
- package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +0 -60
- package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/Mocks.d.ts +0 -7
- package/lib/cjs/test/ArcGisFeature/Mocks.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/Mocks.js +0 -19
- package/lib/cjs/test/ArcGisFeature/Mocks.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts +0 -56
- package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js +0 -420
- package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js.map +0 -1
- package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +0 -1043
- package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts.map +0 -1
- package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js +0 -427
- package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js.map +0 -1
- package/lib/cjs/test/coverage/.nyc_output/2a6113c3-018f-40b1-ae8f-f3d0cbe030ce.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/74410d89-cce2-4b2a-89c9-6d56490c73f1.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/2a6113c3-018f-40b1-ae8f-f3d0cbe030ce.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/74410d89-cce2-4b2a-89c9-6d56490c73f1.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +0 -1
- package/lib/cjs/test/coverage/cobertura-coverage.xml +0 -1169
- package/lib/cjs/test/coverage/lcov-report/base.css +0 -224
- package/lib/cjs/test/coverage/lcov-report/block-navigation.js +0 -87
- package/lib/cjs/test/coverage/lcov-report/favicon.png +0 -0
- package/lib/cjs/test/coverage/lcov-report/index.html +0 -131
- package/lib/cjs/test/coverage/lcov-report/prettify.css +0 -1
- package/lib/cjs/test/coverage/lcov-report/prettify.js +0 -2
- package/lib/cjs/test/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/lib/cjs/test/coverage/lcov-report/sorter.js +0 -196
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +0 -133
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +0 -550
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +0 -730
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +0 -1546
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +0 -763
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +0 -223
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +0 -598
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +0 -301
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +0 -832
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +0 -236
- package/lib/cjs/test/coverage/lcov-report/src/index.html +0 -131
- package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +0 -130
- package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +0 -163
- package/lib/cjs/test/coverage/lcov.info +0 -1358
- package/lib/cjs/tsconfig.tsbuildinfo +0 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts +0 -15
- package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts +0 -15
- package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js +0 -197
- package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts +0 -33
- package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js +0 -139
- package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +0 -33
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js +0 -160
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js +0 -166
- package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +0 -678
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js +0 -102
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +0 -213
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js +0 -93
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +0 -2
- package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +0 -58
- package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/Mocks.d.ts +0 -7
- package/lib/esm/test/ArcGisFeature/Mocks.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/Mocks.js +0 -16
- package/lib/esm/test/ArcGisFeature/Mocks.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts +0 -56
- package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/NewYorkDataset.js +0 -417
- package/lib/esm/test/ArcGisFeature/NewYorkDataset.js.map +0 -1
- package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +0 -1043
- package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts.map +0 -1
- package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js +0 -424
- package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js.map +0 -1
- package/lib/esm/tsconfig.tsbuildinfo +0 -1
- package/lib/test/junit_results.xml +0 -159
- package/map-layers-formats.build.log +0 -30
- package/src/ArcGisFeature/ArcGisFeatureFormat.ts +0 -16
- package/src/ArcGisFeature/ArcGisFeatureJSON.ts +0 -155
- package/src/ArcGisFeature/ArcGisFeaturePBF.ts +0 -215
- package/src/ArcGisFeature/ArcGisFeatureProvider.ts +0 -487
- package/src/ArcGisFeature/ArcGisFeatureQuery.ts +0 -226
- package/src/ArcGisFeature/ArcGisFeatureReader.ts +0 -46
- package/src/ArcGisFeature/ArcGisFeatureRenderer.ts +0 -171
- package/src/ArcGisFeature/ArcGisFeatureResponse.ts +0 -72
- package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +0 -249
- package/src/ArcGisFeature/esriPBuffer.gen.ts +0 -2612
- package/src/map-layers-formats.ts +0 -15
- package/src/mapLayersFormats.ts +0 -26
- package/src/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.ts +0 -46
- package/src/test/ArcGisFeature/ArcGisFeatureJSON.test.ts +0 -202
- package/src/test/ArcGisFeature/ArcGisFeaturePBF.test.ts +0 -227
- package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +0 -805
- package/src/test/ArcGisFeature/ArcGisFeatureQuery.test.ts +0 -117
- package/src/test/ArcGisFeature/ArcGisFeatureRenderer.test.ts +0 -296
- package/src/test/ArcGisFeature/ArcGisFeatureResponse.test.ts +0 -109
- package/src/test/ArcGisFeature/ArcGisSymbologyRenderer.test.ts +0 -77
- package/src/test/ArcGisFeature/Mocks.ts +0 -19
- package/src/test/ArcGisFeature/NewYorkDataset.ts +0 -423
- package/src/test/ArcGisFeature/PhillyLandmarksDataset.ts +0 -455
- package/tsconfig.json +0 -20
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureProvider.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Base64EncodedString, Cartographic, ImageMapLayerSettings, ImageSourceFormat, ServerError } from \"@itwin/core-common\";\r\nimport * as chai from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\r\nimport { ArcGisFeatureMapLayerFormat } from \"../../ArcGisFeature/ArcGisFeatureFormat\";\r\nimport { ArcGisFeatureProvider } from \"../../map-layers-formats\";\r\nimport * as sinon from \"sinon\";\r\nimport { ArcGISImageryProvider, ArcGisUtilities, ImageryMapTileTree, MapLayerFeatureInfo, MapLayerImageryProviderStatus, QuadId } from \"@itwin/core-frontend\";\r\nimport { NewYorkDataset } from \"./NewYorkDataset\";\r\nimport { base64StringToUint8Array, ByteStream, Logger } from \"@itwin/core-bentley\";\r\nimport { ArcGisExtent, ArcGisFeatureFormat, ArcGisGeometry } from \"../../ArcGisFeature/ArcGisFeatureQuery\";\r\nimport { PhillyLandmarksDataset } from \"./PhillyLandmarksDataset\";\r\nimport { ArcGisFeatureResponse } from \"../../ArcGisFeature/ArcGisFeatureResponse\";\r\nimport { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisFeaturePBF } from \"../../ArcGisFeature/ArcGisFeaturePBF\";\r\nimport { ArcGisFeatureJSON } from \"../../ArcGisFeature/ArcGisFeatureJSON\";\r\n\r\nconst expect = chai.expect;\r\nchai.use(chaiAsPromised);\r\n\r\nconst esriFeatureSampleSource = {name: \"dummyFeatureLayer\", url: \"https://dummy.com\", formatId: ArcGisFeatureMapLayerFormat.formatId};\r\nconst pngTransparent1x1 = \"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==\";\r\n\r\ndescribe(\"ArcGisFeatureProvider\", () => {\r\n const sandbox = sinon.createSandbox();\r\n\r\n afterEach(async () => {\r\n sandbox.restore();\r\n });\r\n\r\n it(\"should initialize with valid data\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:NewYorkDataset.serviceCapabilities};\r\n });\r\n\r\n sandbox.stub(ArcGisFeatureProvider.prototype, \"getLayerMetadata\" as any).callsFake(async function _(_layerId: unknown) {\r\n return NewYorkDataset.streetsLayerCapabilities;\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n\r\n expect((provider as any)._minDepthFromLod).to.equals(11);\r\n expect((provider as any)._maxDepthFromLod).to.equals(22);\r\n });\r\n\r\n it(\"should not initialize with no service metadata\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return undefined;\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n\r\n await expect(provider.initialize()).to.be.rejectedWith(ServerError);\r\n\r\n });\r\n\r\n it(\"should update status when invalid token error from service\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{error: {code: 499}}};\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n const raiseEventSpy = sandbox.spy(provider.onStatusChanged, \"raiseEvent\");\r\n await provider.initialize();\r\n\r\n expect(provider.status).to.equals(MapLayerImageryProviderStatus.RequireAuth);\r\n expect(raiseEventSpy.calledOnceWith(provider)).to.be.true;\r\n });\r\n\r\n it(\"should throw query capability not supported\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Test\"}};\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await expect(provider.initialize()).to.be.rejectedWith(ServerError);\r\n });\r\n\r\n it(\"should pick the first visible sub-layer when multiple visible sub-layers\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content: {capabilities: \"Query\"}};\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n const provider = new ArcGisFeatureProvider(settings);\r\n (provider as any)._format = \"JSON\";\r\n await provider.initialize();\r\n expect((provider as any)._layerId ).to.equals(settings.subLayers[0].id);\r\n });\r\n\r\n it(\"should pick sub-layers from service metadata if none provided on layer settings\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content: {capabilities: \"Query\",\r\n layers: [\r\n {\r\n id : 0,\r\n\r\n },\r\n {\r\n id : 1,\r\n },\r\n ]},\r\n };\r\n });\r\n\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (id: unknown) {\r\n if (id === 1 ) {\r\n return {defaultVisibility:true};\r\n }\r\n return undefined;\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n (provider as any)._format = \"JSON\";\r\n await provider.initialize();\r\n expect((provider as any)._layerId ).to.equals(1);\r\n expect((provider as any)._layerMetadata ).to.eql({defaultVisibility:true});\r\n });\r\n\r\n it(\"should throw error if no layers in capabilities\", async () => {\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content: {capabilities: \"Query\", layers: []}};\r\n });\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await expect(provider.initialize()).to.be.rejectedWith(ServerError);\r\n });\r\n\r\n it(\"should throw if no layer metadata from service\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return undefined;\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await expect(provider.initialize()).to.be.rejectedWith(ServerError);\r\n });\r\n\r\n it(\"should read supported supported format\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n let getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {defaultVisibility:true, supportedQueryFormats:\"PBF, JSON\"};\r\n });\r\n\r\n const getServiceJsonStub = sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content: {capabilities: \"Query\"}};\r\n });\r\n\r\n let provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n expect(provider.format).to.equals(\"JSON\");\r\n\r\n // PBF requires 'supportsCoordinatesQuantization'\r\n getServiceJsonStub.restore();\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content: { currentVersion: 11, capabilities: \"Query\"}};\r\n });\r\n getLayerMetadataStub.restore();\r\n getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {defaultVisibility:true, supportsCoordinatesQuantization:true, supportedQueryFormats:\"PBF, JSON\"};\r\n });\r\n\r\n provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n expect(provider.format).to.equals(\"PBF\");\r\n\r\n getLayerMetadataStub.restore();\r\n getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {defaultVisibility:true, supportedQueryFormats:\"JSON\"};\r\n });\r\n\r\n getServiceJsonStub.restore();\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content: { currentVersion: 10.91, capabilities: \"Query\", supportsCoordinatesQuantization:true}};\r\n });\r\n\r\n provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n expect(provider.format).to.equals(\"JSON\");\r\n\r\n getLayerMetadataStub.restore();\r\n getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {defaultVisibility:true, supportedQueryFormats:\"JSON\"};\r\n });\r\n\r\n provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n expect(provider.format).to.equals(\"JSON\");\r\n\r\n getLayerMetadataStub.restore();\r\n getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {defaultVisibility:true, supportedQueryFormats:\"\"};\r\n });\r\n\r\n provider = new ArcGisFeatureProvider(settings);\r\n await expect(provider.initialize()).to.be.rejectedWith(ServerError);\r\n });\r\n\r\n it(\"should compute minLod/maxLod\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n minScale: 600000,\r\n maxScale: 5000,\r\n };\r\n });\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n\r\n expect((provider as any)._minDepthFromLod ).to.equals(9);\r\n expect((provider as any)._maxDepthFromLod ).to.equals(15);\r\n });\r\n\r\n it(\"should construct empty url\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const provider = new ArcGisFeatureProvider(settings);\r\n const url = await provider.constructUrl(0,0,0);\r\n expect(url).to.equals(\"\");\r\n\r\n });\r\n\r\n it(\"should construct feature query url\", async () => {\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n let getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility: true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n };\r\n });\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{currentVersion: 11, capabilities: \"Query\"}};\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n\r\n let url = provider.constructFeatureUrl(0,0,0, \"PBF\");\r\n const extent = {\r\n xmin: -20037508.34,\r\n ymin: -20037508.33,\r\n xmax: 20037508.34,\r\n ymax: 20037508.34,\r\n spatialReference: {\r\n wkid: 102100,\r\n latestWkid: 3857,\r\n },\r\n };\r\n expect(url?.url).to.equals(`https://dummy.com/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100`);\r\n expect(url?.envelope?.xmin).to.be.closeTo(extent.xmin, 0.01);\r\n expect(url?.envelope?.ymin).to.be.closeTo(extent.ymin, 0.01);\r\n expect(url?.envelope?.xmax).to.be.closeTo(extent.xmax, 0.01);\r\n expect(url?.envelope?.ymax).to.be.closeTo(extent.ymax, 0.01);\r\n expect(url?.envelope?.spatialReference.wkid).to.be.equal(102100);\r\n expect(url?.envelope?.spatialReference.latestWkid).to.be.equal(3857);\r\n\r\n // Now turn ON 'supportsCoordinatesQuantization' to ON\r\n getLayerMetadataStub.restore();\r\n getLayerMetadataStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility: true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n supportsCoordinatesQuantization: true,\r\n };\r\n });\r\n\r\n const provider2 = new ArcGisFeatureProvider(settings);\r\n await provider2.initialize();\r\n url = provider2.constructFeatureUrl(0,0,0, \"PBF\");\r\n expect(url?.url).to.equals(`https://dummy.com/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D`);\r\n expect(url?.envelope?.xmin).to.be.closeTo(extent.xmin, 0.01);\r\n expect(url?.envelope?.ymin).to.be.closeTo(extent.ymin, 0.01);\r\n expect(url?.envelope?.xmax).to.be.closeTo(extent.xmax, 0.01);\r\n expect(url?.envelope?.ymax).to.be.closeTo(extent.ymax, 0.01);\r\n expect(url?.envelope?.spatialReference.wkid).to.be.equal(extent.spatialReference.wkid);\r\n expect(url?.envelope?.spatialReference.latestWkid).to.be.equal(extent.spatialReference.latestWkid);\r\n\r\n // Test passing an override geometry\r\n const overrideGeom: ArcGisGeometry = {\r\n type: \"esriGeometryEnvelope\",\r\n geom: {\r\n xmin: -50,\r\n ymin: -50,\r\n xmax: 50,\r\n ymax: 50,\r\n spatialReference: {\r\n wkid: 102100,\r\n latestWkid: 3857,\r\n },\r\n },\r\n };\r\n const provider3 = new ArcGisFeatureProvider(settings);\r\n await provider3.initialize();\r\n url = provider3.constructFeatureUrl(0,0,0, \"PBF\", overrideGeom);\r\n expect(url?.url).to.equals(`https://dummy.com/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-50%2C%22ymin%22%3A-50%2C%22xmax%22%3A50%2C%22ymax%22%3A50%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D`);\r\n expect(url?.envelope?.xmin).to.be.closeTo((overrideGeom.geom as ArcGisExtent).xmin, 0.01);\r\n expect(url?.envelope?.ymin).to.be.closeTo((overrideGeom.geom as ArcGisExtent).ymin, 0.01);\r\n expect(url?.envelope?.xmax).to.be.closeTo((overrideGeom.geom as ArcGisExtent).xmax, 0.01);\r\n expect(url?.envelope?.ymax).to.be.closeTo((overrideGeom.geom as ArcGisExtent).ymax, 0.01);\r\n expect(url?.envelope?.spatialReference.wkid).to.be.equal(overrideGeom.geom.spatialReference.wkid);\r\n expect(url?.envelope?.spatialReference.latestWkid).to.be.equal(overrideGeom.geom.spatialReference.latestWkid);\r\n\r\n // Now test with a different tolerance value\r\n url = provider3.constructFeatureUrl(0,0,0, \"PBF\", overrideGeom, undefined, 10);\r\n expect(url?.url).to.equals(`https://dummy.com/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-50%2C%22ymin%22%3A-50%2C%22xmax%22%3A50%2C%22ymax%22%3A50%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D&distance=782715.16953125`);\r\n expect(url?.envelope?.xmin).to.be.closeTo((overrideGeom.geom as ArcGisExtent).xmin, 0.01);\r\n expect(url?.envelope?.ymin).to.be.closeTo((overrideGeom.geom as ArcGisExtent).ymin, 0.01);\r\n expect(url?.envelope?.xmax).to.be.closeTo((overrideGeom.geom as ArcGisExtent).xmax, 0.01);\r\n expect(url?.envelope?.ymax).to.be.closeTo((overrideGeom.geom as ArcGisExtent).ymax, 0.01);\r\n expect(url?.envelope?.spatialReference.wkid).to.be.equal(overrideGeom.geom.spatialReference.wkid);\r\n expect(url?.envelope?.spatialReference.latestWkid).to.be.equal(overrideGeom.geom.spatialReference.latestWkid);\r\n\r\n });\r\n\r\n it(\"should log error when getFeatureInfo cannot be performed\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n minScale: 600000,\r\n maxScale: 5000,\r\n };\r\n });\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{currentVersion: 11, capabilities: \"Query\"}};\r\n });\r\n sandbox.stub(ArcGisFeatureProvider.prototype, \"constructFeatureUrl\").callsFake(function _(_row: number, _column: number, _zoomLevel: number, _format: ArcGisFeatureFormat, _geomOverride?: ArcGisGeometry, _outFields?: string, _tolerance?: number, _returnGeometry?: boolean) {\r\n return undefined;\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const featureInfos: MapLayerFeatureInfo[] = [];\r\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\r\n await provider.getFeatureInfo(featureInfos, new QuadId(0, 0, 0), Cartographic.fromDegrees({latitude: 46, longitude:-71}), (undefined as unknown) as ImageryMapTileTree);\r\n expect(featureInfos.length).to.equals(0);\r\n expect(logErrorSpy.called).to.be.true;\r\n\r\n });\r\n\r\n it(\"should process data in getFeatureInfo\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n supportsCoordinatesQuantization:true,\r\n minScale: 600000,\r\n maxScale: 5000,\r\n };\r\n });\r\n\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{currentVersion: 11, capabilities: \"Query\"}};\r\n });\r\n sandbox.stub((ArcGISImageryProvider.prototype as any), \"fetch\").callsFake(async function _(_url: unknown, _options?: unknown) {\r\n const test = {\r\n headers: { \"content-type\" : \"pbf\"},\r\n arrayBuffer: async () => {\r\n const byteArray = Base64EncodedString.toUint8Array(PhillyLandmarksDataset.phillyTransportationGetFeatureInfoQueryEncodedPbf);\r\n return Promise.resolve(byteArray ? ByteStream.fromUint8Array(byteArray).arrayBuffer : undefined);\r\n },\r\n status: 200,\r\n } as unknown; // By using unknown type, I can define parts of Response I really need\r\n return (test as Response );\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const featureInfos: MapLayerFeatureInfo[] = [];\r\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\r\n await provider.getFeatureInfo(featureInfos, new QuadId(0, 0, 0), Cartographic.fromDegrees({latitude: 46, longitude:-71}), (undefined as unknown) as ImageryMapTileTree);\r\n expect(featureInfos.length).to.equals(1);\r\n expect(logErrorSpy.calledOnce).to.be.false;\r\n\r\n });\r\n\r\n it(\"should log error when exceed transfert limit\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n minScale: 600000,\r\n maxScale: 5000,\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n\r\n sandbox.stub((ArcGisFeatureResponse.prototype as any), \"getResponseData\").callsFake(async function _() {\r\n return {exceedTransferLimit: true, data:undefined};\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const featureInfos: MapLayerFeatureInfo[] = [];\r\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\r\n await provider.getFeatureInfo(featureInfos, new QuadId(0, 0, 0), Cartographic.fromDegrees({latitude: 46, longitude:-71}), (undefined as unknown) as ImageryMapTileTree);\r\n expect(featureInfos.length).to.equals(0);\r\n expect(logErrorSpy.calledOnce).to.be.true;\r\n\r\n });\r\n\r\n it(\"should log error when exceed exception thrown limit\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n minScale: 600000,\r\n maxScale: 5000,\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n\r\n sandbox.stub((ArcGisFeatureResponse.prototype as any), \"getResponseData\").callsFake(async function _() {\r\n throw new Error();\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const featureInfos: MapLayerFeatureInfo[] = [];\r\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\r\n await provider.getFeatureInfo(featureInfos, new QuadId(0, 0, 0), Cartographic.fromDegrees({latitude: 46, longitude:-71}), (undefined as unknown) as ImageryMapTileTree);\r\n expect(featureInfos.length).to.equals(0);\r\n expect(logErrorSpy.calledOnce).to.be.true;\r\n\r\n });\r\n\r\n it(\"should debug Feature Geom\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF, JSON\",\r\n minScale: 600000,\r\n maxScale: 5000,\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n\r\n sandbox.stub((ArcGisFeatureResponse.prototype as any), \"getResponseData\").callsFake(async function _() {\r\n return {data: {\r\n toObject: () => undefined,\r\n }};\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n (provider as any)._debugFeatureGeom = true;\r\n const featureInfos: MapLayerFeatureInfo[] = [];\r\n const logInfoSpy = sandbox.spy(Logger, \"logInfo\");\r\n await provider.getFeatureInfo(featureInfos, new QuadId(0, 0, 0), Cartographic.fromDegrees({latitude: 46, longitude:-71}), (undefined as unknown) as ImageryMapTileTree);\r\n expect(featureInfos.length).to.equals(0);\r\n expect(logInfoSpy.callCount).to.equals(2);\r\n\r\n });\r\n\r\n it(\"should compute computeTileWorld2CanvasTransform\", async () => {\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n const worldSize = 100;\r\n const canvasSize = 10;\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n const getEPSG3857ExtentStub = sandbox.stub(ArcGisFeatureProvider.prototype, \"getEPSG3857Extent\").callsFake(function (_row: number, _column: number, _zoomLevel: number) {\r\n return { left:0, right:worldSize, bottom:0, top:worldSize };\r\n });\r\n\r\n sandbox.stub(provider, \"tileSize\").get(function () {\r\n return canvasSize; // return a size of 10 to simplicity\r\n });\r\n let transform = ((provider as any).computeTileWorld2CanvasTransform(0,0,0) as Transform | undefined);\r\n let worldPoint = Point3d.createFrom({x: worldSize*0.5, y:worldSize*0.5, z:0});\r\n let transformedPoint = transform?.multiplyPoint3d(worldPoint);\r\n\r\n // Make sure center point remains in the center\r\n expect(transformedPoint).to.not.undefined;\r\n expect(transformedPoint!.x).to.equals(canvasSize*0.5);\r\n expect(transformedPoint!.y).to.equals(canvasSize*0.5);\r\n expect(transformedPoint!.z).to.equals(0);\r\n\r\n // Check that y-axis get flipped\r\n worldPoint = Point3d.createFrom({x: 0, y:10, z:0});\r\n transformedPoint = transform?.multiplyPoint3d(worldPoint);\r\n expect(transformedPoint!.x).to.equals(0);\r\n expect(transformedPoint!.y).to.equals(9);\r\n expect(transformedPoint!.z).to.equals(0);\r\n\r\n // Now check translation has been applied (origin shift)\r\n getEPSG3857ExtentStub.restore();\r\n sandbox.stub(ArcGisFeatureProvider.prototype, \"getEPSG3857Extent\").callsFake(function (_row: number, _column: number, _zoomLevel: number) {\r\n return { left:worldSize, right:worldSize*2, bottom:worldSize, top:worldSize*2 };\r\n });\r\n worldPoint = Point3d.createFrom({x: worldSize, y:worldSize, z:0});\r\n transform = ((provider as any).computeTileWorld2CanvasTransform(0,0,0) as Transform | undefined);\r\n transformedPoint = transform?.multiplyPoint3d(worldPoint);\r\n expect(transformedPoint).to.not.undefined;\r\n expect(transformedPoint!.x).to.equals(0);\r\n expect(transformedPoint!.y).to.equals(10);\r\n expect(transformedPoint!.z).to.equals(0);\r\n\r\n });\r\n\r\n it(\"should loadTile from PBF request\", async () => {\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"PBF\",\r\n supportsCoordinatesQuantization:true,\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{currentVersion: 11, capabilities: \"Query\"}};\r\n });\r\n sandbox.stub(HTMLCanvasElement.prototype, \"getContext\").callsFake( function _(_contextId: any, _options?: any) {\r\n return {} as RenderingContext;\r\n });\r\n\r\n sandbox.stub(HTMLCanvasElement.prototype, \"toDataURL\").callsFake( function _(_type?: string, _quality?: any) {\r\n return `data:image/png;base64,${pngTransparent1x1}`;\r\n });\r\n\r\n const providerStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"fetchTile\").callsFake(async function _() {\r\n return new ArcGisFeatureResponse(\"PBF\", Promise.resolve({} as Response));\r\n });\r\n\r\n sandbox.stub((ArcGisFeatureResponse.prototype as any), \"getResponseData\").callsFake(async function _() {\r\n return {\r\n exceedTransferLimit: false,\r\n data: {toObject: () => undefined},\r\n };\r\n });\r\n\r\n // toDataURL string;\r\n const readAndRenderSpy = sandbox.spy(ArcGisFeaturePBF.prototype, \"readAndRender\");\r\n const computeTransfoSpy = sandbox.spy(ArcGisFeatureProvider.prototype as any, \"computeTileWorld2CanvasTransform\");\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const tileData = await provider.loadTile(0,0,0);\r\n expect (tileData).to.not.undefined;\r\n expect (tileData?.data instanceof Uint8Array).to.be.true;\r\n expect(tileData?.data).to.eqls(base64StringToUint8Array(pngTransparent1x1));\r\n expect(tileData?.format).to.equals(ImageSourceFormat.Png);\r\n expect (providerStub.calledOnce).to.be.true;\r\n expect (readAndRenderSpy.calledOnce).to.be.true;\r\n expect (computeTransfoSpy.calledOnce).to.be.false; // Should not be called since we have supportsCoordinatesQuantization in layer metadata\r\n\r\n });\r\n\r\n it(\"should loadTile from JSON request\", async () => {\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"JSON\",\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n sandbox.stub(HTMLCanvasElement.prototype, \"getContext\").callsFake( function _(_contextId: any, _options?: any) {\r\n return {} as RenderingContext;\r\n });\r\n\r\n sandbox.stub(HTMLCanvasElement.prototype, \"toDataURL\").callsFake( function _(_type?: string, _quality?: any) {\r\n return `data:image/png;base64,${pngTransparent1x1}`;\r\n });\r\n\r\n const providerStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"fetchTile\").callsFake(async function _() {\r\n return new ArcGisFeatureResponse(\"JSON\", Promise.resolve({} as Response));\r\n });\r\n\r\n sandbox.stub((ArcGisFeatureResponse.prototype as any), \"getResponseData\").callsFake(async function _() {\r\n return {\r\n exceedTransferLimit: false,\r\n data: {toObject: () => undefined},\r\n };\r\n });\r\n\r\n const readAndRenderSpy = sandbox.spy(ArcGisFeatureJSON.prototype, \"readAndRender\");\r\n const computeTransfoSpy = sandbox.spy(ArcGisFeatureProvider.prototype as any, \"computeTileWorld2CanvasTransform\");\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const tileData = await provider.loadTile(0,0,0);\r\n expect (tileData).to.not.undefined;\r\n expect (tileData?.data instanceof Uint8Array).to.be.true;\r\n expect(tileData?.data).to.eqls(base64StringToUint8Array(pngTransparent1x1));\r\n expect(tileData?.format).to.equals(ImageSourceFormat.Png);\r\n expect (providerStub.calledOnce).to.be.true;\r\n expect (readAndRenderSpy.calledOnce).to.be.true;\r\n expect (computeTransfoSpy.calledOnce).to.be.true; // Should be called since we dont have _supportsCoordinatesQuantization in layer metadata\r\n });\r\n\r\n it(\"should make sub request if loadtile request return 'exceedTransferLimit'\", async () => {\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"JSON\",\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n sandbox.stub(HTMLCanvasElement.prototype, \"getContext\").callsFake( function _(_contextId: any, _options?: any) {\r\n return {} as RenderingContext;\r\n });\r\n\r\n sandbox.stub(HTMLCanvasElement.prototype, \"toDataURL\").callsFake( function _(_type?: string, _quality?: any) {\r\n return `data:image/png;base64,${pngTransparent1x1}`;\r\n });\r\n\r\n const extentSize = 100;\r\n const fetchTileStub = sandbox.stub((ArcGisFeatureProvider.prototype as any), \"fetchTile\").callsFake(async function _() {\r\n const envelope: ArcGisExtent = {\r\n xmin : 0,\r\n ymin : 0,\r\n xmax : extentSize,\r\n ymax : extentSize,\r\n spatialReference : {\r\n wkid : 102100,\r\n latestWkid : 3857,\r\n }};\r\n return new ArcGisFeatureResponse(\"JSON\", Promise.resolve({} as Response), envelope);\r\n });\r\n\r\n let firstCall = true;\r\n sandbox.stub((ArcGisFeatureResponse.prototype as any), \"getResponseData\").callsFake(async function _() {\r\n\r\n const exceed = firstCall === true;\r\n firstCall = false;\r\n return {\r\n exceedTransferLimit: exceed,\r\n data: {toObject: () => undefined},\r\n };\r\n });\r\n\r\n const readAndRenderSpy = sandbox.spy(ArcGisFeatureJSON.prototype, \"readAndRender\");\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n await provider.loadTile(0,0,0);\r\n\r\n // We should have 5 calls:\r\n // Call #1 : initial call for 0,0,0 and it returns 'exceedTransferLimit'\r\n // Calls #2-5: Four calls which represent a call for each sub-envelope (initial extent divided by 4)\r\n expect (fetchTileStub.getCalls().length).to.equals(5);\r\n expect (fetchTileStub.getCalls()[1].args[3]).to.eqls( {\r\n xmin : 0, ymin : 0, xmax : extentSize*0.5, ymax : extentSize*0.5,\r\n spatialReference : { wkid : 102100, latestWkid : 3857,\r\n }});\r\n expect (fetchTileStub.getCalls()[2].args[3]).to.eqls( {\r\n xmin : 0, ymin : extentSize*0.5, xmax : extentSize*0.5, ymax : extentSize,\r\n spatialReference : { wkid : 102100, latestWkid : 3857,\r\n }});\r\n expect (fetchTileStub.getCalls()[3].args[3]).to.eqls( {\r\n xmin : extentSize*0.5, ymin : 0, xmax : extentSize, ymax : extentSize*0.5,\r\n spatialReference : { wkid : 102100, latestWkid : 3857,\r\n }});\r\n expect (fetchTileStub.getCalls()[4].args[3]).to.eqls( {\r\n xmin : extentSize*0.5, ymin : extentSize*0.5, xmax : extentSize, ymax : extentSize,\r\n spatialReference : { wkid : 102100, latestWkid : 3857,\r\n }});\r\n expect (readAndRenderSpy.getCalls().length).to.equals(4);\r\n });\r\n\r\n it(\"fetchTile should return undefined when to format defined\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n // make a first request with init, should return undefined because of missing format\r\n const tileData = await (provider as any).fetchTile(0,0,0);\r\n expect(tileData).to.be.undefined;\r\n });\r\n\r\n it(\"fetchTile should call fetch with the proper URL\", async () => {\r\n\r\n const settings = ImageMapLayerSettings.fromJSON({\r\n ...esriFeatureSampleSource,\r\n subLayers: [{id: 0, name: \"layer1\", visible:true}, {id:2, name: \"layer2\", visible:true}]}\r\n );\r\n\r\n sandbox.stub((ArcGisFeatureProvider.prototype as any), \"getLayerMetadata\").callsFake(async function (_id: unknown) {\r\n return {\r\n defaultVisibility:true,\r\n supportedQueryFormats:\"JSON\",\r\n };\r\n });\r\n sandbox.stub(ArcGisUtilities, \"getServiceJson\").callsFake(async function _(_url: string, _formatId: string, _userName?: string, _password?: string, _ignoreCache?: boolean, _requireToken?: boolean) {\r\n return {accessTokenRequired: false, content:{capabilities: \"Query\"}};\r\n });\r\n const fetchStub = sandbox.stub((ArcGISImageryProvider.prototype as any), \"fetch\");\r\n\r\n sandbox.stub(ArcGisFeatureProvider.prototype, \"constructFeatureUrl\").callsFake(function _(_row: number, _column: number, _zoomLevel: number, _format: ArcGisFeatureFormat, _geomOverride?: ArcGisGeometry, _outFields?: string, _tolerance?: number, _returnGeometry?: boolean) {\r\n return {url: settings.url};\r\n });\r\n\r\n const provider = new ArcGisFeatureProvider(settings);\r\n await provider.initialize();\r\n const response = await (provider as any).fetchTile(0,0,0);\r\n expect(response).to.not.undefined;\r\n expect(fetchStub.calledOnce).to.be.true;\r\n const test1 = fetchStub.getCall(0).firstArg;\r\n expect(test1.toString()).to.equals(new URL(settings.url).toString());\r\n\r\n });\r\n\r\n});\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureQuery.test.d.ts","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureQuery.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { expect } from "chai";
|
|
6
|
-
import * as sinon from "sinon";
|
|
7
|
-
import { ArcGisFeatureQuery } from "../../ArcGisFeature/ArcGisFeatureQuery";
|
|
8
|
-
describe("ArcGisFeatureQuery", () => {
|
|
9
|
-
const sandbox = sinon.createSandbox();
|
|
10
|
-
beforeEach(async () => {
|
|
11
|
-
});
|
|
12
|
-
afterEach(async () => {
|
|
13
|
-
sandbox.restore();
|
|
14
|
-
});
|
|
15
|
-
it("should not apply different switches if not needed", async () => {
|
|
16
|
-
const query = new ArcGisFeatureQuery("https://test.com/rest/", 0, "JSON", 3857);
|
|
17
|
-
const queryUrl = query.toString();
|
|
18
|
-
expect(queryUrl).to.not.contains("resultRecordCount");
|
|
19
|
-
expect(queryUrl).to.not.contains("resultOffset");
|
|
20
|
-
expect(queryUrl).to.not.contains("returnGeometry");
|
|
21
|
-
expect(queryUrl).to.not.contains("resultType");
|
|
22
|
-
expect(queryUrl).to.not.contains("maxRecordCountFactor");
|
|
23
|
-
expect(queryUrl).to.not.contains("returnExceededLimitFeatures");
|
|
24
|
-
expect(queryUrl).to.not.contains("geometryType");
|
|
25
|
-
expect(queryUrl).to.not.contains("geometry");
|
|
26
|
-
expect(queryUrl).to.not.contains("inSR");
|
|
27
|
-
expect(queryUrl).to.not.contains("inSR");
|
|
28
|
-
expect(queryUrl).to.contains("where=1%3D1");
|
|
29
|
-
});
|
|
30
|
-
it("should not apply different switches if not needed", async () => {
|
|
31
|
-
const extentSize = 100;
|
|
32
|
-
const fakeEnvelope = {
|
|
33
|
-
xmin: 0,
|
|
34
|
-
ymin: 0,
|
|
35
|
-
xmax: extentSize,
|
|
36
|
-
ymax: extentSize,
|
|
37
|
-
spatialReference: {
|
|
38
|
-
wkid: 102100,
|
|
39
|
-
latestWkid: 3857,
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
const query = new ArcGisFeatureQuery("https://test.com/rest/", 0, "JSON", 3857, {
|
|
43
|
-
resultRecordCount: 10,
|
|
44
|
-
resultOffset: 11,
|
|
45
|
-
returnGeometry: true,
|
|
46
|
-
geometry: { type: "esriGeometryEnvelope", geom: fakeEnvelope },
|
|
47
|
-
geometryType: "esriGeometryEnvelope",
|
|
48
|
-
spatialRel: "esriSpatialRelIntersects",
|
|
49
|
-
resultType: "tile",
|
|
50
|
-
maxRecordCountFactor: 1000,
|
|
51
|
-
returnExceededLimitFeatures: false,
|
|
52
|
-
quantizationParameters: {
|
|
53
|
-
mode: "view",
|
|
54
|
-
originPosition: "upperLeft",
|
|
55
|
-
tolerance: 10,
|
|
56
|
-
extent: fakeEnvelope,
|
|
57
|
-
},
|
|
58
|
-
outFields: "test",
|
|
59
|
-
distance: 100,
|
|
60
|
-
});
|
|
61
|
-
const queryUrl = query.toString();
|
|
62
|
-
expect(queryUrl).to.contains("resultRecordCount=10");
|
|
63
|
-
expect(queryUrl).to.contains("resultOffset=11");
|
|
64
|
-
expect(queryUrl).to.contains("returnGeometry=true");
|
|
65
|
-
expect(queryUrl).to.contains(`resultType=tile`);
|
|
66
|
-
expect(queryUrl).to.contains("maxRecordCountFactor=1000");
|
|
67
|
-
expect(queryUrl).to.contains("returnExceededLimitFeatures=false");
|
|
68
|
-
expect(queryUrl).to.contains("geometryType=esriGeometryEnvelope");
|
|
69
|
-
expect(queryUrl).to.contains(`geometry=%7B%22xmin%22%3A0%2C%22ymin%22%3A0%2C%22xmax%22%3A100%2C%22ymax%22%3A100%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D`);
|
|
70
|
-
expect(queryUrl).to.contains("inSR=102100");
|
|
71
|
-
expect(queryUrl).to.contains("outFields=test");
|
|
72
|
-
expect(queryUrl).to.contains("distance=100");
|
|
73
|
-
expect(queryUrl).to.contains("units=esriSRUnit_Meter");
|
|
74
|
-
});
|
|
75
|
-
it("should not include geometry only when applicable", async () => {
|
|
76
|
-
const extentSize = 100;
|
|
77
|
-
const fakeEnvelope = {
|
|
78
|
-
xmin: 0,
|
|
79
|
-
ymin: 0,
|
|
80
|
-
xmax: extentSize,
|
|
81
|
-
ymax: extentSize,
|
|
82
|
-
spatialReference: {
|
|
83
|
-
wkid: 102100,
|
|
84
|
-
latestWkid: 3857,
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const query = new ArcGisFeatureQuery("https://test.com/rest/", 0, "JSON", 3857, {
|
|
88
|
-
spatialRel: "esriSpatialRelIntersects",
|
|
89
|
-
});
|
|
90
|
-
let queryUrl = query.toString();
|
|
91
|
-
expect(queryUrl).to.not.contains("geometryType=");
|
|
92
|
-
expect(queryUrl).to.not.contains(`geometry=`);
|
|
93
|
-
expect(queryUrl).to.not.contains("inSR=");
|
|
94
|
-
query.spatialRel = undefined;
|
|
95
|
-
query.geometry = { type: "esriGeometryEnvelope", geom: fakeEnvelope };
|
|
96
|
-
queryUrl = query.toString();
|
|
97
|
-
expect(queryUrl).to.contains("geometryType=esriGeometryEnvelope");
|
|
98
|
-
expect(queryUrl).to.contains(`geometry=%7B%22xmin%22%3A0%2C%22ymin%22%3A0%2C%22xmax%22%3A100%2C%22ymax%22%3A100%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D`);
|
|
99
|
-
expect(queryUrl).to.contains("inSR=102100");
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
//# sourceMappingURL=ArcGisFeatureQuery.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureQuery.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureQuery.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\nimport { ArcGisExtent, ArcGisFeatureQuery } from \"../../ArcGisFeature/ArcGisFeatureQuery\";\r\n\r\ndescribe(\"ArcGisFeatureQuery\", () => {\r\n\r\n const sandbox = sinon.createSandbox();\r\n\r\n beforeEach(async () => {\r\n });\r\n\r\n afterEach(async () => {\r\n sandbox.restore();\r\n });\r\n\r\n it(\"should not apply different switches if not needed\", async () => {\r\n\r\n const query = new ArcGisFeatureQuery(\"https://test.com/rest/\",0, \"JSON\", 3857);\r\n const queryUrl = query.toString();\r\n expect(queryUrl).to.not.contains(\"resultRecordCount\");\r\n expect(queryUrl).to.not.contains(\"resultOffset\");\r\n expect(queryUrl).to.not.contains(\"returnGeometry\");\r\n expect(queryUrl).to.not.contains(\"resultType\");\r\n expect(queryUrl).to.not.contains(\"maxRecordCountFactor\");\r\n expect(queryUrl).to.not.contains(\"returnExceededLimitFeatures\");\r\n expect(queryUrl).to.not.contains(\"geometryType\");\r\n expect(queryUrl).to.not.contains(\"geometry\");\r\n expect(queryUrl).to.not.contains(\"inSR\");\r\n expect(queryUrl).to.not.contains(\"inSR\");\r\n expect(queryUrl).to.contains(\"where=1%3D1\");\r\n });\r\n\r\n it(\"should not apply different switches if not needed\", async () => {\r\n\r\n const extentSize = 100;\r\n const fakeEnvelope: ArcGisExtent = {\r\n xmin : 0,\r\n ymin : 0,\r\n xmax : extentSize,\r\n ymax : extentSize,\r\n spatialReference : {\r\n wkid : 102100,\r\n latestWkid : 3857,\r\n }};\r\n const query = new ArcGisFeatureQuery(\"https://test.com/rest/\",0, \"JSON\", 3857,\r\n {\r\n resultRecordCount: 10,\r\n resultOffset: 11,\r\n returnGeometry: true,\r\n geometry: {type:\"esriGeometryEnvelope\", geom:fakeEnvelope},\r\n geometryType: \"esriGeometryEnvelope\",\r\n spatialRel: \"esriSpatialRelIntersects\",\r\n resultType: \"tile\",\r\n maxRecordCountFactor: 1000,\r\n returnExceededLimitFeatures: false,\r\n quantizationParameters: {\r\n mode: \"view\",\r\n originPosition: \"upperLeft\",\r\n tolerance: 10,\r\n extent: fakeEnvelope,\r\n },\r\n outFields: \"test\",\r\n distance: 100,\r\n });\r\n const queryUrl = query.toString();\r\n expect(queryUrl).to.contains(\"resultRecordCount=10\");\r\n expect(queryUrl).to.contains(\"resultOffset=11\");\r\n expect(queryUrl).to.contains(\"returnGeometry=true\");\r\n expect(queryUrl).to.contains(`resultType=tile`);\r\n expect(queryUrl).to.contains(\"maxRecordCountFactor=1000\");\r\n expect(queryUrl).to.contains(\"returnExceededLimitFeatures=false\");\r\n expect(queryUrl).to.contains(\"geometryType=esriGeometryEnvelope\");\r\n expect(queryUrl).to.contains(`geometry=%7B%22xmin%22%3A0%2C%22ymin%22%3A0%2C%22xmax%22%3A100%2C%22ymax%22%3A100%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D`);\r\n expect(queryUrl).to.contains(\"inSR=102100\");\r\n expect(queryUrl).to.contains(\"outFields=test\");\r\n expect(queryUrl).to.contains(\"distance=100\");\r\n expect(queryUrl).to.contains(\"units=esriSRUnit_Meter\");\r\n\r\n });\r\n\r\n it(\"should not include geometry only when applicable\", async () => {\r\n\r\n const extentSize = 100;\r\n const fakeEnvelope: ArcGisExtent = {\r\n xmin : 0,\r\n ymin : 0,\r\n xmax : extentSize,\r\n ymax : extentSize,\r\n spatialReference : {\r\n wkid : 102100,\r\n latestWkid : 3857,\r\n }};\r\n const query = new ArcGisFeatureQuery(\"https://test.com/rest/\",0, \"JSON\", 3857,\r\n {\r\n spatialRel: \"esriSpatialRelIntersects\",\r\n });\r\n\r\n let queryUrl = query.toString();\r\n expect(queryUrl).to.not.contains(\"geometryType=\");\r\n expect(queryUrl).to.not.contains(`geometry=`);\r\n expect(queryUrl).to.not.contains(\"inSR=\");\r\n\r\n query.spatialRel = undefined;\r\n query.geometry = {type:\"esriGeometryEnvelope\", geom:fakeEnvelope};\r\n queryUrl = query.toString();\r\n expect(queryUrl).to.contains(\"geometryType=esriGeometryEnvelope\");\r\n expect(queryUrl).to.contains(`geometry=%7B%22xmin%22%3A0%2C%22ymin%22%3A0%2C%22xmax%22%3A100%2C%22ymax%22%3A100%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D`);\r\n expect(queryUrl).to.contains(\"inSR=102100\");\r\n\r\n });\r\n\r\n});\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureRenderer.test.d.ts","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureRenderer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { expect } from "chai";
|
|
6
|
-
import * as sinon from "sinon";
|
|
7
|
-
import { fakeContext } from "./Mocks";
|
|
8
|
-
import { ArcGisSymbologyRenderer } from "../../ArcGisFeature/ArcGisSymbologyRenderer";
|
|
9
|
-
import { PhillyLandmarksDataset } from "./PhillyLandmarksDataset";
|
|
10
|
-
import { ArcGisFeatureRenderer } from "../../ArcGisFeature/ArcGisFeatureRenderer";
|
|
11
|
-
import { Point3d, Transform } from "@itwin/core-geometry";
|
|
12
|
-
describe("ArcGisFeatureRenderer", () => {
|
|
13
|
-
const sandbox = sinon.createSandbox();
|
|
14
|
-
let beginPathSpy;
|
|
15
|
-
let moveToSpy;
|
|
16
|
-
let lineToSpy;
|
|
17
|
-
let strokeSpy;
|
|
18
|
-
let fillSpy;
|
|
19
|
-
let closePathSpy;
|
|
20
|
-
beforeEach(async () => {
|
|
21
|
-
beginPathSpy = sandbox.spy(fakeContext, "beginPath");
|
|
22
|
-
moveToSpy = sandbox.spy(fakeContext, "moveTo");
|
|
23
|
-
lineToSpy = sandbox.spy(fakeContext, "lineTo");
|
|
24
|
-
strokeSpy = sandbox.spy(fakeContext, "stroke");
|
|
25
|
-
fillSpy = sandbox.spy(fakeContext, "fill");
|
|
26
|
-
closePathSpy = sandbox.spy(fakeContext, "closePath");
|
|
27
|
-
});
|
|
28
|
-
afterEach(async () => {
|
|
29
|
-
sandbox.restore();
|
|
30
|
-
});
|
|
31
|
-
it("should render simple path, stride = 2", async () => {
|
|
32
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
33
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
34
|
-
const coords = [1, 2, 3, 4];
|
|
35
|
-
const applyFillStyleSpy = sandbox.spy(symbolRenderer, "applyFillStyle");
|
|
36
|
-
const applyStrokeStyleSpy = sandbox.spy(symbolRenderer, "applyStrokeStyle");
|
|
37
|
-
renderer.renderPath([2], coords, false, 2, true);
|
|
38
|
-
expect(beginPathSpy.calledOnce).to.be.true;
|
|
39
|
-
expect(moveToSpy.calledOnce).to.be.true;
|
|
40
|
-
expect(moveToSpy.getCalls()[0].args[0]).to.equals(coords[0]);
|
|
41
|
-
expect(moveToSpy.getCalls()[0].args[1]).to.equals(coords[1]);
|
|
42
|
-
expect(lineToSpy.calledOnce).to.be.true;
|
|
43
|
-
// IMPORTANT: Only first coord is absolute, following coords are expressed relative to previous coord.
|
|
44
|
-
expect(lineToSpy.getCalls()[0].args[0]).to.equals(coords[0] + coords[2]);
|
|
45
|
-
expect(lineToSpy.getCalls()[0].args[1]).to.equals(coords[1] + coords[3]);
|
|
46
|
-
expect(strokeSpy.calledOnce).to.be.true;
|
|
47
|
-
expect(fillSpy.called).to.be.false;
|
|
48
|
-
expect(closePathSpy.called).to.be.false;
|
|
49
|
-
expect(applyFillStyleSpy.calledOnce).to.be.false;
|
|
50
|
-
expect(applyStrokeStyleSpy.calledOnce).to.be.true;
|
|
51
|
-
});
|
|
52
|
-
it("should render simple filled path", async () => {
|
|
53
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
54
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
55
|
-
const coords = [1, 2, 3, 4];
|
|
56
|
-
const applyFillStyleSpy = sandbox.spy(symbolRenderer, "applyFillStyle");
|
|
57
|
-
const applyStrokeStyleSpy = sandbox.spy(symbolRenderer, "applyStrokeStyle");
|
|
58
|
-
renderer.renderPath([2], coords, true, 2, true);
|
|
59
|
-
expect(beginPathSpy.calledOnce).to.be.true;
|
|
60
|
-
expect(moveToSpy.calledOnce).to.be.true;
|
|
61
|
-
expect(moveToSpy.getCalls()[0].args[0]).to.equals(coords[0]);
|
|
62
|
-
expect(moveToSpy.getCalls()[0].args[1]).to.equals(coords[1]);
|
|
63
|
-
expect(lineToSpy.calledOnce).to.be.true;
|
|
64
|
-
// IMPORTANT: Only first coord is absolute, following coords are expressed relative to previous coord.
|
|
65
|
-
expect(lineToSpy.getCalls()[0].args[0]).to.equals(coords[0] + coords[2]);
|
|
66
|
-
expect(lineToSpy.getCalls()[0].args[1]).to.equals(coords[1] + coords[3]);
|
|
67
|
-
expect(strokeSpy.calledOnce).to.be.true;
|
|
68
|
-
expect(fillSpy.calledOnce).to.be.true;
|
|
69
|
-
expect(closePathSpy.calledOnce).to.be.true;
|
|
70
|
-
expect(applyFillStyleSpy.calledOnce).to.be.true;
|
|
71
|
-
expect(applyStrokeStyleSpy.calledOnce).to.be.true;
|
|
72
|
-
});
|
|
73
|
-
it("should render simple Path, stride = 3", async () => {
|
|
74
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
75
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
76
|
-
const coords = [1, 2, 3, 4, 5, 6];
|
|
77
|
-
renderer.renderPath([2], coords, false, 3, true);
|
|
78
|
-
expect(beginPathSpy.calledOnce).to.be.true;
|
|
79
|
-
expect(moveToSpy.calledOnce).to.be.true;
|
|
80
|
-
expect(moveToSpy.getCalls()[0].args[0]).to.equals(coords[0]);
|
|
81
|
-
expect(moveToSpy.getCalls()[0].args[1]).to.equals(coords[1]);
|
|
82
|
-
expect(lineToSpy.calledOnce).to.be.true;
|
|
83
|
-
expect(lineToSpy.getCalls()[0].args[0]).to.equals(coords[0] + coords[3]);
|
|
84
|
-
expect(lineToSpy.getCalls()[0].args[1]).to.equals(coords[1] + coords[4]);
|
|
85
|
-
expect(strokeSpy.calledOnce).to.be.true;
|
|
86
|
-
expect(fillSpy.called).to.be.false;
|
|
87
|
-
expect(closePathSpy.called).to.be.false;
|
|
88
|
-
});
|
|
89
|
-
it("should render multiple Paths, stride = 2", async () => {
|
|
90
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
91
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
92
|
-
const coords = [1, 2, 3, 4];
|
|
93
|
-
const applyFillStyleSpy = sandbox.spy(symbolRenderer, "applyFillStyle");
|
|
94
|
-
const applyStrokeStyleSpy = sandbox.spy(symbolRenderer, "applyStrokeStyle");
|
|
95
|
-
renderer.renderPath([2], coords, false, 2, true);
|
|
96
|
-
expect(beginPathSpy.calledOnce).to.be.true;
|
|
97
|
-
expect(moveToSpy.calledOnce).to.be.true;
|
|
98
|
-
expect(moveToSpy.getCalls()[0].args[0]).to.equals(coords[0]);
|
|
99
|
-
expect(moveToSpy.getCalls()[0].args[1]).to.equals(coords[1]);
|
|
100
|
-
expect(lineToSpy.calledOnce).to.be.true;
|
|
101
|
-
// IMPORTANT: Only first coord is absolute, following coords are expressed relative to previous coord.
|
|
102
|
-
expect(lineToSpy.getCalls()[0].args[0]).to.equals(coords[0] + coords[2]);
|
|
103
|
-
expect(lineToSpy.getCalls()[0].args[1]).to.equals(coords[1] + coords[3]);
|
|
104
|
-
expect(strokeSpy.calledOnce).to.be.true;
|
|
105
|
-
expect(fillSpy.called).to.be.false;
|
|
106
|
-
expect(closePathSpy.called).to.be.false;
|
|
107
|
-
expect(applyFillStyleSpy.calledOnce).to.be.false;
|
|
108
|
-
expect(applyStrokeStyleSpy.calledOnce).to.be.true;
|
|
109
|
-
});
|
|
110
|
-
it("should not render invalid with stride value", async () => {
|
|
111
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
112
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
113
|
-
const coords = [1, 2, 3, 4];
|
|
114
|
-
renderer.renderPath([2], coords, false, 1, true);
|
|
115
|
-
renderer.renderPath([2], coords, false, 4, true);
|
|
116
|
-
renderer.renderPoint([2], coords, 1, true);
|
|
117
|
-
renderer.renderPoint([2], coords, 4, true);
|
|
118
|
-
expect(lineToSpy.calledOnce).to.be.false;
|
|
119
|
-
expect(strokeSpy.calledOnce).to.be.false;
|
|
120
|
-
expect(fillSpy.called).to.be.false;
|
|
121
|
-
expect(closePathSpy.called).to.be.false;
|
|
122
|
-
});
|
|
123
|
-
it("should render Path and apply transform, relativeCoords OFF", async () => {
|
|
124
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
125
|
-
const fakeOffset = 10;
|
|
126
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer, Transform.createTranslation(Point3d.create(fakeOffset, fakeOffset)));
|
|
127
|
-
const coords = [1, 2, 3, 4];
|
|
128
|
-
renderer.renderPath([2], coords, false, 2, false);
|
|
129
|
-
expect(beginPathSpy.calledOnce).to.be.true;
|
|
130
|
-
expect(moveToSpy.calledOnce).to.be.true;
|
|
131
|
-
expect(moveToSpy.getCalls()[0].args[0]).to.equals(coords[0] + fakeOffset);
|
|
132
|
-
expect(moveToSpy.getCalls()[0].args[1]).to.equals(coords[1] + fakeOffset);
|
|
133
|
-
expect(lineToSpy.calledOnce).to.be.true;
|
|
134
|
-
// IMPORTANT: Only first coord is absolute, following coords are expressed relative to previous coord.
|
|
135
|
-
expect(lineToSpy.getCalls()[0].args[0]).to.equals(coords[2] + fakeOffset);
|
|
136
|
-
expect(lineToSpy.getCalls()[0].args[1]).to.equals(coords[3] + fakeOffset);
|
|
137
|
-
});
|
|
138
|
-
it("should render single Point, no transform, relativeCoords OFF", async () => {
|
|
139
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryPoint", PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);
|
|
140
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
141
|
-
const drawPointStub = sandbox.stub(ArcGisSymbologyRenderer.prototype, "drawPoint");
|
|
142
|
-
const coords = [1, 2];
|
|
143
|
-
renderer.renderPoint([], coords, 2, false);
|
|
144
|
-
expect(drawPointStub.calledOnce).to.be.true;
|
|
145
|
-
expect(drawPointStub.getCalls()[0].args[1]).to.equals(coords[0]);
|
|
146
|
-
expect(drawPointStub.getCalls()[0].args[2]).to.equals(coords[1]);
|
|
147
|
-
});
|
|
148
|
-
it("should render single Point and apply transform, relativeCoords OFF", async () => {
|
|
149
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryPoint", PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);
|
|
150
|
-
const fakeOffset = 10;
|
|
151
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer, Transform.createTranslation(Point3d.create(fakeOffset, fakeOffset)));
|
|
152
|
-
const drawPointStub = sandbox.stub(ArcGisSymbologyRenderer.prototype, "drawPoint");
|
|
153
|
-
const coords = [1, 2];
|
|
154
|
-
renderer.renderPoint([], coords, 2, false);
|
|
155
|
-
expect(drawPointStub.calledOnce).to.be.true;
|
|
156
|
-
expect(drawPointStub.getCalls()[0].args[1]).to.equals(coords[0] + fakeOffset);
|
|
157
|
-
expect(drawPointStub.getCalls()[0].args[2]).to.equals(coords[1] + fakeOffset);
|
|
158
|
-
});
|
|
159
|
-
it("should render multi Point, transform, relativeCoords OFF", async () => {
|
|
160
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryPoint", PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);
|
|
161
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);
|
|
162
|
-
const drawPointStub = sandbox.stub(ArcGisSymbologyRenderer.prototype, "drawPoint");
|
|
163
|
-
const coords = [1, 2, 3, 4];
|
|
164
|
-
renderer.renderPoint([2], coords, 2, false);
|
|
165
|
-
expect(drawPointStub.getCalls().length).to.equals(2);
|
|
166
|
-
expect(drawPointStub.getCalls()[0].args[1]).to.equals(coords[0]);
|
|
167
|
-
expect(drawPointStub.getCalls()[0].args[2]).to.equals(coords[1]);
|
|
168
|
-
expect(drawPointStub.getCalls()[1].args[1]).to.equals(coords[2]);
|
|
169
|
-
expect(drawPointStub.getCalls()[1].args[2]).to.equals(coords[3]);
|
|
170
|
-
});
|
|
171
|
-
it("should render multi Point and apply transform, relativeCoords OFF", async () => {
|
|
172
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryPoint", PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);
|
|
173
|
-
const fakeOffset = 10;
|
|
174
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer, Transform.createTranslation(Point3d.create(fakeOffset, fakeOffset)));
|
|
175
|
-
const drawPointStub = sandbox.stub(ArcGisSymbologyRenderer.prototype, "drawPoint");
|
|
176
|
-
const coords = [1, 2, 3, 4];
|
|
177
|
-
renderer.renderPoint([2], coords, 2, false);
|
|
178
|
-
expect(drawPointStub.getCalls().length).to.equals(2);
|
|
179
|
-
expect(drawPointStub.getCalls()[0].args[1]).to.equals(coords[0] + fakeOffset);
|
|
180
|
-
expect(drawPointStub.getCalls()[0].args[2]).to.equals(coords[1] + fakeOffset);
|
|
181
|
-
expect(drawPointStub.getCalls()[1].args[1]).to.equals(coords[2] + fakeOffset);
|
|
182
|
-
expect(drawPointStub.getCalls()[1].args[2]).to.equals(coords[3] + fakeOffset);
|
|
183
|
-
});
|
|
184
|
-
it("should render multi Point and apply transform, relativeCoords ON", async () => {
|
|
185
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryPoint", PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);
|
|
186
|
-
const fakeOffset = 10;
|
|
187
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer, Transform.createTranslation(Point3d.create(fakeOffset, fakeOffset)));
|
|
188
|
-
const drawPointStub = sandbox.stub(ArcGisSymbologyRenderer.prototype, "drawPoint");
|
|
189
|
-
const coords = [1, 2, 3, 4];
|
|
190
|
-
renderer.renderPoint([2], coords, 2, true);
|
|
191
|
-
expect(drawPointStub.getCalls().length).to.equals(2);
|
|
192
|
-
expect(drawPointStub.getCalls()[0].args[1]).to.equals(coords[0] + fakeOffset);
|
|
193
|
-
expect(drawPointStub.getCalls()[0].args[2]).to.equals(coords[1] + fakeOffset);
|
|
194
|
-
expect(drawPointStub.getCalls()[1].args[1]).to.equals(coords[0] + coords[2] + fakeOffset);
|
|
195
|
-
expect(drawPointStub.getCalls()[1].args[2]).to.equals(coords[1] + coords[3] + fakeOffset);
|
|
196
|
-
});
|
|
197
|
-
it("should render and apply transform, relativeCoords ON", async () => {
|
|
198
|
-
const symbolRenderer = new ArcGisSymbologyRenderer("esriGeometryLine", PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);
|
|
199
|
-
const fakeOffset = 10;
|
|
200
|
-
const renderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer, Transform.createTranslation(Point3d.create(fakeOffset, fakeOffset)));
|
|
201
|
-
const coords = [1, 2, 3, 4];
|
|
202
|
-
renderer.renderPath([2], coords, false, 2, true);
|
|
203
|
-
expect(beginPathSpy.calledOnce).to.be.true;
|
|
204
|
-
expect(moveToSpy.calledOnce).to.be.true;
|
|
205
|
-
expect(moveToSpy.getCalls()[0].args[0]).to.equals(coords[0] + fakeOffset);
|
|
206
|
-
expect(moveToSpy.getCalls()[0].args[1]).to.equals(coords[1] + fakeOffset);
|
|
207
|
-
expect(lineToSpy.calledOnce).to.be.true;
|
|
208
|
-
// IMPORTANT: Only first coord is absolute, following coords are expressed relative to previous coord.
|
|
209
|
-
expect(lineToSpy.getCalls()[0].args[0]).to.equals(coords[0] + coords[2] + fakeOffset);
|
|
210
|
-
expect(lineToSpy.getCalls()[0].args[1]).to.equals(coords[1] + coords[3] + fakeOffset);
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
//# sourceMappingURL=ArcGisFeatureRenderer.test.js.map
|