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