@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.
Files changed (284) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts +19 -0
  3. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +1 -0
  4. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js +46 -0
  5. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js.map +1 -0
  6. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
  7. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +3 -0
  8. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  9. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +16 -8
  10. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  11. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +157 -45
  12. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  13. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts +5 -0
  14. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -1
  15. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js +4 -0
  16. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
  17. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts +15 -6
  18. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -1
  19. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js +6 -4
  20. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
  21. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +14 -0
  22. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -0
  23. package/lib/cjs/ArcGisFeature/{ArcGisFeatureJSON.js → ArcGisJsonFeatureReader.js} +51 -55
  24. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -0
  25. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +22 -0
  26. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -0
  27. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js +249 -0
  28. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -0
  29. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +32 -77
  30. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
  31. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +88 -128
  32. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  33. package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts +152 -0
  34. package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts.map +1 -0
  35. package/lib/cjs/ArcGisFeature/EsriSymbology.js +181 -0
  36. package/lib/cjs/ArcGisFeature/EsriSymbology.js.map +1 -0
  37. package/lib/cjs/Tools/MapFeatureInfoDecorator.d.ts +34 -0
  38. package/lib/cjs/Tools/MapFeatureInfoDecorator.d.ts.map +1 -0
  39. package/lib/cjs/Tools/MapFeatureInfoDecorator.js +281 -0
  40. package/lib/cjs/Tools/MapFeatureInfoDecorator.js.map +1 -0
  41. package/lib/cjs/Tools/MapFeatureInfoTool.d.ts +38 -0
  42. package/lib/cjs/Tools/MapFeatureInfoTool.d.ts.map +1 -0
  43. package/lib/cjs/Tools/MapFeatureInfoTool.js +113 -0
  44. package/lib/cjs/Tools/MapFeatureInfoTool.js.map +1 -0
  45. package/lib/cjs/map-layers-formats.d.ts +1 -0
  46. package/lib/cjs/map-layers-formats.d.ts.map +1 -1
  47. package/lib/cjs/map-layers-formats.js +1 -0
  48. package/lib/cjs/map-layers-formats.js.map +1 -1
  49. package/lib/cjs/mapLayersFormats.d.ts +12 -1
  50. package/lib/cjs/mapLayersFormats.d.ts.map +1 -1
  51. package/lib/cjs/mapLayersFormats.js +11 -1
  52. package/lib/cjs/mapLayersFormats.js.map +1 -1
  53. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts +19 -0
  54. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +1 -0
  55. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js +42 -0
  56. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js.map +1 -0
  57. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
  58. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +4 -1
  59. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  60. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +16 -8
  61. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  62. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +158 -46
  63. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  64. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts +5 -0
  65. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -1
  66. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js +4 -0
  67. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
  68. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts +15 -6
  69. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -1
  70. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js +4 -2
  71. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
  72. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +14 -0
  73. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -0
  74. package/lib/esm/ArcGisFeature/{ArcGisFeatureJSON.js → ArcGisJsonFeatureReader.js} +51 -55
  75. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -0
  76. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +22 -0
  77. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -0
  78. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js +245 -0
  79. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -0
  80. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +32 -77
  81. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
  82. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +84 -124
  83. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  84. package/lib/esm/ArcGisFeature/EsriSymbology.d.ts +152 -0
  85. package/lib/esm/ArcGisFeature/EsriSymbology.d.ts.map +1 -0
  86. package/lib/esm/ArcGisFeature/EsriSymbology.js +170 -0
  87. package/lib/esm/ArcGisFeature/EsriSymbology.js.map +1 -0
  88. package/lib/esm/Tools/MapFeatureInfoDecorator.d.ts +34 -0
  89. package/lib/esm/Tools/MapFeatureInfoDecorator.d.ts.map +1 -0
  90. package/lib/esm/Tools/MapFeatureInfoDecorator.js +277 -0
  91. package/lib/esm/Tools/MapFeatureInfoDecorator.js.map +1 -0
  92. package/lib/esm/Tools/MapFeatureInfoTool.d.ts +38 -0
  93. package/lib/esm/Tools/MapFeatureInfoTool.d.ts.map +1 -0
  94. package/lib/esm/Tools/MapFeatureInfoTool.js +110 -0
  95. package/lib/esm/Tools/MapFeatureInfoTool.js.map +1 -0
  96. package/lib/esm/map-layers-formats.d.ts +1 -0
  97. package/lib/esm/map-layers-formats.d.ts.map +1 -1
  98. package/lib/esm/map-layers-formats.js +1 -0
  99. package/lib/esm/map-layers-formats.js.map +1 -1
  100. package/lib/esm/mapLayersFormats.d.ts +12 -1
  101. package/lib/esm/mapLayersFormats.d.ts.map +1 -1
  102. package/lib/esm/mapLayersFormats.js +13 -2
  103. package/lib/esm/mapLayersFormats.js.map +1 -1
  104. package/lib/public/locales/en/mapLayersFormats.json +12 -0
  105. package/package.json +19 -22
  106. package/.nycrc +0 -10
  107. package/.rush/temp/operation/build/all.log +0 -3
  108. package/.rush/temp/operation/build/state.json +0 -3
  109. package/.rush/temp/operation/cover/all.log +0 -98
  110. package/.rush/temp/operation/cover/state.json +0 -3
  111. package/.rush/temp/operation/docs/all.log +0 -30
  112. package/.rush/temp/operation/docs/state.json +0 -3
  113. package/.rush/temp/package-deps_build.json +0 -36
  114. package/.rush/temp/package-deps_cover.json +0 -36
  115. package/.rush/temp/package-deps_docs.json +0 -36
  116. package/.rush/temp/shrinkwrap-deps.json +0 -505
  117. package/CHANGELOG.json +0 -119
  118. package/config/rush-project.json +0 -6
  119. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts +0 -15
  120. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts.map +0 -1
  121. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js.map +0 -1
  122. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts +0 -15
  123. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts.map +0 -1
  124. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js +0 -201
  125. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js.map +0 -1
  126. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts +0 -33
  127. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts.map +0 -1
  128. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js +0 -143
  129. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js.map +0 -1
  130. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +0 -2
  131. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts.map +0 -1
  132. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +0 -35
  133. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +0 -1
  134. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +0 -2
  135. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts.map +0 -1
  136. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js +0 -162
  137. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +0 -1
  138. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +0 -2
  139. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts.map +0 -1
  140. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js +0 -168
  141. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +0 -1
  142. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +0 -2
  143. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts.map +0 -1
  144. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +0 -680
  145. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +0 -1
  146. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +0 -2
  147. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts.map +0 -1
  148. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js +0 -104
  149. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +0 -1
  150. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +0 -2
  151. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts.map +0 -1
  152. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +0 -215
  153. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +0 -1
  154. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +0 -2
  155. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts.map +0 -1
  156. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js +0 -95
  157. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +0 -1
  158. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +0 -2
  159. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts.map +0 -1
  160. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +0 -60
  161. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +0 -1
  162. package/lib/cjs/test/ArcGisFeature/Mocks.d.ts +0 -7
  163. package/lib/cjs/test/ArcGisFeature/Mocks.d.ts.map +0 -1
  164. package/lib/cjs/test/ArcGisFeature/Mocks.js +0 -19
  165. package/lib/cjs/test/ArcGisFeature/Mocks.js.map +0 -1
  166. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts +0 -56
  167. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts.map +0 -1
  168. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js +0 -420
  169. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js.map +0 -1
  170. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +0 -1043
  171. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts.map +0 -1
  172. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js +0 -427
  173. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js.map +0 -1
  174. package/lib/cjs/test/coverage/.nyc_output/2a6113c3-018f-40b1-ae8f-f3d0cbe030ce.json +0 -1
  175. package/lib/cjs/test/coverage/.nyc_output/74410d89-cce2-4b2a-89c9-6d56490c73f1.json +0 -1
  176. package/lib/cjs/test/coverage/.nyc_output/processinfo/2a6113c3-018f-40b1-ae8f-f3d0cbe030ce.json +0 -1
  177. package/lib/cjs/test/coverage/.nyc_output/processinfo/74410d89-cce2-4b2a-89c9-6d56490c73f1.json +0 -1
  178. package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +0 -1
  179. package/lib/cjs/test/coverage/cobertura-coverage.xml +0 -1169
  180. package/lib/cjs/test/coverage/lcov-report/base.css +0 -224
  181. package/lib/cjs/test/coverage/lcov-report/block-navigation.js +0 -87
  182. package/lib/cjs/test/coverage/lcov-report/favicon.png +0 -0
  183. package/lib/cjs/test/coverage/lcov-report/index.html +0 -131
  184. package/lib/cjs/test/coverage/lcov-report/prettify.css +0 -1
  185. package/lib/cjs/test/coverage/lcov-report/prettify.js +0 -2
  186. package/lib/cjs/test/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  187. package/lib/cjs/test/coverage/lcov-report/sorter.js +0 -196
  188. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +0 -133
  189. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +0 -550
  190. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +0 -730
  191. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +0 -1546
  192. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +0 -763
  193. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +0 -223
  194. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +0 -598
  195. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +0 -301
  196. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +0 -832
  197. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +0 -236
  198. package/lib/cjs/test/coverage/lcov-report/src/index.html +0 -131
  199. package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +0 -130
  200. package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +0 -163
  201. package/lib/cjs/test/coverage/lcov.info +0 -1358
  202. package/lib/cjs/tsconfig.tsbuildinfo +0 -1
  203. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts +0 -15
  204. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts.map +0 -1
  205. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js.map +0 -1
  206. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts +0 -15
  207. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts.map +0 -1
  208. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js +0 -197
  209. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js.map +0 -1
  210. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts +0 -33
  211. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts.map +0 -1
  212. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js +0 -139
  213. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js.map +0 -1
  214. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +0 -2
  215. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts.map +0 -1
  216. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +0 -33
  217. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +0 -1
  218. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +0 -2
  219. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts.map +0 -1
  220. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js +0 -160
  221. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +0 -1
  222. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +0 -2
  223. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts.map +0 -1
  224. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js +0 -166
  225. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +0 -1
  226. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +0 -2
  227. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts.map +0 -1
  228. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +0 -678
  229. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +0 -1
  230. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +0 -2
  231. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts.map +0 -1
  232. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js +0 -102
  233. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +0 -1
  234. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +0 -2
  235. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts.map +0 -1
  236. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +0 -213
  237. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +0 -1
  238. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +0 -2
  239. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts.map +0 -1
  240. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js +0 -93
  241. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +0 -1
  242. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +0 -2
  243. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts.map +0 -1
  244. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +0 -58
  245. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +0 -1
  246. package/lib/esm/test/ArcGisFeature/Mocks.d.ts +0 -7
  247. package/lib/esm/test/ArcGisFeature/Mocks.d.ts.map +0 -1
  248. package/lib/esm/test/ArcGisFeature/Mocks.js +0 -16
  249. package/lib/esm/test/ArcGisFeature/Mocks.js.map +0 -1
  250. package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts +0 -56
  251. package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts.map +0 -1
  252. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js +0 -417
  253. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js.map +0 -1
  254. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +0 -1043
  255. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts.map +0 -1
  256. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js +0 -424
  257. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js.map +0 -1
  258. package/lib/esm/tsconfig.tsbuildinfo +0 -1
  259. package/lib/test/junit_results.xml +0 -159
  260. package/map-layers-formats.build.log +0 -30
  261. package/src/ArcGisFeature/ArcGisFeatureFormat.ts +0 -16
  262. package/src/ArcGisFeature/ArcGisFeatureJSON.ts +0 -155
  263. package/src/ArcGisFeature/ArcGisFeaturePBF.ts +0 -215
  264. package/src/ArcGisFeature/ArcGisFeatureProvider.ts +0 -487
  265. package/src/ArcGisFeature/ArcGisFeatureQuery.ts +0 -226
  266. package/src/ArcGisFeature/ArcGisFeatureReader.ts +0 -46
  267. package/src/ArcGisFeature/ArcGisFeatureRenderer.ts +0 -171
  268. package/src/ArcGisFeature/ArcGisFeatureResponse.ts +0 -72
  269. package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +0 -249
  270. package/src/ArcGisFeature/esriPBuffer.gen.ts +0 -2612
  271. package/src/map-layers-formats.ts +0 -15
  272. package/src/mapLayersFormats.ts +0 -26
  273. package/src/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.ts +0 -46
  274. package/src/test/ArcGisFeature/ArcGisFeatureJSON.test.ts +0 -202
  275. package/src/test/ArcGisFeature/ArcGisFeaturePBF.test.ts +0 -227
  276. package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +0 -805
  277. package/src/test/ArcGisFeature/ArcGisFeatureQuery.test.ts +0 -117
  278. package/src/test/ArcGisFeature/ArcGisFeatureRenderer.test.ts +0 -296
  279. package/src/test/ArcGisFeature/ArcGisFeatureResponse.test.ts +0 -109
  280. package/src/test/ArcGisFeature/ArcGisSymbologyRenderer.test.ts +0 -77
  281. package/src/test/ArcGisFeature/Mocks.ts +0 -19
  282. package/src/test/ArcGisFeature/NewYorkDataset.ts +0 -423
  283. package/src/test/ArcGisFeature/PhillyLandmarksDataset.ts +0 -455
  284. package/tsconfig.json +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisPbfFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisPbfFeatureReader.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\nimport { esriPBuffer } from \"../ArcGisFeature/esriPBuffer.gen\";\r\nimport { ArcGisAttributeDrivenSymbology, ArcGisGeometryRenderer, ArcGisGraphicsRenderer, MapLayerFeature, MapLayerFeatureAttribute, MapLayerFeatureInfo, MapSubLayerFeatureInfo} from \"@itwin/core-frontend\";\r\nimport { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { ArcGisBaseFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { ArcGisFeatureGeometryType } from \"./ArcGisFeatureQuery\";\r\n\r\nconst esriGeometryType = esriPBuffer.FeatureCollectionPBuffer.GeometryType;\r\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\r\n\r\ninterface PbfFieldInfo {\r\n name: string;\r\n type: esriPBuffer.FeatureCollectionPBuffer.FieldType;\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisPbfFeatureReader extends ArcGisBaseFeatureReader {\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super(settings, layerMetadata);\r\n }\r\n\r\n public static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType {\r\n switch (geomType) {\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch:\r\n return \"esriGeometryMultiPatch\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint:\r\n return \"esriGeometryMultipoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint:\r\n return \"esriGeometryPoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon:\r\n return \"esriGeometryPolygon\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline:\r\n return \"esriGeometryPolyline\";\r\n default:\r\n return \"esriGeometryNull\";\r\n }\r\n }\r\n\r\n private getNumericValue(attrValue: esriPBuffer.FeatureCollectionPBuffer.Value) {\r\n const propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n let typename = StandardTypeNames.Number;\r\n if (attrValue.has_double_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.double_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Double;\r\n } else if (attrValue.has_float_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.float_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Float;\r\n } else if (attrValue.has_int64_value) {\r\n propertyValue.value = attrValue.int64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint64_value) {\r\n propertyValue.value = attrValue.sint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint_value) {\r\n propertyValue.value = attrValue.sint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint64_value) {\r\n propertyValue.value = attrValue.uint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint_value) {\r\n propertyValue.value = attrValue.uint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else {\r\n propertyValue.value = undefined;\r\n }\r\n\r\n return { propertyValue, typename };\r\n }\r\n\r\n public getFeatureAttribute(fieldInfo: PbfFieldInfo, attrValue: esriPBuffer.FeatureCollectionPBuffer.Value): MapLayerFeatureAttribute|undefined {\r\n let propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n\r\n let typename = StandardTypeNames.String;\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDouble\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSmallInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeOID\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSingle\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate\r\n ) {\r\n const value = this.getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read numeric value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate) {\r\n const test = (value.propertyValue.value as unknown) as number;\r\n propertyValue.value = new Date(test);\r\n typename = StandardTypeNames.DateTime;\r\n } else {\r\n typename = value.typename;\r\n propertyValue = value.propertyValue;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeString) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeGlobalID) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n } else {\r\n const value = this.getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read GlobalId value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n }\r\n } else if (attrValue.has_string_value) {\r\n // If we reach this case that probably mean we don't support the field type, simply try to output string value\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = attrValue.string_value;\r\n } else if (attrValue.value_type === \"none\") {\r\n // Sometimes fields are just empty, use an empty string\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = undefined;\r\n } else {\r\n Logger.logError(loggerCategory, `Could not read value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\r\n\r\n return {value: propertyValue, property: { name: fieldInfo.name, displayLabel: fieldInfo.name, typename } };\r\n }\r\n\r\n public async readAndRender(response: ArcGisResponseData, renderer: ArcGisGeometryRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n const msg = \"Response was not in PBF format\";\r\n Logger.logError(loggerCategory, msg);\r\n return;\r\n }\r\n\r\n const collection = response.data;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const attrSymbology = renderer.attributeSymbology;\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n const relativeCoords = renderer.transform === undefined;\r\n for (const feature of collection.queryResult.featureResult.features) {\r\n\r\n // Render geometries\r\n if (renderer && feature?.has_geometry) {\r\n\r\n if (attrSymbology) {\r\n // Read attributes if needed (attribute driven symbology)\r\n this.applySymbologyAttributes(attrSymbology, feature, fields);\r\n }\r\n\r\n if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n await renderer.renderPoint(feature.geometry.lengths, feature.geometry.coords, stride, relativeCoords);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n await renderer.renderPath(feature.geometry.lengths, feature.geometry.coords, fill, stride, relativeCoords);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n private applySymbologyAttributes(attrSymbology: ArcGisAttributeDrivenSymbology, feature: esriPBuffer.FeatureCollectionPBuffer.Feature, fields: PbfFieldInfo[]) {\r\n if (attrSymbology) {\r\n const symbolFields = attrSymbology.rendererFields;\r\n if (symbolFields && symbolFields.length > 0 && feature.attributes) {\r\n let fieldIdx = 0;\r\n const featureAttr: {[key: string]: any} = {};\r\n for (const attrValue of feature.attributes) {\r\n if (fieldIdx > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n const fieldInfo = fields[fieldIdx++];\r\n if (symbolFields.includes(fieldInfo.name)) {\r\n const attr = this.getFeatureAttribute(fieldInfo, attrValue);\r\n if (attr) {\r\n const primitiveValue = attr.value as PrimitiveValue;\r\n featureAttr[fieldInfo.name] = primitiveValue.value;\r\n }\r\n }\r\n\r\n }\r\n attrSymbology.setActiveFeatureAttributes(featureAttr);\r\n }\r\n }\r\n }\r\n\r\n public async readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: ArcGisGraphicsRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n\r\n Logger.logError(loggerCategory, \"Response was not in PBF format\");\r\n }\r\n\r\n const collection = response.data as esriPBuffer.FeatureCollectionPBuffer;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const layerInfo: MapLayerFeatureInfo = { layerName: this._settings.name, subLayerInfos: [] };\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n features: [],\r\n };\r\n\r\n // Read feature values\r\n for (const featureResponse of collection.queryResult.featureResult.features) {\r\n const feature: MapLayerFeature = { attributes: []};\r\n\r\n if (renderer && featureResponse?.has_geometry) {\r\n if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n await renderer.renderPoint(featureResponse.geometry.lengths, featureResponse.geometry.coords, stride, true);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n await renderer.renderPath(featureResponse.geometry.lengths, featureResponse.geometry.coords, fill, stride, true);\r\n }\r\n const graphics = renderer.moveGraphics();\r\n feature.geometries = graphics.map((graphic) => {\r\n return {graphic};\r\n });\r\n }\r\n\r\n let fieldIdx = 0;\r\n for (const attrValue of featureResponse.attributes) {\r\n if (fieldIdx > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n // Convert everything to string for now\r\n const attr = this.getFeatureAttribute(fields[fieldIdx], attrValue);\r\n if (attr) {\r\n feature.attributes?.push(attr);\r\n }\r\n\r\n fieldIdx++;\r\n }\r\n subLayerInfo.features.push(feature);\r\n }\r\n\r\n if (layerInfo.subLayerInfos === undefined) {\r\n layerInfo.subLayerInfos = [];\r\n }\r\n layerInfo.subLayerInfos.push(subLayerInfo);\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
@@ -1,86 +1,41 @@
1
- import { ColorDef } from "@itwin/core-common";
2
- import { ArcGisFeatureGeometryType } from "./ArcGisFeatureQuery";
1
+ import { EsriRenderer, EsriSymbol, EsriUniqueValueRenderer } from "./EsriSymbology";
2
+ import { ArcGisAttributeDrivenSymbology } from "@itwin/core-frontend";
3
3
  /** @internal */
4
- export type EsriSymbolType = "esriSFS" | "esriPMS" | "esriSLS" | "esriSMS" | "esriTS" | "CIMSymbolReference";
5
- interface EsriSymbol {
6
- type: EsriSymbolType;
7
- }
8
- /** @internal */
9
- export type EsriSLSStyle = "esriSLSDash" | "esriSLSDashDot" | "esriSLSDashDotDot" | "esriSLSDot" | "esriSLSLongDash" | "esriSLSLongDashDot" | "esriSLSNull" | "esriSLSShortDash" | "esriSLSShortDashDot" | "esriSLSShortDashDotDot" | "esriSLSShortDot" | "esriSLSSolid";
10
- interface EsriSLSProps {
11
- color: number[];
12
- type: EsriSymbolType;
13
- width: number;
14
- style: EsriSLSStyle;
15
- }
16
- /** @internal */
17
- export declare class EsriSLS implements EsriSymbol {
18
- readonly props: EsriSLSProps;
19
- get color(): ColorDef | undefined;
20
- get type(): EsriSymbolType;
21
- get width(): number;
22
- get style(): EsriSLSStyle;
23
- constructor(json: EsriSLSProps);
24
- static fromJSON(json: EsriSLSProps): EsriSLS;
25
- }
26
- interface EsriPMSProps {
27
- type: EsriSymbolType;
28
- url: string;
29
- imageData: string;
30
- contentType: string;
31
- width?: number;
32
- height?: number;
33
- xoffset?: number;
34
- yoffset?: number;
35
- angle?: number;
36
- }
4
+ export type ArcGisSymbologyRendererType = "simple" | "attributeDriven";
37
5
  /** @internal */
38
- export declare class EsriPMS implements EsriSymbol {
39
- readonly props: EsriPMSProps;
40
- private _image;
41
- get type(): EsriSymbolType;
42
- get url(): string;
43
- get imageData(): string;
44
- get imageUrl(): string;
45
- get image(): HTMLImageElement;
46
- get contentType(): string;
47
- get width(): number | undefined;
48
- get height(): number | undefined;
49
- get xoffset(): number | undefined;
50
- get yoffset(): number | undefined;
51
- get angle(): number | undefined;
52
- constructor(json: EsriPMSProps);
53
- static fromJSON(json: EsriPMSProps): EsriPMS;
6
+ export declare abstract class ArcGisSymbologyRenderer {
7
+ abstract isAttributeDriven(): this is ArcGisAttributeDrivenSymbology;
8
+ abstract applyFillStyle(context: CanvasRenderingContext2D): void;
9
+ abstract applyStrokeStyle(context: CanvasRenderingContext2D): void;
10
+ abstract drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;
11
+ static create(renderer: EsriRenderer | undefined, defaultSymbol: EsriSymbol): ArcGisSimpleSymbologyRenderer;
54
12
  }
55
13
  /** @internal */
56
- export type EsriSFSStyleProps = "esriSFSBackwardDiagonal" | "esriSFSCross" | "esriSFSDiagonalCross" | "esriSFSForwardDiagonal" | "esriSFSHorizontal" | "esriSFSNull" | "esriSFSSolid" | "esriSFSVertical";
57
- interface EsriSFSProps {
58
- color?: number[];
59
- type: EsriSymbolType;
60
- style: EsriSFSStyleProps;
61
- outline?: EsriSLSProps;
62
- }
63
- /** @internal */
64
- export declare class EsriSFS implements EsriSymbol {
65
- readonly props: EsriSFSProps;
66
- private _outline;
67
- get color(): ColorDef | undefined;
68
- get type(): EsriSymbolType;
69
- get style(): EsriSFSStyleProps;
70
- get outline(): EsriSLS | undefined;
71
- constructor(json: EsriSFSProps);
72
- static fromJSON(json: EsriSFSProps): EsriSFS;
73
- }
74
- /** @internal */
75
- export declare class ArcGisSymbologyRenderer {
76
- private _symbol;
77
- private static readonly defaultPMS;
78
- private static readonly defaultSLS;
79
- private static readonly defaultSFS;
80
- constructor(geometryType: ArcGisFeatureGeometryType, rendererDefinition: any);
14
+ export declare class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyRenderer {
15
+ isAttributeDriven(): this is ArcGisAttributeDrivenSymbology;
16
+ lineWidthScaleFactor: number;
17
+ get symbol(): EsriSymbol;
18
+ get defaultSymbol(): EsriSymbol;
19
+ protected _symbol: EsriSymbol;
20
+ protected _defaultSymbol: EsriSymbol;
21
+ readonly renderer?: EsriRenderer;
22
+ constructor(renderer: EsriRenderer | undefined, defaultSymbol: EsriSymbol);
81
23
  applyFillStyle(context: CanvasRenderingContext2D): void;
24
+ private getFillColor;
82
25
  applyStrokeStyle(context: CanvasRenderingContext2D): void;
83
26
  drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;
84
27
  }
85
- export {};
28
+ /** @internal */
29
+ export declare class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements ArcGisAttributeDrivenSymbology {
30
+ isAttributeDriven(): this is ArcGisAttributeDrivenSymbology;
31
+ protected _activeFeatureAttributes: {
32
+ [key: string]: any;
33
+ } | undefined;
34
+ protected uvRenderer: EsriUniqueValueRenderer;
35
+ get rendererFields(): string[] | undefined;
36
+ constructor(renderer: EsriUniqueValueRenderer, defaultSymbol: EsriSymbol);
37
+ setActiveFeatureAttributes(attributes: {
38
+ [key: string]: any;
39
+ }): void;
40
+ }
86
41
  //# sourceMappingURL=ArcGisSymbologyRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisSymbologyRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArcGisSymbologyRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,YAAY,EAAwC,UAAU,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACnI,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAKtE,gBAAgB;AAChB,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEvE,gBAAgB;AAChB,8BAAsB,uBAAuB;aAC3B,iBAAiB,IAAI,IAAI,IAAI,8BAA8B;aAC3D,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;aACvD,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;aACzD,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;WAE9E,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAC,SAAS,EAAE,aAAa,EAAE,UAAU;CAOjF;AAED,gBAAgB;AAChB,qBAAa,6BAA+B,SAAQ,uBAAuB;IACzD,iBAAiB,IAAI,IAAI,IAAI,8BAA8B;IACpE,oBAAoB,SAAK;IAEhC,IAAW,MAAM,eAAyB;IAC1C,IAAW,aAAa,eAAgC;IACxD,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9B,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC;IAErC,SAAgB,QAAQ,CAAC,EAAE,YAAY,CAAC;gBAEpB,QAAQ,EAAE,YAAY,GAAC,SAAS,EAAE,aAAa,EAAE,UAAU;IAaxE,cAAc,CAAC,OAAO,EAAE,wBAAwB;IAYvD,OAAO,CAAC,YAAY;IAYb,gBAAgB,CAAC,OAAO,EAAE,wBAAwB;IAyBlD,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CA0B7E;AAED,gBAAgB;AAChB,qBAAa,kCAAmC,SAAQ,6BAA8B,YAAW,8BAA8B;IAC7G,iBAAiB,IAAI,IAAI,IAAI,8BAA8B;IAC3E,SAAS,CAAC,wBAAwB,EAAG;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,SAAS,CAAC;IACtE,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAE9C,IAAW,cAAc,yBAKxB;gBAEmB,QAAQ,EAAE,uBAAuB,EAAE,aAAa,EAAE,UAAU;IAUzE,0BAA0B,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;CA0BrE"}
@@ -3,142 +3,84 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { Logger } from "@itwin/core-bentley";
6
- import { ColorDef } from "@itwin/core-common";
7
- // Convert a channel array [r, g, b, a] to ColorDef
8
- function colorFromArray(channels) {
9
- if (channels && channels.length === 4) {
10
- // Alpha channel is reversed, 255 = opaque
11
- return ColorDef.from(channels[0], channels[1], channels[2], 255 - channels[3]);
12
- }
13
- return undefined;
14
- }
15
- const loggerCategory = "MapLayersFormats.ArcGISFeature";
16
- /** @internal */
17
- export class EsriSLS {
18
- get color() { return colorFromArray(this.props.color); }
19
- get type() { return this.props.type; }
20
- get width() { return this.props.width; }
21
- get style() { return this.props.style; }
22
- constructor(json) {
23
- this.props = json;
24
- }
25
- static fromJSON(json) {
26
- return new EsriSLS(json);
27
- }
28
- }
29
6
  /** @internal */
30
- export class EsriPMS {
31
- get type() { return this.props.type; }
32
- get url() { return this.props.url; }
33
- get imageData() { return this.props.imageData; }
34
- get imageUrl() { return `data:${this.contentType};base64,${this.imageData}`; }
35
- get image() { return this._image; }
36
- get contentType() { return this.props.contentType; }
37
- get width() { return this.props.width; }
38
- get height() { return this.props.height; }
39
- get xoffset() { return this.props.xoffset; }
40
- get yoffset() { return this.props.yoffset; }
41
- get angle() { return this.props.angle; }
42
- constructor(json) {
43
- this.props = json;
44
- this._image = new Image();
45
- this._image.src = this.imageUrl;
46
- }
47
- static fromJSON(json) {
48
- return new EsriPMS(json);
49
- }
50
- }
7
+ const loggerCategory = "MapLayersFormats.ArcGISFeature";
51
8
  /** @internal */
52
- export class EsriSFS {
53
- get color() { return colorFromArray(this.props.color); }
54
- get type() { return this.props.type; }
55
- get style() { return this.props.style; }
56
- get outline() { return this._outline; }
57
- constructor(json) {
58
- this.props = json;
59
- if (json.outline)
60
- this._outline = EsriSLS.fromJSON(json.outline);
61
- }
62
- static fromJSON(json) {
63
- return new EsriSFS(json);
9
+ export class ArcGisSymbologyRenderer {
10
+ static create(renderer, defaultSymbol) {
11
+ if (renderer?.type === "uniqueValue") {
12
+ return new ArcGisUniqueValueSymbologyRenderer(renderer, defaultSymbol);
13
+ }
14
+ else {
15
+ return new ArcGisSimpleSymbologyRenderer(renderer, defaultSymbol);
16
+ }
64
17
  }
65
18
  }
66
19
  /** @internal */
67
- class ArcGisSymbologyRenderer {
68
- constructor(geometryType, rendererDefinition) {
69
- let symbol;
70
- if (rendererDefinition?.symbol !== undefined) {
71
- symbol = rendererDefinition.symbol;
72
- }
73
- else if (rendererDefinition?.defaultSymbol !== undefined) {
74
- symbol = rendererDefinition?.defaultSymbol;
20
+ export class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyRenderer {
21
+ isAttributeDriven() { return false; }
22
+ get symbol() { return this._symbol; }
23
+ get defaultSymbol() { return this._defaultSymbol; }
24
+ constructor(renderer, defaultSymbol) {
25
+ super();
26
+ this.lineWidthScaleFactor = 2; // This is value is empirical, this might need to be adjusted
27
+ this._defaultSymbol = defaultSymbol;
28
+ this.renderer = renderer;
29
+ if (this.renderer?.type === "simple") {
30
+ this._symbol = this.renderer.symbol;
75
31
  }
76
- if (symbol !== undefined) {
77
- if (symbol.type === "esriSFS") {
78
- this._symbol = EsriSFS.fromJSON(symbol);
79
- }
80
- else if (symbol.type === "esriSLS") {
81
- this._symbol = EsriSLS.fromJSON(symbol);
82
- }
83
- else if (symbol.type === "esriPMS") {
84
- this._symbol = EsriPMS.fromJSON(symbol);
85
- }
86
- }
87
- // If '_symbol' is still undefined at this point, that means we could not find
88
- // any symbology definition from the metadata, let's use some default symbology
89
- // so that we display at least something.
90
- if (this._symbol === undefined) {
91
- Logger.logWarning(loggerCategory, "Symbology definition not supported, using default symbology");
92
- if (geometryType === "esriGeometryPoint" || geometryType === "esriGeometryMultipoint") {
93
- this._symbol = EsriPMS.fromJSON(ArcGisSymbologyRenderer.defaultPMS);
94
- }
95
- else if (geometryType === "esriGeometryLine" || geometryType === "esriGeometryPolyline") {
96
- this._symbol = EsriSLS.fromJSON(ArcGisSymbologyRenderer.defaultSLS);
97
- }
98
- else if (geometryType === "esriGeometryPolygon") {
99
- this._symbol = EsriSFS.fromJSON(ArcGisSymbologyRenderer.defaultSFS);
100
- }
101
- else {
102
- Logger.logError(loggerCategory, "Could not determine default symbology: geometry type not supported");
103
- }
32
+ else {
33
+ this._symbol = defaultSymbol;
104
34
  }
105
35
  }
106
36
  applyFillStyle(context) {
107
37
  if (!context)
108
38
  return;
109
- if (this._symbol?.type === "esriSFS") {
39
+ const fillColor = this.getFillColor();
40
+ if (fillColor) {
41
+ context.fillStyle = fillColor.toRgbaString();
42
+ }
43
+ else {
44
+ Logger.logTrace(loggerCategory, `Could not apply fill style`);
45
+ }
46
+ }
47
+ getFillColor() {
48
+ let fillColor;
49
+ if (this._symbol.type === "esriSFS") {
110
50
  const sfs = this._symbol;
111
- if (sfs.style === "esriSFSSolid" && sfs.color) {
112
- context.fillStyle = sfs.color.toRgbaString();
113
- }
114
- else {
115
- context.fillStyle = ColorDef.from(200, 0, 0, 100).toRgbaString(); // default color is red?
51
+ if (sfs.color) {
52
+ fillColor = sfs.color;
116
53
  }
117
54
  }
55
+ return fillColor;
118
56
  }
119
57
  applyStrokeStyle(context) {
120
58
  if (!context)
121
59
  return;
60
+ // Stroke style can be from SFS's outline style or a SLS's color
122
61
  let sls;
123
- if (this._symbol?.type === "esriSFS") {
62
+ if (this._symbol.type === "esriSFS") {
124
63
  const sfs = this._symbol;
125
64
  if (sfs.outline && sfs.outline.style === "esriSLSSolid") {
126
65
  sls = sfs.outline;
127
66
  }
128
67
  }
129
- else if (this._symbol?.type === "esriSLS") {
68
+ else if (this._symbol.type === "esriSLS") {
130
69
  sls = this._symbol;
131
70
  }
132
71
  if (sls) {
133
72
  if (sls.color)
134
73
  context.strokeStyle = sls.color.toRgbaString();
135
- context.lineWidth = sls.width; // TODO: Should we scale this value here?
74
+ context.lineWidth = sls.width * this.lineWidthScaleFactor;
75
+ }
76
+ else {
77
+ Logger.logTrace(loggerCategory, `Could not apply stroke style`);
136
78
  }
137
79
  }
138
80
  drawPoint(context, ptX, ptY) {
139
81
  if (!context)
140
82
  return;
141
- if (this._symbol?.type === "esriPMS") {
83
+ if (this._symbol.type === "esriPMS") {
142
84
  const pms = this._symbol;
143
85
  let xOffset = 0, yOffset = 0;
144
86
  if (pms.xoffset)
@@ -159,26 +101,44 @@ class ArcGisSymbologyRenderer {
159
101
  }
160
102
  }
161
103
  }
162
- ArcGisSymbologyRenderer.defaultPMS = {
163
- type: "esriPMS",
164
- url: "",
165
- contentType: "image/png",
166
- 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",
167
- width: 16,
168
- height: 16,
169
- xoffset: -8,
170
- yoffset: -16,
171
- };
172
- ArcGisSymbologyRenderer.defaultSLS = {
173
- type: "esriSLS",
174
- color: [0, 0, 0, 255],
175
- width: 1,
176
- style: "esriSLSSolid",
177
- };
178
- ArcGisSymbologyRenderer.defaultSFS = {
179
- type: "esriSFS",
180
- color: [0, 0, 0, 255],
181
- style: "esriSFSSolid",
182
- };
183
- export { ArcGisSymbologyRenderer };
104
+ /** @internal */
105
+ export class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer {
106
+ isAttributeDriven() { return true; }
107
+ get rendererFields() {
108
+ if (this.uvRenderer.field1)
109
+ return [this.uvRenderer.field1];
110
+ else
111
+ return undefined;
112
+ }
113
+ constructor(renderer, defaultSymbol) {
114
+ super(renderer, defaultSymbol);
115
+ this.uvRenderer = this.renderer;
116
+ if (this.uvRenderer.defaultSymbol) {
117
+ this._defaultSymbol = this.uvRenderer.defaultSymbol;
118
+ this._symbol = this.defaultSymbol;
119
+ }
120
+ }
121
+ setActiveFeatureAttributes(attributes) {
122
+ this._activeFeatureAttributes = attributes;
123
+ let newSymbolApplied = false;
124
+ if (this._activeFeatureAttributes) {
125
+ if (this.uvRenderer.field1 && Object.keys(this._activeFeatureAttributes).includes(this.uvRenderer.field1)) {
126
+ const queryValue = this._activeFeatureAttributes[this.uvRenderer.field1];
127
+ for (const uvi of this.uvRenderer.uniqueValueInfos) {
128
+ // Strangely, ArcGIS documentation says 'value' is a string,
129
+ // not too sure if a comparison on other types is possible, or its always forced to string properties?
130
+ if (uvi.value === queryValue.toString()) {
131
+ this._symbol = uvi.symbol;
132
+ newSymbolApplied = true;
133
+ break;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ // Fallback to default symbology to make sure we render something
139
+ if (!newSymbolApplied) {
140
+ this._symbol = this.defaultSymbol;
141
+ }
142
+ }
143
+ }
184
144
  //# sourceMappingURL=ArcGisSymbologyRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisSymbologyRenderer.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.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 { 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":"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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 { Logger } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { EsriPMS, EsriRenderer, EsriSFS, EsriSimpleRenderer, EsriSLS, EsriSymbol, EsriUniqueValueRenderer } from \"./EsriSymbology\";\r\nimport { ArcGisAttributeDrivenSymbology } from \"@itwin/core-frontend\";\r\n\r\n/** @internal */\r\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\r\n\r\n/** @internal */\r\nexport type ArcGisSymbologyRendererType = \"simple\" | \"attributeDriven\";\r\n\r\n/** @internal */\r\nexport abstract class ArcGisSymbologyRenderer {\r\n public abstract isAttributeDriven(): this is ArcGisAttributeDrivenSymbology;\r\n public abstract applyFillStyle(context: CanvasRenderingContext2D): void;\r\n public abstract applyStrokeStyle(context: CanvasRenderingContext2D): void;\r\n public abstract drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;\r\n\r\n public static create(renderer: EsriRenderer|undefined, defaultSymbol: EsriSymbol) {\r\n if (renderer?.type === \"uniqueValue\") {\r\n return new ArcGisUniqueValueSymbologyRenderer(renderer as EsriUniqueValueRenderer, defaultSymbol);\r\n } else {\r\n return new ArcGisSimpleSymbologyRenderer(renderer, defaultSymbol);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyRenderer {\r\n public override isAttributeDriven(): this is ArcGisAttributeDrivenSymbology {return false;}\r\n public lineWidthScaleFactor = 2; // This is value is empirical, this might need to be adjusted\r\n\r\n public get symbol() {return this._symbol;}\r\n public get defaultSymbol() {return this._defaultSymbol;}\r\n protected _symbol: EsriSymbol;\r\n protected _defaultSymbol: EsriSymbol;\r\n\r\n public readonly renderer?: EsriRenderer;\r\n\r\n public constructor(renderer: EsriRenderer|undefined, defaultSymbol: EsriSymbol) {\r\n super();\r\n this._defaultSymbol = defaultSymbol;\r\n this.renderer = renderer;\r\n\r\n if (this.renderer?.type === \"simple\") {\r\n this._symbol = (this.renderer as EsriSimpleRenderer).symbol;\r\n } else {\r\n this._symbol = defaultSymbol;\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 const fillColor = this.getFillColor();\r\n if (fillColor) {\r\n context.fillStyle = fillColor.toRgbaString();\r\n } else {\r\n Logger.logTrace(loggerCategory, `Could not apply fill style`);\r\n }\r\n }\r\n\r\n private getFillColor() {\r\n let fillColor: ColorDef | undefined;\r\n if (this._symbol.type === \"esriSFS\") {\r\n const sfs = this._symbol as EsriSFS;\r\n if (sfs.color) {\r\n fillColor = sfs.color;\r\n }\r\n }\r\n\r\n return fillColor;\r\n }\r\n\r\n public applyStrokeStyle(context: CanvasRenderingContext2D) {\r\n if (!context)\r\n return;\r\n\r\n // Stroke style can be from SFS's outline style or a SLS's color\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 * this.lineWidthScaleFactor;\r\n } else {\r\n Logger.logTrace(loggerCategory, `Could not apply stroke style`);\r\n }\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\r\n/** @internal */\r\nexport class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements ArcGisAttributeDrivenSymbology {\r\n public override isAttributeDriven(): this is ArcGisAttributeDrivenSymbology {return true;}\r\n protected _activeFeatureAttributes: {[key: string]: any} | undefined;\r\n protected uvRenderer: EsriUniqueValueRenderer;\r\n\r\n public get rendererFields() {\r\n if (this.uvRenderer.field1)\r\n return [this.uvRenderer.field1];\r\n else\r\n return undefined;\r\n }\r\n\r\n public constructor(renderer: EsriUniqueValueRenderer, defaultSymbol: EsriSymbol) {\r\n super(renderer, defaultSymbol);\r\n\r\n this.uvRenderer = (this.renderer as EsriUniqueValueRenderer);\r\n if (this.uvRenderer.defaultSymbol) {\r\n this._defaultSymbol = this.uvRenderer.defaultSymbol;\r\n this._symbol = this.defaultSymbol;\r\n }\r\n }\r\n\r\n public setActiveFeatureAttributes(attributes: { [key: string]: any }) {\r\n this._activeFeatureAttributes = attributes;\r\n\r\n let newSymbolApplied = false;\r\n if (this._activeFeatureAttributes) {\r\n if (this.uvRenderer.field1 && Object.keys(this._activeFeatureAttributes).includes(this.uvRenderer.field1)) {\r\n\r\n const queryValue = this._activeFeatureAttributes[this.uvRenderer.field1];\r\n\r\n for (const uvi of this.uvRenderer.uniqueValueInfos) {\r\n // Strangely, ArcGIS documentation says 'value' is a string,\r\n // not too sure if a comparison on other types is possible, or its always forced to string properties?\r\n if (uvi.value === queryValue.toString()) {\r\n this._symbol = uvi.symbol;\r\n newSymbolApplied = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Fallback to default symbology to make sure we render something\r\n if (!newSymbolApplied) {\r\n this._symbol = this.defaultSymbol;\r\n }\r\n }\r\n}\r\n"]}