@itwin/map-layers-formats 4.1.0-dev.8 → 4.1.0-dev.80
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/ArcGisFeatureResponse.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/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- 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/ArcGisFeatureResponse.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/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- 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/43b4d4c9-a360-43df-88fe-ecfb97b8832b.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/5c53bf83-e91a-4706-bc7c-fa9b79502114.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/43b4d4c9-a360-43df-88fe-ecfb97b8832b.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/5c53bf83-e91a-4706-bc7c-fa9b79502114.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
|
@@ -4,147 +4,87 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
7
|
+
exports.ArcGisUniqueValueSymbologyRenderer = exports.ArcGisSimpleSymbologyRenderer = exports.ArcGisSymbologyRenderer = void 0;
|
|
8
8
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
9
|
-
const core_common_1 = require("@itwin/core-common");
|
|
10
|
-
// Convert a channel array [r, g, b, a] to ColorDef
|
|
11
|
-
function colorFromArray(channels) {
|
|
12
|
-
if (channels && channels.length === 4) {
|
|
13
|
-
// Alpha channel is reversed, 255 = opaque
|
|
14
|
-
return core_common_1.ColorDef.from(channels[0], channels[1], channels[2], 255 - channels[3]);
|
|
15
|
-
}
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
const loggerCategory = "MapLayersFormats.ArcGISFeature";
|
|
19
9
|
/** @internal */
|
|
20
|
-
|
|
21
|
-
get color() { return colorFromArray(this.props.color); }
|
|
22
|
-
get type() { return this.props.type; }
|
|
23
|
-
get width() { return this.props.width; }
|
|
24
|
-
get style() { return this.props.style; }
|
|
25
|
-
constructor(json) {
|
|
26
|
-
this.props = json;
|
|
27
|
-
}
|
|
28
|
-
static fromJSON(json) {
|
|
29
|
-
return new EsriSLS(json);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.EsriSLS = EsriSLS;
|
|
33
|
-
/** @internal */
|
|
34
|
-
class EsriPMS {
|
|
35
|
-
get type() { return this.props.type; }
|
|
36
|
-
get url() { return this.props.url; }
|
|
37
|
-
get imageData() { return this.props.imageData; }
|
|
38
|
-
get imageUrl() { return `data:${this.contentType};base64,${this.imageData}`; }
|
|
39
|
-
get image() { return this._image; }
|
|
40
|
-
get contentType() { return this.props.contentType; }
|
|
41
|
-
get width() { return this.props.width; }
|
|
42
|
-
get height() { return this.props.height; }
|
|
43
|
-
get xoffset() { return this.props.xoffset; }
|
|
44
|
-
get yoffset() { return this.props.yoffset; }
|
|
45
|
-
get angle() { return this.props.angle; }
|
|
46
|
-
constructor(json) {
|
|
47
|
-
this.props = json;
|
|
48
|
-
this._image = new Image();
|
|
49
|
-
this._image.src = this.imageUrl;
|
|
50
|
-
}
|
|
51
|
-
static fromJSON(json) {
|
|
52
|
-
return new EsriPMS(json);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.EsriPMS = EsriPMS;
|
|
10
|
+
const loggerCategory = "MapLayersFormats.ArcGISFeature";
|
|
56
11
|
/** @internal */
|
|
57
|
-
class
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this._outline = EsriSLS.fromJSON(json.outline);
|
|
66
|
-
}
|
|
67
|
-
static fromJSON(json) {
|
|
68
|
-
return new EsriSFS(json);
|
|
12
|
+
class ArcGisSymbologyRenderer {
|
|
13
|
+
static create(renderer, defaultSymbol) {
|
|
14
|
+
if (renderer?.type === "uniqueValue") {
|
|
15
|
+
return new ArcGisUniqueValueSymbologyRenderer(renderer, defaultSymbol);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return new ArcGisSimpleSymbologyRenderer(renderer, defaultSymbol);
|
|
19
|
+
}
|
|
69
20
|
}
|
|
70
21
|
}
|
|
71
|
-
exports.
|
|
22
|
+
exports.ArcGisSymbologyRenderer = ArcGisSymbologyRenderer;
|
|
72
23
|
/** @internal */
|
|
73
|
-
class ArcGisSymbologyRenderer {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
24
|
+
class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyRenderer {
|
|
25
|
+
isAttributeDriven() { return false; }
|
|
26
|
+
get symbol() { return this._symbol; }
|
|
27
|
+
get defaultSymbol() { return this._defaultSymbol; }
|
|
28
|
+
constructor(renderer, defaultSymbol) {
|
|
29
|
+
super();
|
|
30
|
+
this.lineWidthScaleFactor = 2; // This is value is empirical, this might need to be adjusted
|
|
31
|
+
this._defaultSymbol = defaultSymbol;
|
|
32
|
+
this.renderer = renderer;
|
|
33
|
+
if (this.renderer?.type === "simple") {
|
|
34
|
+
this._symbol = this.renderer.symbol;
|
|
78
35
|
}
|
|
79
|
-
else
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
if (symbol !== undefined) {
|
|
83
|
-
if (symbol.type === "esriSFS") {
|
|
84
|
-
this._symbol = EsriSFS.fromJSON(symbol);
|
|
85
|
-
}
|
|
86
|
-
else if (symbol.type === "esriSLS") {
|
|
87
|
-
this._symbol = EsriSLS.fromJSON(symbol);
|
|
88
|
-
}
|
|
89
|
-
else if (symbol.type === "esriPMS") {
|
|
90
|
-
this._symbol = EsriPMS.fromJSON(symbol);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// If '_symbol' is still undefined at this point, that means we could not find
|
|
94
|
-
// any symbology definition from the metadata, let's use some default symbology
|
|
95
|
-
// so that we display at least something.
|
|
96
|
-
if (this._symbol === undefined) {
|
|
97
|
-
core_bentley_1.Logger.logWarning(loggerCategory, "Symbology definition not supported, using default symbology");
|
|
98
|
-
if (geometryType === "esriGeometryPoint" || geometryType === "esriGeometryMultipoint") {
|
|
99
|
-
this._symbol = EsriPMS.fromJSON(ArcGisSymbologyRenderer.defaultPMS);
|
|
100
|
-
}
|
|
101
|
-
else if (geometryType === "esriGeometryLine" || geometryType === "esriGeometryPolyline") {
|
|
102
|
-
this._symbol = EsriSLS.fromJSON(ArcGisSymbologyRenderer.defaultSLS);
|
|
103
|
-
}
|
|
104
|
-
else if (geometryType === "esriGeometryPolygon") {
|
|
105
|
-
this._symbol = EsriSFS.fromJSON(ArcGisSymbologyRenderer.defaultSFS);
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
core_bentley_1.Logger.logError(loggerCategory, "Could not determine default symbology: geometry type not supported");
|
|
109
|
-
}
|
|
36
|
+
else {
|
|
37
|
+
this._symbol = defaultSymbol;
|
|
110
38
|
}
|
|
111
39
|
}
|
|
112
40
|
applyFillStyle(context) {
|
|
113
41
|
if (!context)
|
|
114
42
|
return;
|
|
115
|
-
|
|
43
|
+
const fillColor = this.getFillColor();
|
|
44
|
+
if (fillColor) {
|
|
45
|
+
context.fillStyle = fillColor.toRgbaString();
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
core_bentley_1.Logger.logTrace(loggerCategory, `Could not apply fill style`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
getFillColor() {
|
|
52
|
+
let fillColor;
|
|
53
|
+
if (this._symbol.type === "esriSFS") {
|
|
116
54
|
const sfs = this._symbol;
|
|
117
|
-
if (sfs.
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
context.fillStyle = core_common_1.ColorDef.from(200, 0, 0, 100).toRgbaString(); // default color is red?
|
|
55
|
+
if (sfs.color) {
|
|
56
|
+
fillColor = sfs.color;
|
|
122
57
|
}
|
|
123
58
|
}
|
|
59
|
+
return fillColor;
|
|
124
60
|
}
|
|
125
61
|
applyStrokeStyle(context) {
|
|
126
62
|
if (!context)
|
|
127
63
|
return;
|
|
64
|
+
// Stroke style can be from SFS's outline style or a SLS's color
|
|
128
65
|
let sls;
|
|
129
|
-
if (this._symbol
|
|
66
|
+
if (this._symbol.type === "esriSFS") {
|
|
130
67
|
const sfs = this._symbol;
|
|
131
68
|
if (sfs.outline && sfs.outline.style === "esriSLSSolid") {
|
|
132
69
|
sls = sfs.outline;
|
|
133
70
|
}
|
|
134
71
|
}
|
|
135
|
-
else if (this._symbol
|
|
72
|
+
else if (this._symbol.type === "esriSLS") {
|
|
136
73
|
sls = this._symbol;
|
|
137
74
|
}
|
|
138
75
|
if (sls) {
|
|
139
76
|
if (sls.color)
|
|
140
77
|
context.strokeStyle = sls.color.toRgbaString();
|
|
141
|
-
context.lineWidth = sls.width
|
|
78
|
+
context.lineWidth = sls.width * this.lineWidthScaleFactor;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
core_bentley_1.Logger.logTrace(loggerCategory, `Could not apply stroke style`);
|
|
142
82
|
}
|
|
143
83
|
}
|
|
144
84
|
drawPoint(context, ptX, ptY) {
|
|
145
85
|
if (!context)
|
|
146
86
|
return;
|
|
147
|
-
if (this._symbol
|
|
87
|
+
if (this._symbol.type === "esriPMS") {
|
|
148
88
|
const pms = this._symbol;
|
|
149
89
|
let xOffset = 0, yOffset = 0;
|
|
150
90
|
if (pms.xoffset)
|
|
@@ -165,26 +105,46 @@ class ArcGisSymbologyRenderer {
|
|
|
165
105
|
}
|
|
166
106
|
}
|
|
167
107
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
108
|
+
exports.ArcGisSimpleSymbologyRenderer = ArcGisSimpleSymbologyRenderer;
|
|
109
|
+
/** @internal */
|
|
110
|
+
class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer {
|
|
111
|
+
isAttributeDriven() { return true; }
|
|
112
|
+
get rendererFields() {
|
|
113
|
+
if (this.uvRenderer.field1)
|
|
114
|
+
return [this.uvRenderer.field1];
|
|
115
|
+
else
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
constructor(renderer, defaultSymbol) {
|
|
119
|
+
super(renderer, defaultSymbol);
|
|
120
|
+
this.uvRenderer = this.renderer;
|
|
121
|
+
if (this.uvRenderer.defaultSymbol) {
|
|
122
|
+
this._defaultSymbol = this.uvRenderer.defaultSymbol;
|
|
123
|
+
this._symbol = this.defaultSymbol;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
setActiveFeatureAttributes(attributes) {
|
|
127
|
+
this._activeFeatureAttributes = attributes;
|
|
128
|
+
let newSymbolApplied = false;
|
|
129
|
+
if (this._activeFeatureAttributes) {
|
|
130
|
+
if (this.uvRenderer.field1 && Object.keys(this._activeFeatureAttributes).includes(this.uvRenderer.field1)) {
|
|
131
|
+
const queryValue = this._activeFeatureAttributes[this.uvRenderer.field1];
|
|
132
|
+
for (const uvi of this.uvRenderer.uniqueValueInfos) {
|
|
133
|
+
// Strangely, ArcGIS documentation says 'value' is a string,
|
|
134
|
+
// not too sure if a comparison on other types is possible, or its always forced to string properties?
|
|
135
|
+
if (uvi.value === queryValue.toString()) {
|
|
136
|
+
this._symbol = uvi.symbol;
|
|
137
|
+
newSymbolApplied = true;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Fallback to default symbology to make sure we render something
|
|
144
|
+
if (!newSymbolApplied) {
|
|
145
|
+
this._symbol = this.defaultSymbol;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.ArcGisUniqueValueSymbologyRenderer = ArcGisUniqueValueSymbologyRenderer;
|
|
190
150
|
//# sourceMappingURL=ArcGisSymbologyRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisSymbologyRenderer.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,sDAA6C;AAC7C,oDAA8C;AAG9C,mDAAmD;AACnD,SAAS,cAAc,CAAC,QAAmB;IACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,0CAA0C;QAC1C,OAAO,sBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAChF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,cAAc,GAAI,gCAAgC,CAAC;AAmBzD,gBAAgB;AAChB,MAAa,OAAO;IAGlB,IAAW,KAAK,KAAK,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAW,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,YAAY,IAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAkB;QACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAfD,0BAeC;AAcD,gBAAgB;AAChB,MAAa,OAAO;IAIlB,IAAW,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAW,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,IAAW,QAAQ,KAAK,OAAO,QAAQ,IAAI,CAAC,WAAW,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACrF,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,YAAY,IAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAkB;QACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAzBD,0BAyBC;AAWD,gBAAgB;AAChB,MAAa,OAAO;IAIlB,IAAW,KAAK,KAAK,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAW,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAW,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,YAAY,IAAkB;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO;YACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAkB;QACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAjBD,0BAiBC;AAED,gBAAgB;AAChB,MAAa,uBAAuB;IA2BlC,YAAY,YAAuC,EAAE,kBAAuB;QAC1E,IAAI,MAAM,CAAC;QACX,IAAI,kBAAkB,EAAE,MAAM,KAAK,SAAS,EAAE;YAC5C,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;SACpC;aAAM,IAAI,kBAAkB,EAAE,aAAa,KAAK,SAAS,EAAE;YAC1D,MAAM,GAAG,kBAAkB,EAAE,aAAa,CAAC;SAC5C;QAED,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACzC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;gBACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACzC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;gBACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACzC;SACF;QAED,8EAA8E;QAC9E,+EAA+E;QAC/E,yCAAyC;QACzC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC9B,qBAAM,CAAC,UAAU,CAAC,cAAc,EAAE,6DAA6D,CAAC,CAAC;YACjG,IAAI,YAAY,KAAK,mBAAmB,IAAI,YAAY,KAAK,wBAAwB,EAAE;gBACrF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;aACrE;iBAAM,IAAI,YAAY,KAAK,kBAAkB,IAAI,YAAY,KAAK,sBAAsB,EAAE;gBACzF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;aACrE;iBAAM,IAAI,YAAY,KAAK,qBAAqB,EAAE;gBACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;aACrE;iBAAM;gBACL,qBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,oEAAoE,CAAC,CAAC;aACvG;SACF;IACH,CAAC;IAEM,cAAc,CAAC,OAAiC;QACrD,IAAI,CAAC,OAAO;YACV,OAAO;QAET,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;YACpC,IAAI,GAAG,CAAC,KAAK,KAAK,cAAc,IAAI,GAAG,CAAC,KAAK,EAAE;gBAC7C,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;aAC9C;iBAAM;gBACL,OAAO,CAAC,SAAS,GAAG,sBAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAE,wBAAwB;aAC5F;SACF;IACH,CAAC;IAEM,gBAAgB,CAAC,OAAiC;QACvD,IAAI,CAAC,OAAO;YACV,OAAO;QAET,IAAI,GAAwB,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;YACpC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,cAAc,EAAE;gBACvD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;aACnB;SACF;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE;YAC3C,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;SAC/B;QAED,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,CAAC,KAAK;gBACX,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACjD,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAK,yCAAyC;SAC7E;IACH,CAAC;IAEM,SAAS,CAAC,OAAiC,EAAE,GAAW,EAAE,GAAW;QAC1E,IAAI,CAAC,OAAO;YACV,OAAO;QAET,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;YACpC,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,OAAO;gBACb,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;iBACnB,IAAI,GAAG,CAAC,KAAK;gBAChB,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAE,oCAAoC;YAEnE,IAAI,GAAG,CAAC,OAAO;gBACb,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;iBACnB,IAAI,GAAG,CAAC,MAAM;gBACjB,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,oCAAoC;YAEnE,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;gBAC3B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;aACnF;iBAAM;gBACL,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;aAC5D;YAED,8BAA8B;SAC/B;IACH,CAAC;;AAvHuB,kCAAU,GAAiB;IACjD,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,EAAE;IACP,WAAW,EAAE,WAAW;IACxB,SAAS,EAAE,04BAA04B;IACr5B,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,CAAC,EAAE;CACb,CAAC;AAEsB,kCAAU,GAAiB;IACjD,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACrB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,cAAc;CACtB,CAAC;AAEsB,kCAAU,GAAiB;IACjD,IAAI,EAAE,SAAS;IACf,KAAK,EAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,cAAc;CACtB,CAAC;AAzBS,0DAAuB","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 { Logger } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { ArcGisFeatureGeometryType } from \"./ArcGisFeatureQuery\";\r\n\r\n// Convert a channel array [r, g, b, a] to ColorDef\r\nfunction colorFromArray(channels?: number[]) {\r\n if (channels && channels.length === 4) {\r\n // Alpha channel is reversed, 255 = opaque\r\n return ColorDef.from(channels[0], channels[1], channels[2], 255 - channels[3]);\r\n }\r\n return undefined;\r\n}\r\n\r\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\r\n\r\n/** @internal */\r\nexport type EsriSymbolType = \"esriSFS\" | \"esriPMS\" | \"esriSLS\" | \"esriSMS\" | \"esriTS\" | \"CIMSymbolReference\";\r\ninterface EsriSymbol {\r\n type: EsriSymbolType;\r\n}\r\n\r\n/** @internal */\r\nexport type EsriSLSStyle = \"esriSLSDash\" | \"esriSLSDashDot\" | \"esriSLSDashDotDot\" | \"esriSLSDot\" | \"esriSLSLongDash\" | \"esriSLSLongDashDot\" |\r\n\"esriSLSNull\" | \"esriSLSShortDash\" | \"esriSLSShortDashDot\" | \"esriSLSShortDashDotDot\" | \"esriSLSShortDot\" | \"esriSLSSolid\";\r\n\r\ninterface EsriSLSProps {\r\n color: number[];\r\n type: EsriSymbolType;\r\n width: number;\r\n style: EsriSLSStyle;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriSLS implements EsriSymbol {\r\n public readonly props: EsriSLSProps;\r\n\r\n public get color() { return colorFromArray(this.props.color); }\r\n public get type() { return this.props.type; }\r\n public get width() { return this.props.width; }\r\n public get style() { return this.props.style; }\r\n\r\n constructor(json: EsriSLSProps) {\r\n this.props = json;\r\n }\r\n\r\n public static fromJSON(json: EsriSLSProps) {\r\n return new EsriSLS(json);\r\n }\r\n}\r\n\r\ninterface EsriPMSProps {\r\n type: EsriSymbolType;\r\n url: string;\r\n imageData: string;\r\n contentType: string;\r\n width?: number;\r\n height?: number;\r\n xoffset?: number;\r\n yoffset?: number;\r\n angle?: number;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriPMS implements EsriSymbol {\r\n public readonly props: EsriPMSProps;\r\n private _image: HTMLImageElement;\r\n\r\n public get type() { return this.props.type; }\r\n public get url() { return this.props.url; }\r\n public get imageData() { return this.props.imageData; }\r\n public get imageUrl() { return `data:${this.contentType};base64,${this.imageData}`; }\r\n public get image() { return this._image; }\r\n public get contentType() { return this.props.contentType; }\r\n public get width() { return this.props.width; }\r\n public get height() { return this.props.height; }\r\n public get xoffset() { return this.props.xoffset; }\r\n public get yoffset() { return this.props.yoffset; }\r\n public get angle() { return this.props.angle; }\r\n\r\n constructor(json: EsriPMSProps) {\r\n this.props = json;\r\n this._image = new Image();\r\n this._image.src = this.imageUrl;\r\n }\r\n\r\n public static fromJSON(json: EsriPMSProps) {\r\n return new EsriPMS(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type EsriSFSStyleProps = \"esriSFSBackwardDiagonal\" | \"esriSFSCross\" | \"esriSFSDiagonalCross\" | \"esriSFSForwardDiagonal\" | \"esriSFSHorizontal\" | \"esriSFSNull\" | \"esriSFSSolid\" | \"esriSFSVertical\";\r\ninterface EsriSFSProps {\r\n color?: number[];\r\n type: EsriSymbolType;\r\n style: EsriSFSStyleProps;\r\n outline?: EsriSLSProps;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriSFS implements EsriSymbol {\r\n public readonly props: EsriSFSProps;\r\n private _outline: EsriSLS | undefined;\r\n\r\n public get color() { return colorFromArray(this.props.color); }\r\n public get type() { return this.props.type; }\r\n public get style() { return this.props.style; }\r\n public get outline() { return this._outline; }\r\n constructor(json: EsriSFSProps) {\r\n this.props = json;\r\n if (json.outline)\r\n this._outline = EsriSLS.fromJSON(json.outline);\r\n }\r\n\r\n public static fromJSON(json: EsriSFSProps): EsriSFS {\r\n return new EsriSFS(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisSymbologyRenderer {\r\n private _symbol: EsriSymbol | undefined;\r\n\r\n private static readonly defaultPMS: EsriPMSProps = {\r\n type: \"esriPMS\",\r\n url: \"\",\r\n contentType: \"image/png\",\r\n imageData: \"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAmBJREFUOE+Nk01IVFEUx//n3jfvOZOaJkMtiiJ7o9RG3LgoqKhFSFJBTS1ahFBBi0ijfJXCIyQr+hBbSIsoW7iQoKKFCw2CkAI3tZAgy8Ei+xhoTCbnje/NPfHGnA816KzuPR+/c8/HJRQJE7o+VUhym0DcCOYGgBQEXjOLlyqo+nHanCkMoaL4rslKjZwOQLT4ek3Mmz3FACFNLB67ut6M1nWphbg8wI6VyJK5KEH0EQFVJRKbwzokAW++p/ErraAYSQK3u47bC3vLnA+ZB9i2gHF0oyQMCfCGNaUa+vauxs71wWz2V18cnBj8gQ8J1/eeBnHUa4sMFQDGdGno+4gwEAoQzjVUon3rqlx1KY9x7+0MWobjAPg3QJ2eZV4tAEyFNCN5FkSXyw2B3j1hRGvLcgBXMV5MptA4MOXr0gT0u5bZnAf0jBsyiSgJPAxqhON1K3FlRxUMvwFAtv7u0Wl0jvwEmJNEuOhakTt5wKEBifr6Oo14BIBRpgt07w6jcVMIngKGY7NofR5HwlF+zDcpsC193vyYB/innvHywCzdZfAR/+onX1segBTAxHzzfPE7/8yzzIPLjJE1LTixHZx5CtCK4gXLzovBiDPUsYxVM7gUkB3nWKlm6DYEnQGzXARxCOK+a1WfKtQXb6LNAvr7iCboCUA1Ocdsdv5KLPe7F6pH/w3wLbc+BwOuc5IZ1wEE/jonQbjptZn24tKKX7BgvR2r0NKZRwDvAqCI+Z30VJPTURv7P4A9psuQcYAUPwAoReBLrmX2Lmls7i8sZ7kWLwuoxA1FVJGxzMPLufi6P2r+2xFbOUjGAAAAAElFTkSuQmCC\",\r\n width: 16,\r\n height: 16,\r\n xoffset: -8,\r\n yoffset: -16,\r\n };\r\n\r\n private static readonly defaultSLS: EsriSLSProps = {\r\n type: \"esriSLS\",\r\n color: [0, 0, 0, 255],\r\n width: 1,\r\n style: \"esriSLSSolid\",\r\n };\r\n\r\n private static readonly defaultSFS: EsriSFSProps = {\r\n type: \"esriSFS\",\r\n color: [0, 0, 0, 255],\r\n style: \"esriSFSSolid\",\r\n };\r\n\r\n constructor(geometryType: ArcGisFeatureGeometryType, rendererDefinition: any) {\r\n let symbol;\r\n if (rendererDefinition?.symbol !== undefined) {\r\n symbol = rendererDefinition.symbol;\r\n } else if (rendererDefinition?.defaultSymbol !== undefined) {\r\n symbol = rendererDefinition?.defaultSymbol;\r\n }\r\n\r\n if (symbol !== undefined) {\r\n if (symbol.type === \"esriSFS\") {\r\n this._symbol = EsriSFS.fromJSON(symbol);\r\n } else if (symbol.type === \"esriSLS\") {\r\n this._symbol = EsriSLS.fromJSON(symbol);\r\n } else if (symbol.type === \"esriPMS\") {\r\n this._symbol = EsriPMS.fromJSON(symbol);\r\n }\r\n }\r\n\r\n // If '_symbol' is still undefined at this point, that means we could not find\r\n // any symbology definition from the metadata, let's use some default symbology\r\n // so that we display at least something.\r\n if (this._symbol === undefined) {\r\n Logger.logWarning(loggerCategory, \"Symbology definition not supported, using default symbology\");\r\n if (geometryType === \"esriGeometryPoint\" || geometryType === \"esriGeometryMultipoint\") {\r\n this._symbol = EsriPMS.fromJSON(ArcGisSymbologyRenderer.defaultPMS);\r\n } else if (geometryType === \"esriGeometryLine\" || geometryType === \"esriGeometryPolyline\") {\r\n this._symbol = EsriSLS.fromJSON(ArcGisSymbologyRenderer.defaultSLS);\r\n } else if (geometryType === \"esriGeometryPolygon\") {\r\n this._symbol = EsriSFS.fromJSON(ArcGisSymbologyRenderer.defaultSFS);\r\n } else {\r\n Logger.logError(loggerCategory, \"Could not determine default symbology: geometry type not supported\");\r\n }\r\n }\r\n }\r\n\r\n public applyFillStyle(context: CanvasRenderingContext2D) {\r\n if (!context)\r\n return;\r\n\r\n if (this._symbol?.type === \"esriSFS\") {\r\n const sfs = this._symbol as EsriSFS;\r\n if (sfs.style === \"esriSFSSolid\" && sfs.color) {\r\n context.fillStyle = sfs.color.toRgbaString();\r\n } else {\r\n context.fillStyle = ColorDef.from(200, 0, 0, 100).toRgbaString(); // default color is red?\r\n }\r\n }\r\n }\r\n\r\n public applyStrokeStyle(context: CanvasRenderingContext2D) {\r\n if (!context)\r\n return;\r\n\r\n let sls: EsriSLS | undefined;\r\n if (this._symbol?.type === \"esriSFS\") {\r\n const sfs = this._symbol as EsriSFS;\r\n if (sfs.outline && sfs.outline.style === \"esriSLSSolid\") {\r\n sls = sfs.outline;\r\n }\r\n } else if (this._symbol?.type === \"esriSLS\") {\r\n sls = this._symbol as EsriSLS;\r\n }\r\n\r\n if (sls) {\r\n if (sls.color)\r\n context.strokeStyle = sls.color.toRgbaString();\r\n context.lineWidth = sls.width; // TODO: Should we scale this value here?\r\n }\r\n }\r\n\r\n public drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number) {\r\n if (!context)\r\n return;\r\n\r\n if (this._symbol?.type === \"esriPMS\") {\r\n const pms = this._symbol as EsriPMS;\r\n let xOffset = 0, yOffset = 0;\r\n if (pms.xoffset)\r\n xOffset = pms.xoffset;\r\n else if (pms.width)\r\n xOffset = pms.width * -0.5; // if no offset center in the middle\r\n\r\n if (pms.yoffset)\r\n yOffset = pms.yoffset;\r\n else if (pms.height)\r\n yOffset = pms.height * -0.5; // if no offset center in the middle\r\n\r\n if (pms.width && pms.height) {\r\n context.drawImage(pms.image, ptX + xOffset, ptY + yOffset, pms.width, pms.height);\r\n } else {\r\n context.drawImage(pms.image, ptX + xOffset, ptY + yOffset);\r\n }\r\n\r\n // TODO: marker rotation angle\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisSymbologyRenderer.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,sDAA6C;AAK7C,gBAAgB;AAChB,MAAM,cAAc,GAAI,gCAAgC,CAAC;AAKzD,gBAAgB;AAChB,MAAsB,uBAAuB;IAMpC,MAAM,CAAC,MAAM,CAAC,QAAgC,EAAE,aAAyB;QAC9E,IAAI,QAAQ,EAAE,IAAI,KAAK,aAAa,EAAE;YACpC,OAAO,IAAI,kCAAkC,CAAC,QAAmC,EAAE,aAAa,CAAC,CAAC;SACnG;aAAM;YACL,OAAO,IAAI,6BAA6B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;SACnE;IACH,CAAC;CACF;AAbD,0DAaC;AAED,gBAAgB;AAChB,MAAa,6BAA+B,SAAQ,uBAAuB;IACzD,iBAAiB,KAA4C,OAAO,KAAK,CAAC,CAAA,CAAC;IAG3F,IAAW,MAAM,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC;IAC1C,IAAW,aAAa,KAAI,OAAO,IAAI,CAAC,cAAc,CAAC,CAAA,CAAC;IAMxD,YAAoB,QAAgC,EAAE,aAAyB;QAC7E,KAAK,EAAE,CAAC;QAVH,yBAAoB,GAAG,CAAC,CAAC,CAAI,6DAA6D;QAW/F,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,OAAO,GAAI,IAAI,CAAC,QAA+B,CAAC,MAAM,CAAC;SAC7D;aAAO;YACN,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;SAC9B;IAEH,CAAC;IAEM,cAAc,CAAC,OAAiC;QACrD,IAAI,CAAC,OAAO;YACV,OAAO;QAET,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,SAAS,EAAE;YACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;SAC9C;aAAM;YACL,qBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;SAC/D;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,SAA+B,CAAC;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;YACpC,IAAI,GAAG,CAAC,KAAK,EAAE;gBACb,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;aACvB;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,gBAAgB,CAAC,OAAiC;QACvD,IAAI,CAAC,OAAO;YACV,OAAO;QAET,gEAAgE;QAChE,IAAI,GAAwB,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;YACpC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,cAAc,EAAE;gBACvD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;aACnB;SACF;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC1C,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;SAC/B;QAED,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,CAAC,KAAK;gBACX,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACjD,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC;SAC3D;aAAM;YACL,qBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;SACjE;IAEH,CAAC;IAEM,SAAS,CAAC,OAAiC,EAAE,GAAW,EAAE,GAAW;QAC1E,IAAI,CAAC,OAAO;YACV,OAAO;QAET,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAkB,CAAC;YACpC,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,OAAO;gBACb,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;iBACnB,IAAI,GAAG,CAAC,KAAK;gBAChB,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAE,oCAAoC;YAEnE,IAAI,GAAG,CAAC,OAAO;gBACb,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;iBACnB,IAAI,GAAG,CAAC,MAAM;gBACjB,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,oCAAoC;YAEnE,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;gBAC3B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;aACnF;iBAAM;gBACL,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;aAC5D;YAED,8BAA8B;SAC/B;IACH,CAAC;CACF;AAnGD,sEAmGC;AAED,gBAAgB;AAChB,MAAa,kCAAmC,SAAQ,6BAA6B;IACnE,iBAAiB,KAA4C,OAAO,IAAI,CAAC,CAAA,CAAC;IAI1F,IAAW,cAAc;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;YACxB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;;YAEhC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,YAAoB,QAAiC,EAAE,aAAyB;QAC9E,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,QAAoC,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;SACnC;IACH,CAAC;IAEM,0BAA0B,CAAC,UAAkC;QAClE,IAAI,CAAC,wBAAwB,GAAG,UAAU,CAAC;QAE3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAEzG,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAEzE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;oBAClD,4DAA4D;oBAC5D,sGAAsG;oBACtG,IAAI,GAAG,CAAC,KAAK,KAAM,UAAU,CAAC,QAAQ,EAAE,EAAE;wBACxC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;wBAC1B,gBAAgB,GAAG,IAAI,CAAC;wBACxB,MAAM;qBACP;iBACF;aACF;SACF;QAED,iEAAiE;QACjE,IAAI,CAAC,gBAAgB,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;SACnC;IACH,CAAC;CACF;AAhDD,gFAgDC","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\nimport { Logger } from \"@itwin/core-bentley\";\nimport { ColorDef } from \"@itwin/core-common\";\nimport { EsriPMS, EsriRenderer, EsriSFS, EsriSimpleRenderer, EsriSLS, EsriSymbol, EsriUniqueValueRenderer } from \"./EsriSymbology\";\nimport { ArcGisAttributeDrivenSymbology } from \"@itwin/core-frontend\";\n\n/** @internal */\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\n\n/** @internal */\nexport type ArcGisSymbologyRendererType = \"simple\" | \"attributeDriven\";\n\n/** @internal */\nexport abstract class ArcGisSymbologyRenderer {\n public abstract isAttributeDriven(): this is ArcGisAttributeDrivenSymbology;\n public abstract applyFillStyle(context: CanvasRenderingContext2D): void;\n public abstract applyStrokeStyle(context: CanvasRenderingContext2D): void;\n public abstract drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;\n\n public static create(renderer: EsriRenderer|undefined, defaultSymbol: EsriSymbol) {\n if (renderer?.type === \"uniqueValue\") {\n return new ArcGisUniqueValueSymbologyRenderer(renderer as EsriUniqueValueRenderer, defaultSymbol);\n } else {\n return new ArcGisSimpleSymbologyRenderer(renderer, defaultSymbol);\n }\n }\n}\n\n/** @internal */\nexport class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyRenderer {\n public override isAttributeDriven(): this is ArcGisAttributeDrivenSymbology {return false;}\n public lineWidthScaleFactor = 2; // This is value is empirical, this might need to be adjusted\n\n public get symbol() {return this._symbol;}\n public get defaultSymbol() {return this._defaultSymbol;}\n protected _symbol: EsriSymbol;\n protected _defaultSymbol: EsriSymbol;\n\n public readonly renderer?: EsriRenderer;\n\n public constructor(renderer: EsriRenderer|undefined, defaultSymbol: EsriSymbol) {\n super();\n this._defaultSymbol = defaultSymbol;\n this.renderer = renderer;\n\n if (this.renderer?.type === \"simple\") {\n this._symbol = (this.renderer as EsriSimpleRenderer).symbol;\n } else {\n this._symbol = defaultSymbol;\n }\n\n }\n\n public applyFillStyle(context: CanvasRenderingContext2D) {\n if (!context)\n return;\n\n const fillColor = this.getFillColor();\n if (fillColor) {\n context.fillStyle = fillColor.toRgbaString();\n } else {\n Logger.logTrace(loggerCategory, `Could not apply fill style`);\n }\n }\n\n private getFillColor() {\n let fillColor: ColorDef | undefined;\n if (this._symbol.type === \"esriSFS\") {\n const sfs = this._symbol as EsriSFS;\n if (sfs.color) {\n fillColor = sfs.color;\n }\n }\n\n return fillColor;\n }\n\n public applyStrokeStyle(context: CanvasRenderingContext2D) {\n if (!context)\n return;\n\n // Stroke style can be from SFS's outline style or a SLS's color\n let sls: EsriSLS | undefined;\n if (this._symbol.type === \"esriSFS\") {\n const sfs = this._symbol as EsriSFS;\n if (sfs.outline && sfs.outline.style === \"esriSLSSolid\") {\n sls = sfs.outline;\n }\n } else if (this._symbol.type === \"esriSLS\") {\n sls = this._symbol as EsriSLS;\n }\n\n if (sls) {\n if (sls.color)\n context.strokeStyle = sls.color.toRgbaString();\n context.lineWidth = sls.width * this.lineWidthScaleFactor;\n } else {\n Logger.logTrace(loggerCategory, `Could not apply stroke style`);\n }\n\n }\n\n public drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number) {\n if (!context)\n return;\n\n if (this._symbol.type === \"esriPMS\") {\n const pms = this._symbol as EsriPMS;\n let xOffset = 0, yOffset = 0;\n if (pms.xoffset)\n xOffset = pms.xoffset;\n else if (pms.width)\n xOffset = pms.width * -0.5; // if no offset center in the middle\n\n if (pms.yoffset)\n yOffset = pms.yoffset;\n else if (pms.height)\n yOffset = pms.height * -0.5; // if no offset center in the middle\n\n if (pms.width && pms.height) {\n context.drawImage(pms.image, ptX + xOffset, ptY + yOffset, pms.width, pms.height);\n } else {\n context.drawImage(pms.image, ptX + xOffset, ptY + yOffset);\n }\n\n // TODO: marker rotation angle\n }\n }\n}\n\n/** @internal */\nexport class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements ArcGisAttributeDrivenSymbology {\n public override isAttributeDriven(): this is ArcGisAttributeDrivenSymbology {return true;}\n protected _activeFeatureAttributes: {[key: string]: any} | undefined;\n protected uvRenderer: EsriUniqueValueRenderer;\n\n public get rendererFields() {\n if (this.uvRenderer.field1)\n return [this.uvRenderer.field1];\n else\n return undefined;\n }\n\n public constructor(renderer: EsriUniqueValueRenderer, defaultSymbol: EsriSymbol) {\n super(renderer, defaultSymbol);\n\n this.uvRenderer = (this.renderer as EsriUniqueValueRenderer);\n if (this.uvRenderer.defaultSymbol) {\n this._defaultSymbol = this.uvRenderer.defaultSymbol;\n this._symbol = this.defaultSymbol;\n }\n }\n\n public setActiveFeatureAttributes(attributes: { [key: string]: any }) {\n this._activeFeatureAttributes = attributes;\n\n let newSymbolApplied = false;\n if (this._activeFeatureAttributes) {\n if (this.uvRenderer.field1 && Object.keys(this._activeFeatureAttributes).includes(this.uvRenderer.field1)) {\n\n const queryValue = this._activeFeatureAttributes[this.uvRenderer.field1];\n\n for (const uvi of this.uvRenderer.uniqueValueInfos) {\n // Strangely, ArcGIS documentation says 'value' is a string,\n // not too sure if a comparison on other types is possible, or its always forced to string properties?\n if (uvi.value === queryValue.toString()) {\n this._symbol = uvi.symbol;\n newSymbolApplied = true;\n break;\n }\n }\n }\n }\n\n // Fallback to default symbology to make sure we render something\n if (!newSymbolApplied) {\n this._symbol = this.defaultSymbol;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { ColorDef } from "@itwin/core-common";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export type EsriSymbolPropsType = "esriSFS" | "esriPMS" | "esriSLS" | "esriSMS" | "esriTS" | "CIMSymbolReference";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export interface EsriSymbolCommonProps {
|
|
6
|
+
type: EsriSymbolPropsType;
|
|
7
|
+
}
|
|
8
|
+
/** @internal */
|
|
9
|
+
export type EsriSymbolProps = EsriSLSProps | EsriPMSProps | EsriSFSProps;
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare abstract class EsriSymbol implements EsriSymbolCommonProps {
|
|
12
|
+
abstract readonly type: EsriSymbolPropsType;
|
|
13
|
+
static fromJSON(props: EsriSymbolProps): EsriSFS | EsriSLS | EsriPMS;
|
|
14
|
+
}
|
|
15
|
+
/** @internal */
|
|
16
|
+
export type EsriSLSStyle = "esriSLSDash" | "esriSLSDashDot" | "esriSLSDashDotDot" | "esriSLSDot" | "esriSLSLongDash" | "esriSLSLongDashDot" | "esriSLSNull" | "esriSLSShortDash" | "esriSLSShortDashDot" | "esriSLSShortDashDotDot" | "esriSLSShortDot" | "esriSLSSolid";
|
|
17
|
+
/** @internal */
|
|
18
|
+
export interface EsriSLSProps extends EsriSymbolCommonProps {
|
|
19
|
+
color: number[];
|
|
20
|
+
type: EsriSymbolPropsType;
|
|
21
|
+
width: number;
|
|
22
|
+
style: EsriSLSStyle;
|
|
23
|
+
}
|
|
24
|
+
/** @internal */
|
|
25
|
+
export declare class EsriSLS implements EsriSymbolCommonProps {
|
|
26
|
+
readonly props: EsriSLSProps;
|
|
27
|
+
get color(): ColorDef | undefined;
|
|
28
|
+
get type(): EsriSymbolPropsType;
|
|
29
|
+
get width(): number;
|
|
30
|
+
get style(): EsriSLSStyle;
|
|
31
|
+
constructor(json: EsriSLSProps);
|
|
32
|
+
static fromJSON(json: EsriSLSProps): EsriSLS;
|
|
33
|
+
}
|
|
34
|
+
/** @internal */
|
|
35
|
+
export interface EsriPMSProps extends EsriSymbolCommonProps {
|
|
36
|
+
type: EsriSymbolPropsType;
|
|
37
|
+
url: string;
|
|
38
|
+
imageData: string;
|
|
39
|
+
contentType: string;
|
|
40
|
+
width?: number;
|
|
41
|
+
height?: number;
|
|
42
|
+
xoffset?: number;
|
|
43
|
+
yoffset?: number;
|
|
44
|
+
angle?: number;
|
|
45
|
+
}
|
|
46
|
+
/** @internal */
|
|
47
|
+
export declare class EsriPMS implements EsriSymbolCommonProps {
|
|
48
|
+
readonly props: EsriPMSProps;
|
|
49
|
+
private _image;
|
|
50
|
+
get type(): EsriSymbolPropsType;
|
|
51
|
+
get url(): string;
|
|
52
|
+
get imageData(): string;
|
|
53
|
+
get imageUrl(): string;
|
|
54
|
+
get image(): HTMLImageElement;
|
|
55
|
+
get contentType(): string;
|
|
56
|
+
get width(): number | undefined;
|
|
57
|
+
get height(): number | undefined;
|
|
58
|
+
get xoffset(): number | undefined;
|
|
59
|
+
get yoffset(): number | undefined;
|
|
60
|
+
get angle(): number | undefined;
|
|
61
|
+
loadImage(): Promise<void>;
|
|
62
|
+
private constructor();
|
|
63
|
+
static fromJSON(json: EsriPMSProps): EsriPMS;
|
|
64
|
+
}
|
|
65
|
+
/** @internal */
|
|
66
|
+
export type EsriSFSStyleProps = "esriSFSBackwardDiagonal" | "esriSFSCross" | "esriSFSDiagonalCross" | "esriSFSForwardDiagonal" | "esriSFSHorizontal" | "esriSFSNull" | "esriSFSSolid" | "esriSFSVertical";
|
|
67
|
+
/** @internal */
|
|
68
|
+
export interface EsriSFSProps {
|
|
69
|
+
color?: number[];
|
|
70
|
+
type: EsriSymbolPropsType;
|
|
71
|
+
style: EsriSFSStyleProps;
|
|
72
|
+
outline?: EsriSLSProps;
|
|
73
|
+
}
|
|
74
|
+
/** @internal */
|
|
75
|
+
export declare class EsriSFS implements EsriSymbolCommonProps {
|
|
76
|
+
readonly props: EsriSFSProps;
|
|
77
|
+
private _outline;
|
|
78
|
+
get color(): ColorDef | undefined;
|
|
79
|
+
get type(): EsriSymbolPropsType;
|
|
80
|
+
get style(): EsriSFSStyleProps;
|
|
81
|
+
get outline(): EsriSLS | undefined;
|
|
82
|
+
constructor(json: EsriSFSProps);
|
|
83
|
+
static fromJSON(json: EsriSFSProps): EsriSFS;
|
|
84
|
+
}
|
|
85
|
+
/** @internal */
|
|
86
|
+
export interface EsriUniqueValueInfoProps {
|
|
87
|
+
value: string;
|
|
88
|
+
label?: string;
|
|
89
|
+
description?: string;
|
|
90
|
+
symbol: EsriSymbolProps;
|
|
91
|
+
}
|
|
92
|
+
/** @internal */
|
|
93
|
+
export declare class EsriUniqueValueInfo {
|
|
94
|
+
readonly value: string;
|
|
95
|
+
readonly label: string | undefined;
|
|
96
|
+
readonly description: string | undefined;
|
|
97
|
+
readonly symbol: EsriSymbol;
|
|
98
|
+
private constructor();
|
|
99
|
+
static fromJSON(json: EsriUniqueValueInfoProps): EsriUniqueValueInfo;
|
|
100
|
+
}
|
|
101
|
+
/** @internal */
|
|
102
|
+
export interface EsriRendererBaseProps {
|
|
103
|
+
type: EsriRendererType;
|
|
104
|
+
}
|
|
105
|
+
/** @internal */
|
|
106
|
+
export interface EsriSimpleRendererProps extends EsriRendererBaseProps {
|
|
107
|
+
symbol: EsriSymbolProps;
|
|
108
|
+
}
|
|
109
|
+
/** @internal */
|
|
110
|
+
export interface EsriUniqueValueRendererProps extends EsriRendererBaseProps {
|
|
111
|
+
symbol?: EsriSymbolProps;
|
|
112
|
+
}
|
|
113
|
+
/** @internal */
|
|
114
|
+
export interface EsriUniqueValueRendererProps extends EsriRendererBaseProps {
|
|
115
|
+
field1?: string;
|
|
116
|
+
field2?: string;
|
|
117
|
+
field3?: string;
|
|
118
|
+
defaultSymbol?: EsriSymbolProps;
|
|
119
|
+
uniqueValueInfos: EsriUniqueValueInfoProps[];
|
|
120
|
+
}
|
|
121
|
+
/** @internal */
|
|
122
|
+
export type EsriRendererType = "simple" | "uniqueValue";
|
|
123
|
+
/** @internal */
|
|
124
|
+
export type EsriRendererProps = EsriSimpleRendererProps | EsriUniqueValueRendererProps;
|
|
125
|
+
/** @internal */
|
|
126
|
+
export declare abstract class EsriRenderer {
|
|
127
|
+
abstract readonly type: EsriRendererType;
|
|
128
|
+
abstract initialize(): Promise<void>;
|
|
129
|
+
static fromJSON(json: EsriRendererProps): EsriRenderer;
|
|
130
|
+
}
|
|
131
|
+
/** @internal */
|
|
132
|
+
export declare class EsriSimpleRenderer extends EsriRenderer {
|
|
133
|
+
readonly type: EsriRendererType;
|
|
134
|
+
readonly symbol: EsriSymbol;
|
|
135
|
+
protected constructor(json: EsriSimpleRendererProps);
|
|
136
|
+
initialize(): Promise<void>;
|
|
137
|
+
static fromJSON(json: EsriSimpleRendererProps): EsriSimpleRenderer;
|
|
138
|
+
}
|
|
139
|
+
/** @internal */
|
|
140
|
+
export declare class EsriUniqueValueRenderer extends EsriRenderer {
|
|
141
|
+
private _props;
|
|
142
|
+
readonly type: EsriRendererType;
|
|
143
|
+
readonly defaultSymbol?: EsriSymbol;
|
|
144
|
+
readonly uniqueValueInfos: EsriUniqueValueInfo[];
|
|
145
|
+
get field1(): string | undefined;
|
|
146
|
+
get field2(): string | undefined;
|
|
147
|
+
get field3(): string | undefined;
|
|
148
|
+
protected constructor(json: EsriUniqueValueRendererProps);
|
|
149
|
+
initialize(): Promise<void>;
|
|
150
|
+
static fromJSON(json: EsriUniqueValueRendererProps): EsriUniqueValueRenderer;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=EsriSymbology.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EsriSymbology.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/EsriSymbology.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.EsriUniqueValueRenderer = exports.EsriSimpleRenderer = exports.EsriRenderer = exports.EsriUniqueValueInfo = exports.EsriSFS = exports.EsriPMS = exports.EsriSLS = exports.EsriSymbol = void 0;
|
|
8
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
9
|
+
const core_common_1 = require("@itwin/core-common");
|
|
10
|
+
// Convert a channel array [r, g, b, a] to ColorDef
|
|
11
|
+
function colorFromArray(channels) {
|
|
12
|
+
if (channels && channels.length === 4) {
|
|
13
|
+
// Alpha channel is reversed, 255 = opaque
|
|
14
|
+
return core_common_1.ColorDef.from(channels[0], channels[1], channels[2], 255 - channels[3]);
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
/** @internal */
|
|
19
|
+
class EsriSymbol {
|
|
20
|
+
static fromJSON(props) {
|
|
21
|
+
if (props.type === "esriSFS") {
|
|
22
|
+
return EsriSFS.fromJSON(props);
|
|
23
|
+
}
|
|
24
|
+
else if (props.type === "esriSLS") {
|
|
25
|
+
return EsriSLS.fromJSON(props);
|
|
26
|
+
}
|
|
27
|
+
else if (props.type === "esriPMS") {
|
|
28
|
+
return EsriPMS.fromJSON(props);
|
|
29
|
+
}
|
|
30
|
+
throw new Error("Unknown ESRI symbology type");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.EsriSymbol = EsriSymbol;
|
|
34
|
+
/** @internal */
|
|
35
|
+
class EsriSLS {
|
|
36
|
+
get color() { return colorFromArray(this.props.color); }
|
|
37
|
+
get type() { return this.props.type; }
|
|
38
|
+
get width() { return this.props.width; }
|
|
39
|
+
get style() { return this.props.style; }
|
|
40
|
+
constructor(json) {
|
|
41
|
+
this.props = json;
|
|
42
|
+
}
|
|
43
|
+
static fromJSON(json) {
|
|
44
|
+
return new EsriSLS(json);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.EsriSLS = EsriSLS;
|
|
48
|
+
/** @internal */
|
|
49
|
+
class EsriPMS {
|
|
50
|
+
get type() { return this.props.type; }
|
|
51
|
+
get url() { return this.props.url; }
|
|
52
|
+
get imageData() { return this.props.imageData; }
|
|
53
|
+
get imageUrl() { return `data:${this.contentType};base64,${this.imageData}`; }
|
|
54
|
+
get image() {
|
|
55
|
+
(0, core_bentley_1.assert)(this._image !== undefined);
|
|
56
|
+
return this._image;
|
|
57
|
+
}
|
|
58
|
+
get contentType() { return this.props.contentType; }
|
|
59
|
+
get width() { return this.props.width; }
|
|
60
|
+
get height() { return this.props.height; }
|
|
61
|
+
get xoffset() { return this.props.xoffset; }
|
|
62
|
+
get yoffset() { return this.props.yoffset; }
|
|
63
|
+
get angle() { return this.props.angle; }
|
|
64
|
+
async loadImage() {
|
|
65
|
+
if (this._image === undefined) {
|
|
66
|
+
this._image = new Image();
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
if (this._image) {
|
|
69
|
+
this._image.addEventListener("load", () => {
|
|
70
|
+
resolve();
|
|
71
|
+
});
|
|
72
|
+
this._image.src = this.imageUrl;
|
|
73
|
+
}
|
|
74
|
+
else
|
|
75
|
+
reject(new Error("Failed to load image"));
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
constructor(json) {
|
|
80
|
+
this.props = json;
|
|
81
|
+
}
|
|
82
|
+
static fromJSON(json) {
|
|
83
|
+
return new EsriPMS(json);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.EsriPMS = EsriPMS;
|
|
87
|
+
/** @internal */
|
|
88
|
+
class EsriSFS {
|
|
89
|
+
get color() { return colorFromArray(this.props.color); }
|
|
90
|
+
get type() { return this.props.type; }
|
|
91
|
+
get style() { return this.props.style; }
|
|
92
|
+
get outline() { return this._outline; }
|
|
93
|
+
constructor(json) {
|
|
94
|
+
this.props = json;
|
|
95
|
+
if (json.outline)
|
|
96
|
+
this._outline = EsriSLS.fromJSON(json.outline);
|
|
97
|
+
}
|
|
98
|
+
static fromJSON(json) {
|
|
99
|
+
return new EsriSFS(json);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.EsriSFS = EsriSFS;
|
|
103
|
+
/** @internal */
|
|
104
|
+
class EsriUniqueValueInfo {
|
|
105
|
+
constructor(json) {
|
|
106
|
+
this.value = json.value;
|
|
107
|
+
this.label = json.label;
|
|
108
|
+
this.description = json.description;
|
|
109
|
+
this.symbol = EsriSymbol.fromJSON(json.symbol);
|
|
110
|
+
}
|
|
111
|
+
static fromJSON(json) {
|
|
112
|
+
return new EsriUniqueValueInfo(json);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.EsriUniqueValueInfo = EsriUniqueValueInfo;
|
|
116
|
+
/** @internal */
|
|
117
|
+
class EsriRenderer {
|
|
118
|
+
static fromJSON(json) {
|
|
119
|
+
if (json.type === "simple")
|
|
120
|
+
return EsriSimpleRenderer.fromJSON(json);
|
|
121
|
+
else if (json.type === "uniqueValue")
|
|
122
|
+
return EsriUniqueValueRenderer.fromJSON(json);
|
|
123
|
+
else
|
|
124
|
+
throw Error("Unknown renderer type");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.EsriRenderer = EsriRenderer;
|
|
128
|
+
/** @internal */
|
|
129
|
+
class EsriSimpleRenderer extends EsriRenderer {
|
|
130
|
+
constructor(json) {
|
|
131
|
+
super();
|
|
132
|
+
this.type = "simple";
|
|
133
|
+
this.type = json.type;
|
|
134
|
+
this.symbol = EsriSymbol.fromJSON(json.symbol);
|
|
135
|
+
}
|
|
136
|
+
async initialize() {
|
|
137
|
+
const promises = [];
|
|
138
|
+
if (this.symbol.type === "esriPMS") {
|
|
139
|
+
promises.push(this.symbol.loadImage());
|
|
140
|
+
}
|
|
141
|
+
await Promise.all(promises);
|
|
142
|
+
}
|
|
143
|
+
static fromJSON(json) {
|
|
144
|
+
return new EsriSimpleRenderer(json);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.EsriSimpleRenderer = EsriSimpleRenderer;
|
|
148
|
+
/** @internal */
|
|
149
|
+
class EsriUniqueValueRenderer extends EsriRenderer {
|
|
150
|
+
get field1() { return this._props.field1 ?? undefined; }
|
|
151
|
+
get field2() { return this._props.field2 ?? undefined; }
|
|
152
|
+
get field3() { return this._props.field3 ?? undefined; }
|
|
153
|
+
constructor(json) {
|
|
154
|
+
super();
|
|
155
|
+
this.type = "uniqueValue";
|
|
156
|
+
this.uniqueValueInfos = [];
|
|
157
|
+
if (json.defaultSymbol)
|
|
158
|
+
this.defaultSymbol = EsriSymbol.fromJSON(json.defaultSymbol);
|
|
159
|
+
for (const uvi of json.uniqueValueInfos) {
|
|
160
|
+
this.uniqueValueInfos.push(EsriUniqueValueInfo.fromJSON(uvi));
|
|
161
|
+
}
|
|
162
|
+
this._props = json;
|
|
163
|
+
}
|
|
164
|
+
async initialize() {
|
|
165
|
+
const promises = [];
|
|
166
|
+
if (this.defaultSymbol?.type === "esriPMS") {
|
|
167
|
+
promises.push(this.defaultSymbol.loadImage());
|
|
168
|
+
}
|
|
169
|
+
for (const uvi of this.uniqueValueInfos) {
|
|
170
|
+
if (uvi.symbol.type === "esriPMS") {
|
|
171
|
+
promises.push(uvi.symbol.loadImage());
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
await Promise.all(promises);
|
|
175
|
+
}
|
|
176
|
+
static fromJSON(json) {
|
|
177
|
+
return new EsriUniqueValueRenderer(json);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.EsriUniqueValueRenderer = EsriUniqueValueRenderer;
|
|
181
|
+
//# sourceMappingURL=EsriSymbology.js.map
|