@itwin/core-backend 5.11.0-dev.8 → 5.11.0

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 (561) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +1 -1
  3. package/lib/cjs/BackendHubAccess.js +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.js.map +1 -1
  7. package/lib/cjs/BlobContainerService.d.ts +14 -1
  8. package/lib/cjs/BlobContainerService.d.ts.map +1 -1
  9. package/lib/cjs/BlobContainerService.js.map +1 -1
  10. package/lib/cjs/BriefcaseManager.d.ts +3 -1
  11. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  12. package/lib/cjs/BriefcaseManager.js +3 -3
  13. package/lib/cjs/BriefcaseManager.js.map +1 -1
  14. package/lib/cjs/CatalogDb.js.map +1 -1
  15. package/lib/cjs/Category.js.map +1 -1
  16. package/lib/cjs/ChangeSummaryManager.js +2 -2
  17. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  18. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  19. package/lib/cjs/ChangesetECAdaptor.js +248 -248
  20. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  21. package/lib/cjs/ChangesetReader.js +3 -3
  22. package/lib/cjs/ChangesetReader.js.map +1 -1
  23. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  24. package/lib/cjs/ChannelControl.js.map +1 -1
  25. package/lib/cjs/CheckpointManager.js.map +1 -1
  26. package/lib/cjs/ClassRegistry.d.ts +1 -1
  27. package/lib/cjs/ClassRegistry.js +6 -6
  28. package/lib/cjs/ClassRegistry.js.map +1 -1
  29. package/lib/cjs/CloudSqlite.d.ts +1 -1
  30. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  31. package/lib/cjs/CloudSqlite.js +4 -1
  32. package/lib/cjs/CloudSqlite.js.map +1 -1
  33. package/lib/cjs/CodeService.js.map +1 -1
  34. package/lib/cjs/CodeSpecs.js.map +1 -1
  35. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  36. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  37. package/lib/cjs/DevTools.js.map +1 -1
  38. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  39. package/lib/cjs/DisplayStyle.js +4 -8
  40. package/lib/cjs/DisplayStyle.js.map +1 -1
  41. package/lib/cjs/ECDb.d.ts +4 -4
  42. package/lib/cjs/ECDb.d.ts.map +1 -1
  43. package/lib/cjs/ECDb.js +4 -4
  44. package/lib/cjs/ECDb.js.map +1 -1
  45. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  46. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  47. package/lib/cjs/ECSqlStatement.d.ts +6 -6
  48. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  49. package/lib/cjs/ECSqlStatement.js +4 -4
  50. package/lib/cjs/ECSqlStatement.js.map +1 -1
  51. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  52. package/lib/cjs/EditTxn.d.ts +56 -1
  53. package/lib/cjs/EditTxn.d.ts.map +1 -1
  54. package/lib/cjs/EditTxn.js +138 -0
  55. package/lib/cjs/EditTxn.js.map +1 -1
  56. package/lib/cjs/Element.d.ts +1 -1
  57. package/lib/cjs/Element.js +1 -1
  58. package/lib/cjs/Element.js.map +1 -1
  59. package/lib/cjs/ElementAspect.d.ts +1 -1
  60. package/lib/cjs/ElementAspect.js +1 -1
  61. package/lib/cjs/ElementAspect.js.map +1 -1
  62. package/lib/cjs/ElementGraphics.js.map +1 -1
  63. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  64. package/lib/cjs/Entity.d.ts +1 -1
  65. package/lib/cjs/Entity.js +1 -1
  66. package/lib/cjs/Entity.js.map +1 -1
  67. package/lib/cjs/EntityReferences.js.map +1 -1
  68. package/lib/cjs/ExportGraphics.js.map +1 -1
  69. package/lib/cjs/ExternalSource.js.map +1 -1
  70. package/lib/cjs/FontFile.js.map +1 -1
  71. package/lib/cjs/GeoCoordConfig.d.ts +6 -0
  72. package/lib/cjs/GeoCoordConfig.d.ts.map +1 -1
  73. package/lib/cjs/GeoCoordConfig.js +6 -0
  74. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  75. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  76. package/lib/cjs/GeometrySummary.js +47 -47
  77. package/lib/cjs/GeometrySummary.js.map +1 -1
  78. package/lib/cjs/IModelDb.d.ts +54 -14
  79. package/lib/cjs/IModelDb.d.ts.map +1 -1
  80. package/lib/cjs/IModelDb.js +40 -22
  81. package/lib/cjs/IModelDb.js.map +1 -1
  82. package/lib/cjs/IModelDbFonts.js.map +1 -1
  83. package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
  84. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  85. package/lib/cjs/IModelElementCloneContext.js +1 -1
  86. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  87. package/lib/cjs/IModelHost.d.ts +7 -5
  88. package/lib/cjs/IModelHost.d.ts.map +1 -1
  89. package/lib/cjs/IModelHost.js +2 -2
  90. package/lib/cjs/IModelHost.js.map +1 -1
  91. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  92. package/lib/cjs/IModelJsFs.js.map +1 -1
  93. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  94. package/lib/cjs/IpcHost.js.map +1 -1
  95. package/lib/cjs/LineStyle.js.map +1 -1
  96. package/lib/cjs/LocalHub.js +1 -1
  97. package/lib/cjs/LocalHub.js.map +1 -1
  98. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  99. package/lib/cjs/LockControl.js.map +1 -1
  100. package/lib/cjs/Material.js.map +1 -1
  101. package/lib/cjs/Model.js.map +1 -1
  102. package/lib/cjs/NativeAppStorage.js.map +1 -1
  103. package/lib/cjs/NativeHost.js +1 -1
  104. package/lib/cjs/NativeHost.js.map +1 -1
  105. package/lib/cjs/NavigationRelationship.js.map +1 -1
  106. package/lib/cjs/PartialChangeUnifier.js +7 -7
  107. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  108. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  109. package/lib/cjs/PropertyStore.js.map +1 -1
  110. package/lib/cjs/Relationship.js.map +1 -1
  111. package/lib/cjs/RpcBackend.js.map +1 -1
  112. package/lib/cjs/SQLiteDb.d.ts +1 -1
  113. package/lib/cjs/SQLiteDb.js +1 -1
  114. package/lib/cjs/SQLiteDb.js.map +1 -1
  115. package/lib/cjs/Schema.js.map +1 -1
  116. package/lib/cjs/SchemaSync.js.map +1 -1
  117. package/lib/cjs/SchemaUtils.js.map +1 -1
  118. package/lib/cjs/SheetIndex.js.map +1 -1
  119. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  120. package/lib/cjs/SqliteStatement.d.ts +1 -1
  121. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  122. package/lib/cjs/SqliteStatement.js +1 -1
  123. package/lib/cjs/SqliteStatement.js.map +1 -1
  124. package/lib/cjs/StashManager.js.map +1 -1
  125. package/lib/cjs/Texture.js.map +1 -1
  126. package/lib/cjs/TileStorage.js.map +1 -1
  127. package/lib/cjs/TxnManager.js.map +1 -1
  128. package/lib/cjs/ViewDefinition.js.map +1 -1
  129. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  130. package/lib/cjs/ViewStore.js.map +1 -1
  131. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  132. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  133. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  134. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  135. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  136. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  137. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  138. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  139. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  140. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  141. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  142. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  143. package/lib/cjs/core-backend.js.map +1 -1
  144. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  145. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  146. package/lib/cjs/domains/GenericElements.js.map +1 -1
  147. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  148. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  149. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  150. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  151. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  152. package/lib/cjs/internal/HubMock.js.map +1 -1
  153. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  154. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  155. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  156. package/lib/cjs/internal/NoLocks.js.map +1 -1
  157. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  158. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  159. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  160. package/lib/cjs/internal/Symbols.js.map +1 -1
  161. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  162. package/lib/cjs/internal/cross-package.js.map +1 -1
  163. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  164. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  165. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  166. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  167. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  168. package/lib/cjs/rpc/multipart.js.map +1 -1
  169. package/lib/cjs/rpc/tracing.js.map +1 -1
  170. package/lib/cjs/rpc/web/logging.js.map +1 -1
  171. package/lib/cjs/rpc/web/request.js.map +1 -1
  172. package/lib/cjs/rpc/web/response.js.map +1 -1
  173. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  174. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  175. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  176. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  177. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  178. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  179. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  180. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  181. package/lib/cjs/workspace/Settings.js.map +1 -1
  182. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  183. package/lib/cjs/workspace/SettingsEditor.d.ts +4 -9
  184. package/lib/cjs/workspace/SettingsEditor.d.ts.map +1 -1
  185. package/lib/cjs/workspace/SettingsEditor.js +31 -15
  186. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  187. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  188. package/lib/cjs/workspace/Workspace.js.map +1 -1
  189. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  190. package/lib/esm/BackendHubAccess.d.ts +1 -1
  191. package/lib/esm/BackendHubAccess.js +1 -1
  192. package/lib/esm/BackendHubAccess.js.map +1 -1
  193. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  194. package/lib/esm/BisCoreSchema.js.map +1 -1
  195. package/lib/esm/BlobContainerService.d.ts +14 -1
  196. package/lib/esm/BlobContainerService.d.ts.map +1 -1
  197. package/lib/esm/BlobContainerService.js.map +1 -1
  198. package/lib/esm/BriefcaseManager.d.ts +3 -1
  199. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  200. package/lib/esm/BriefcaseManager.js +3 -3
  201. package/lib/esm/BriefcaseManager.js.map +1 -1
  202. package/lib/esm/CatalogDb.js.map +1 -1
  203. package/lib/esm/Category.js.map +1 -1
  204. package/lib/esm/ChangeSummaryManager.js +2 -2
  205. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  206. package/lib/esm/ChangedElementsDb.js.map +1 -1
  207. package/lib/esm/ChangesetECAdaptor.js +248 -248
  208. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  209. package/lib/esm/ChangesetReader.js +3 -3
  210. package/lib/esm/ChangesetReader.js.map +1 -1
  211. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  212. package/lib/esm/ChannelControl.js.map +1 -1
  213. package/lib/esm/CheckpointManager.js.map +1 -1
  214. package/lib/esm/ClassRegistry.d.ts +1 -1
  215. package/lib/esm/ClassRegistry.js +6 -6
  216. package/lib/esm/ClassRegistry.js.map +1 -1
  217. package/lib/esm/CloudSqlite.d.ts +1 -1
  218. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  219. package/lib/esm/CloudSqlite.js +4 -1
  220. package/lib/esm/CloudSqlite.js.map +1 -1
  221. package/lib/esm/CodeService.js.map +1 -1
  222. package/lib/esm/CodeSpecs.js.map +1 -1
  223. package/lib/esm/ConcurrentQuery.js.map +1 -1
  224. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  225. package/lib/esm/DevTools.js.map +1 -1
  226. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  227. package/lib/esm/DisplayStyle.js +4 -8
  228. package/lib/esm/DisplayStyle.js.map +1 -1
  229. package/lib/esm/ECDb.d.ts +4 -4
  230. package/lib/esm/ECDb.d.ts.map +1 -1
  231. package/lib/esm/ECDb.js +4 -4
  232. package/lib/esm/ECDb.js.map +1 -1
  233. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  234. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  235. package/lib/esm/ECSqlStatement.d.ts +6 -6
  236. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  237. package/lib/esm/ECSqlStatement.js +4 -4
  238. package/lib/esm/ECSqlStatement.js.map +1 -1
  239. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  240. package/lib/esm/EditTxn.d.ts +56 -1
  241. package/lib/esm/EditTxn.d.ts.map +1 -1
  242. package/lib/esm/EditTxn.js +140 -2
  243. package/lib/esm/EditTxn.js.map +1 -1
  244. package/lib/esm/Element.d.ts +1 -1
  245. package/lib/esm/Element.js +1 -1
  246. package/lib/esm/Element.js.map +1 -1
  247. package/lib/esm/ElementAspect.d.ts +1 -1
  248. package/lib/esm/ElementAspect.js +1 -1
  249. package/lib/esm/ElementAspect.js.map +1 -1
  250. package/lib/esm/ElementGraphics.js.map +1 -1
  251. package/lib/esm/ElementTreeWalker.js.map +1 -1
  252. package/lib/esm/Entity.d.ts +1 -1
  253. package/lib/esm/Entity.js +1 -1
  254. package/lib/esm/Entity.js.map +1 -1
  255. package/lib/esm/EntityReferences.js.map +1 -1
  256. package/lib/esm/ExportGraphics.js.map +1 -1
  257. package/lib/esm/ExternalSource.js.map +1 -1
  258. package/lib/esm/FontFile.js.map +1 -1
  259. package/lib/esm/GeoCoordConfig.d.ts +6 -0
  260. package/lib/esm/GeoCoordConfig.d.ts.map +1 -1
  261. package/lib/esm/GeoCoordConfig.js +6 -0
  262. package/lib/esm/GeoCoordConfig.js.map +1 -1
  263. package/lib/esm/GeographicCRSServices.js.map +1 -1
  264. package/lib/esm/GeometrySummary.js +47 -47
  265. package/lib/esm/GeometrySummary.js.map +1 -1
  266. package/lib/esm/IModelDb.d.ts +54 -14
  267. package/lib/esm/IModelDb.d.ts.map +1 -1
  268. package/lib/esm/IModelDb.js +40 -22
  269. package/lib/esm/IModelDb.js.map +1 -1
  270. package/lib/esm/IModelDbFonts.js.map +1 -1
  271. package/lib/esm/IModelElementCloneContext.d.ts +1 -1
  272. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
  273. package/lib/esm/IModelElementCloneContext.js +1 -1
  274. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  275. package/lib/esm/IModelHost.d.ts +7 -5
  276. package/lib/esm/IModelHost.d.ts.map +1 -1
  277. package/lib/esm/IModelHost.js +2 -2
  278. package/lib/esm/IModelHost.js.map +1 -1
  279. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  280. package/lib/esm/IModelJsFs.js.map +1 -1
  281. package/lib/esm/ImageSourceConversion.js.map +1 -1
  282. package/lib/esm/IpcHost.js.map +1 -1
  283. package/lib/esm/LineStyle.js.map +1 -1
  284. package/lib/esm/LocalHub.js +1 -1
  285. package/lib/esm/LocalHub.js.map +1 -1
  286. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  287. package/lib/esm/LockControl.js.map +1 -1
  288. package/lib/esm/Material.js.map +1 -1
  289. package/lib/esm/Model.js.map +1 -1
  290. package/lib/esm/NativeAppStorage.js.map +1 -1
  291. package/lib/esm/NativeHost.js +1 -1
  292. package/lib/esm/NativeHost.js.map +1 -1
  293. package/lib/esm/NavigationRelationship.js.map +1 -1
  294. package/lib/esm/PartialChangeUnifier.js +7 -7
  295. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  296. package/lib/esm/PromiseMemoizer.js.map +1 -1
  297. package/lib/esm/PropertyStore.js.map +1 -1
  298. package/lib/esm/Relationship.js.map +1 -1
  299. package/lib/esm/RpcBackend.js.map +1 -1
  300. package/lib/esm/SQLiteDb.d.ts +1 -1
  301. package/lib/esm/SQLiteDb.js +1 -1
  302. package/lib/esm/SQLiteDb.js.map +1 -1
  303. package/lib/esm/Schema.js.map +1 -1
  304. package/lib/esm/SchemaSync.js.map +1 -1
  305. package/lib/esm/SchemaUtils.js.map +1 -1
  306. package/lib/esm/SheetIndex.js.map +1 -1
  307. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  308. package/lib/esm/SqliteStatement.d.ts +1 -1
  309. package/lib/esm/SqliteStatement.d.ts.map +1 -1
  310. package/lib/esm/SqliteStatement.js +1 -1
  311. package/lib/esm/SqliteStatement.js.map +1 -1
  312. package/lib/esm/StashManager.js.map +1 -1
  313. package/lib/esm/Texture.js.map +1 -1
  314. package/lib/esm/TileStorage.js.map +1 -1
  315. package/lib/esm/TxnManager.js.map +1 -1
  316. package/lib/esm/ViewDefinition.js.map +1 -1
  317. package/lib/esm/ViewStateHydrator.js.map +1 -1
  318. package/lib/esm/ViewStore.js.map +1 -1
  319. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  320. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  321. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  322. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  323. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  324. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  325. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  326. package/lib/esm/core-backend.js.map +1 -1
  327. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  328. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  329. package/lib/esm/domains/GenericElements.js.map +1 -1
  330. package/lib/esm/domains/GenericSchema.js.map +1 -1
  331. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  332. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  333. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  334. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  335. package/lib/esm/internal/HubMock.js.map +1 -1
  336. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  337. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  338. package/lib/esm/internal/NativePlatform.js.map +1 -1
  339. package/lib/esm/internal/NoLocks.js.map +1 -1
  340. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  341. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  342. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  343. package/lib/esm/internal/Symbols.js.map +1 -1
  344. package/lib/esm/internal/annotations/fields.js.map +1 -1
  345. package/lib/esm/internal/cross-package.js.map +1 -1
  346. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  347. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  348. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  349. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  350. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  351. package/lib/esm/rpc/multipart.js.map +1 -1
  352. package/lib/esm/rpc/tracing.js.map +1 -1
  353. package/lib/esm/rpc/web/logging.js.map +1 -1
  354. package/lib/esm/rpc/web/request.js.map +1 -1
  355. package/lib/esm/rpc/web/response.js.map +1 -1
  356. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  357. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  358. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  359. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  360. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  361. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  362. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  363. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  364. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  365. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  366. package/lib/esm/test/AttachDb.test.js +11 -11
  367. package/lib/esm/test/AttachDb.test.js.map +1 -1
  368. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  369. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  370. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  371. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  372. package/lib/esm/test/IModelHost.test.js.map +1 -1
  373. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  374. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  375. package/lib/esm/test/IpcHost.test.js.map +1 -1
  376. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  377. package/lib/esm/test/PrintElementTree.js.map +1 -1
  378. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  379. package/lib/esm/test/RevisionUtility.js.map +1 -1
  380. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  381. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  382. package/lib/esm/test/SchemaUtils.test.js +25 -25
  383. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  384. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  385. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  386. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  387. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  388. package/lib/esm/test/TestEditTxn.js.map +1 -1
  389. package/lib/esm/test/TestUtils.d.ts +18 -3
  390. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  391. package/lib/esm/test/TestUtils.js +22 -3
  392. package/lib/esm/test/TestUtils.js.map +1 -1
  393. package/lib/esm/test/annotations/Fields.test.js +53 -53
  394. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  395. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  396. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  397. package/lib/esm/test/annotations/TextAnnotation.test.js +81 -16
  398. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  399. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  400. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  401. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  402. package/lib/esm/test/categories/Category.test.js.map +1 -1
  403. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  404. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  405. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  406. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +23 -21
  407. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  408. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  409. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  410. package/lib/esm/test/ecdb/ECDb.test.js +73 -73
  411. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  412. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  413. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  414. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  415. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  416. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  417. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  418. package/lib/esm/test/ecdb/ECSqlStatement.test.js +340 -334
  419. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  420. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  421. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  422. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  423. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  424. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  425. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  426. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  427. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  428. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  429. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  430. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  431. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  432. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  433. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  434. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  435. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  436. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  437. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  438. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  439. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  440. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  441. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  442. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  443. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  444. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  445. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  446. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  447. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  448. package/lib/esm/test/hubaccess/CodeSwap.test.d.ts +2 -0
  449. package/lib/esm/test/hubaccess/CodeSwap.test.d.ts.map +1 -0
  450. package/lib/esm/test/hubaccess/CodeSwap.test.js +431 -0
  451. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -0
  452. package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
  453. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  454. package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
  455. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  456. package/lib/esm/test/imageData.js.map +1 -1
  457. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  458. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  459. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  460. package/lib/esm/test/imodel/IModel.test.js +54 -46
  461. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  462. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  463. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  464. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  465. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  466. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  467. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  468. package/lib/esm/test/index.js.map +1 -1
  469. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  470. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  471. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  472. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  473. package/lib/esm/test/rpc/response.test.js.map +1 -1
  474. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  475. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  476. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  477. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  478. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  479. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  480. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  481. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  482. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  483. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  484. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  485. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  486. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  487. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  488. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  489. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  490. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  491. package/lib/esm/test/standalone/ChangeElementParentModel.test.d.ts +2 -0
  492. package/lib/esm/test/standalone/ChangeElementParentModel.test.d.ts.map +1 -0
  493. package/lib/esm/test/standalone/ChangeElementParentModel.test.js +460 -0
  494. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -0
  495. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  496. package/lib/esm/test/standalone/ChangesetReader.test.js +299 -296
  497. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  498. package/lib/esm/test/standalone/CloudSqlite.test.d.ts +2 -0
  499. package/lib/esm/test/standalone/CloudSqlite.test.d.ts.map +1 -0
  500. package/lib/esm/test/standalone/CloudSqlite.test.js +43 -0
  501. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -0
  502. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  503. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  504. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  505. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  506. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  507. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  508. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  509. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  510. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  511. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  512. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  513. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  514. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  515. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  516. package/lib/esm/test/standalone/IModelWrite.test.js +29 -60
  517. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  518. package/lib/esm/test/standalone/ITwinWorkspace.test.js +118 -1
  519. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  520. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  521. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  522. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  523. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  524. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  525. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  526. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  527. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +135 -135
  528. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  529. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  530. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  531. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  532. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  533. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  534. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  535. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  536. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  537. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  538. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  539. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  540. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  541. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  542. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  543. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  544. package/lib/esm/test/standalone/Workspace.test.js +2 -2
  545. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  546. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  547. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  548. package/lib/esm/workspace/Settings.js.map +1 -1
  549. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  550. package/lib/esm/workspace/SettingsEditor.d.ts +4 -9
  551. package/lib/esm/workspace/SettingsEditor.d.ts.map +1 -1
  552. package/lib/esm/workspace/SettingsEditor.js +31 -15
  553. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  554. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  555. package/lib/esm/workspace/Workspace.js.map +1 -1
  556. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  557. package/package.json +15 -15
  558. package/lib/esm/test/misc/GeoServices.test.d.ts +0 -2
  559. package/lib/esm/test/misc/GeoServices.test.d.ts.map +0 -1
  560. package/lib/esm/test/misc/GeoServices.test.js +0 -918
  561. package/lib/esm/test/misc/GeoServices.test.js.map +0 -1
@@ -1,918 +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 { assert } from "chai";
6
- import { Helmert2DWithZOffset, } from "@itwin/core-common";
7
- import { IModelNative } from "../../internal/NativePlatform";
8
- import { Geometry, Point3d, Range2d } from "@itwin/core-geometry";
9
- import { GeoCoordConfig } from "../../GeoCoordConfig";
10
- import { getAvailableCoordinateReferenceSystems, getAvailableCRSUnits } from "../../GeographicCRSServices";
11
- // spell-checker: disable
12
- describe("GeoServices", () => {
13
- before(() => {
14
- GeoCoordConfig.loadDefaultDatabases();
15
- });
16
- const completionTest = async (incompleteGCS, completeCRS) => {
17
- const requestProps = { format: "JSON", geographicCRSDef: JSON.stringify(incompleteGCS) };
18
- const response = IModelNative.platform.GeoServices.getGeographicCRSInterpretation(requestProps);
19
- assert.isTrue(response.status === 0);
20
- assert.isTrue(response.geographicCRS !== undefined);
21
- if (response.geographicCRS !== undefined) {
22
- assert.isTrue(response.geographicCRS.horizontalCRS !== undefined && completeCRS.horizontalCRS !== undefined);
23
- assert.isTrue(response.geographicCRS.horizontalCRS.id === completeCRS.horizontalCRS.id);
24
- assert.isTrue(response.geographicCRS.horizontalCRS.projection !== undefined && completeCRS.horizontalCRS.projection !== undefined);
25
- assert.isTrue(response.geographicCRS.horizontalCRS.projection.method === completeCRS.horizontalCRS.projection.method);
26
- if (completeCRS.horizontalCRS.projection.falseEasting !== undefined) {
27
- assert.isTrue(response.geographicCRS.horizontalCRS.projection.falseEasting !== undefined);
28
- assert.isTrue(Math.abs(response.geographicCRS.horizontalCRS.projection.falseEasting - completeCRS.horizontalCRS.projection.falseEasting) < Geometry.smallMetricDistance);
29
- }
30
- if (completeCRS.horizontalCRS.projection.falseNorthing !== undefined) {
31
- assert.isTrue(response.geographicCRS.horizontalCRS.projection.falseNorthing !== undefined);
32
- assert.isTrue(Math.abs(response.geographicCRS.horizontalCRS.projection.falseNorthing - completeCRS.horizontalCRS.projection.falseNorthing) < Geometry.smallMetricDistance);
33
- }
34
- assert.isTrue(response.geographicCRS.horizontalCRS.datum !== undefined && completeCRS.horizontalCRS.datum !== undefined);
35
- assert.isTrue(response.geographicCRS.horizontalCRS.datum.id === completeCRS.horizontalCRS.datum.id);
36
- assert.isTrue(response.geographicCRS.horizontalCRS.datum.ellipsoid !== undefined && completeCRS.horizontalCRS.datum.ellipsoid !== undefined);
37
- assert.isTrue(response.geographicCRS.horizontalCRS.datum.ellipsoid.id === completeCRS.horizontalCRS.datum.ellipsoid.id);
38
- if (response.geographicCRS.additionalTransform !== undefined) {
39
- assert.isTrue(completeCRS.additionalTransform !== undefined);
40
- assert.isTrue(response.geographicCRS.additionalTransform.helmert2DWithZOffset !== undefined);
41
- assert.isTrue(completeCRS.additionalTransform.helmert2DWithZOffset !== undefined);
42
- assert.isTrue(Math.abs(response.geographicCRS.additionalTransform.helmert2DWithZOffset.rotDeg - completeCRS.additionalTransform.helmert2DWithZOffset.rotDeg) < Geometry.smallAngleDegrees);
43
- assert.isTrue(Math.abs(response.geographicCRS.additionalTransform.helmert2DWithZOffset.translationX - completeCRS.additionalTransform.helmert2DWithZOffset.translationX) < Geometry.smallMetricDistance);
44
- assert.isTrue(Math.abs(response.geographicCRS.additionalTransform.helmert2DWithZOffset.translationY - completeCRS.additionalTransform.helmert2DWithZOffset.translationY) < Geometry.smallMetricDistance);
45
- assert.isTrue(Math.abs(response.geographicCRS.additionalTransform.helmert2DWithZOffset.translationZ - completeCRS.additionalTransform.helmert2DWithZOffset.translationZ) < Geometry.smallMetricDistance);
46
- assert.isTrue(Math.abs(response.geographicCRS.additionalTransform.helmert2DWithZOffset.scale - completeCRS.additionalTransform.helmert2DWithZOffset.scale) < Geometry.smallFraction);
47
- }
48
- assert.isTrue(response.geographicCRS.verticalCRS !== undefined && completeCRS.verticalCRS !== undefined);
49
- assert.isTrue(response.geographicCRS.verticalCRS.id === completeCRS.verticalCRS.id);
50
- }
51
- };
52
- describe("Interpret to completion an incomplete GeographicCRS", async () => {
53
- it("should be able to interpret to completion britishNationalGridOld", async () => {
54
- const britishNationalGridOld = {
55
- horizontalCRS: {
56
- datum: {
57
- deprecated: true,
58
- description: "OSGB36 - Use OSGB-7P-2. Consider OSGB/OSTN15 instead",
59
- ellipsoid: {
60
- description: "Airy 1830",
61
- equatorialRadius: 6377563.396,
62
- id: "EPSG:7001",
63
- polarRadius: 6356256.909237,
64
- source: "EPSG, Version 6 [EPSG]",
65
- },
66
- ellipsoidId: "EPSG:7001",
67
- id: "EPSG:6277",
68
- source: "EPSG V6.12 operation EPSG:1314 [EPSG]",
69
- transforms: [
70
- {
71
- method: "PositionalVector",
72
- positionalVector: {
73
- delta: {
74
- x: 446.448,
75
- y: -125.157,
76
- z: 542.06,
77
- },
78
- rotation: {
79
- x: 0.15,
80
- y: 0.247,
81
- z: 0.842,
82
- },
83
- scalePPM: -20.489,
84
- },
85
- sourceEllipsoid: {
86
- equatorialRadius: 6377563.396,
87
- id: "EPSG:7001",
88
- polarRadius: 6356256.909237,
89
- },
90
- targetEllipsoid: {
91
- equatorialRadius: 6378137,
92
- id: "WGS84",
93
- polarRadius: 6356752.3142,
94
- },
95
- }
96
- ],
97
- },
98
- datumId: "EPSG:6277",
99
- deprecated: true,
100
- description: "Use other variant - OSGB British National Grid",
101
- extent: {
102
- northEast: {
103
- latitude: 60.84,
104
- longitude: 1.78,
105
- },
106
- southWest: {
107
- latitude: 49.96,
108
- longitude: -7.56,
109
- },
110
- },
111
- id: "EPSG:27700",
112
- projection: {
113
- centralMeridian: -2,
114
- falseEasting: 400000,
115
- falseNorthing: -100000,
116
- latitudeOfOrigin: 49,
117
- method: "TransverseMercator",
118
- scaleFactor: 0.999601272737422,
119
- },
120
- source: "EPSG",
121
- unit: "Meter",
122
- },
123
- verticalCRS: {
124
- id: "ELLIPSOID",
125
- },
126
- };
127
- await completionTest({ horizontalCRS: { id: "EPSG:27700" }, verticalCRS: { id: "ELLIPSOID" } }, britishNationalGridOld);
128
- });
129
- it("should be able to interpret to completion EWRGCS", async () => {
130
- const EWRGCS = {
131
- horizontalCRS: {
132
- id: "EPSG:27700",
133
- description: "OSGB 1936 / British National Grid",
134
- source: "EPSG V6 [Large and medium scale topographic mapping and engin]",
135
- datumId: "EPSG:6277",
136
- datum: {
137
- id: "EPSG:6277",
138
- description: "OSGB36 - Use OSGB-7P-2. Consider OSGB/OSTN15 instead",
139
- deprecated: true,
140
- source: "EPSG V6.12 operation EPSG:1314 [EPSG]",
141
- ellipsoidId: "EPSG:7001",
142
- ellipsoid: {
143
- equatorialRadius: 6377563.396,
144
- polarRadius: 6356256.909237,
145
- id: "EPSG:7001",
146
- description: "Airy 1830",
147
- source: "EPSG, Version 6 [EPSG]",
148
- },
149
- transforms: [
150
- {
151
- method: "PositionalVector",
152
- sourceEllipsoid: {
153
- equatorialRadius: 6377563.396,
154
- polarRadius: 6356256.909237,
155
- id: "EPSG:7001",
156
- },
157
- targetEllipsoid: {
158
- equatorialRadius: 6378137,
159
- polarRadius: 6356752.3142,
160
- id: "WGS84",
161
- },
162
- positionalVector: {
163
- delta: {
164
- x: 446.448,
165
- y: -125.157,
166
- z: 542.06,
167
- },
168
- rotation: {
169
- x: 0.15,
170
- y: 0.247,
171
- z: 0.842,
172
- },
173
- scalePPM: -20.489,
174
- },
175
- }
176
- ],
177
- },
178
- unit: "Meter",
179
- projection: {
180
- method: "TransverseMercator",
181
- falseEasting: 400000,
182
- falseNorthing: -100000,
183
- centralMeridian: -2,
184
- latitudeOfOrigin: 49,
185
- scaleFactor: 0.999601272737422,
186
- },
187
- extent: {
188
- southWest: {
189
- latitude: 49.96,
190
- longitude: -7.56,
191
- },
192
- northEast: {
193
- latitude: 60.84,
194
- longitude: 1.78,
195
- },
196
- },
197
- },
198
- verticalCRS: {
199
- id: "ELLIPSOID",
200
- },
201
- additionalTransform: {
202
- helmert2DWithZOffset: {
203
- translationX: 284597.3343,
204
- translationY: 79859.4651,
205
- translationZ: 0,
206
- rotDeg: 0.5263624458992088,
207
- scale: 0.9996703340508721,
208
- },
209
- },
210
- };
211
- await completionTest({ horizontalCRS: { id: "EPSG:27700" }, verticalCRS: { id: "ELLIPSOID" }, additionalTransform: { helmert2DWithZOffset: { translationX: 284597.3343, translationY: 79859.4651, translationZ: 0, rotDeg: 0.5263624458992088, scale: 0.9996703340508721 } } }, EWRGCS);
212
- });
213
- it("should be able to interpret to completion UTM27Z10", async () => {
214
- const UTM27Z10 = {
215
- horizontalCRS: {
216
- datum: {
217
- description: "North American Datum of 1927 (US48, AK, HI, and Canada)",
218
- ellipsoid: {
219
- description: "Clarke 1866, Benoit Ratio",
220
- epsg: 7008,
221
- equatorialRadius: 6378206.4,
222
- id: "CLRK66",
223
- polarRadius: 6356583.8,
224
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
225
- },
226
- ellipsoidId: "CLRK66",
227
- epsg: 6267,
228
- id: "NAD27",
229
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
230
- transforms: [
231
- {
232
- gridFile: {
233
- files: [
234
- {
235
- direction: "Direct",
236
- fileName: "./Usa/Nadcon/conus.l?s",
237
- format: "NADCON",
238
- },
239
- {
240
- direction: "Direct",
241
- fileName: "./Usa/Nadcon/alaska.l?s",
242
- format: "NADCON",
243
- },
244
- {
245
- direction: "Direct",
246
- fileName: "./Usa/Nadcon/prvi.l?s",
247
- format: "NADCON",
248
- },
249
- {
250
- direction: "Direct",
251
- fileName: "./Usa/Nadcon/hawaii.l?s",
252
- format: "NADCON",
253
- },
254
- {
255
- direction: "Direct",
256
- fileName: "./Usa/Nadcon/stgeorge.l?s",
257
- format: "NADCON",
258
- },
259
- {
260
- direction: "Direct",
261
- fileName: "./Usa/Nadcon/stlrnc.l?s",
262
- format: "NADCON",
263
- },
264
- {
265
- direction: "Direct",
266
- fileName: "./Usa/Nadcon/stpaul.l?s",
267
- format: "NADCON",
268
- }
269
- ],
270
- },
271
- method: "GridFiles",
272
- sourceEllipsoid: {
273
- equatorialRadius: 6378206.4,
274
- id: "CLRK66",
275
- polarRadius: 6356583.8,
276
- },
277
- targetEllipsoid: {
278
- equatorialRadius: 6378137,
279
- id: "GRS1980",
280
- polarRadius: 6356752.314140348,
281
- },
282
- }
283
- ],
284
- },
285
- datumId: "NAD27",
286
- description: "UTM with NAD27 datum, Zone 10, Meter; Central Meridian 123d W",
287
- epsg: 26710,
288
- extent: {
289
- northEast: {
290
- latitude: 84,
291
- longitude: -119.5,
292
- },
293
- southWest: {
294
- latitude: -1,
295
- longitude: -126.5,
296
- },
297
- },
298
- id: "UTM27-10",
299
- projection: {
300
- hemisphere: "North",
301
- method: "UniversalTransverseMercator",
302
- zoneNumber: 10,
303
- },
304
- source: "Snyder, J.P, 1987, Map Projections - A Working Manual",
305
- unit: "Meter",
306
- },
307
- verticalCRS: {
308
- id: "NGVD29",
309
- },
310
- };
311
- await completionTest({ horizontalCRS: { id: "UTM27-10" }, verticalCRS: { id: "NGVD29" } }, UTM27Z10);
312
- });
313
- it("should be able to interpret to completion UTM27Z10B", async () => {
314
- const UTM27Z10B = {
315
- horizontalCRS: {
316
- datum: {
317
- description: "North American Datum of 1927 (US48, AK, HI, and Canada)",
318
- ellipsoid: {
319
- description: "Clarke 1866, Benoit Ratio",
320
- epsg: 7008,
321
- equatorialRadius: 6378206.4,
322
- id: "CLRK66",
323
- polarRadius: 6356583.8,
324
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
325
- },
326
- ellipsoidId: "CLRK66",
327
- epsg: 6267,
328
- id: "NAD27",
329
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
330
- transforms: [
331
- {
332
- gridFile: {
333
- files: [
334
- {
335
- direction: "Direct",
336
- fileName: "./Usa/Nadcon/conus.l?s",
337
- format: "NADCON",
338
- },
339
- {
340
- direction: "Direct",
341
- fileName: "./Usa/Nadcon/alaska.l?s",
342
- format: "NADCON",
343
- },
344
- {
345
- direction: "Direct",
346
- fileName: "./Usa/Nadcon/prvi.l?s",
347
- format: "NADCON",
348
- },
349
- {
350
- direction: "Direct",
351
- fileName: "./Usa/Nadcon/hawaii.l?s",
352
- format: "NADCON",
353
- },
354
- {
355
- direction: "Direct",
356
- fileName: "./Usa/Nadcon/stgeorge.l?s",
357
- format: "NADCON",
358
- },
359
- {
360
- direction: "Direct",
361
- fileName: "./Usa/Nadcon/stlrnc.l?s",
362
- format: "NADCON",
363
- },
364
- {
365
- direction: "Direct",
366
- fileName: "./Usa/Nadcon/stpaul.l?s",
367
- format: "NADCON",
368
- },
369
- ],
370
- },
371
- method: "GridFiles",
372
- sourceEllipsoid: {
373
- equatorialRadius: 6378206.4,
374
- id: "CLRK66",
375
- polarRadius: 6356583.8,
376
- },
377
- targetEllipsoid: {
378
- equatorialRadius: 6378137,
379
- id: "GRS1980",
380
- polarRadius: 6356752.314140348,
381
- },
382
- },
383
- ],
384
- },
385
- datumId: "NAD27",
386
- description: "NAD27 / UTM zone 10N",
387
- epsg: 26710,
388
- extent: {
389
- northEast: {
390
- latitude: 77,
391
- longitude: -120,
392
- },
393
- southWest: {
394
- latitude: 34.4,
395
- longitude: -126,
396
- },
397
- },
398
- id: "EPSG:26710",
399
- projection: {
400
- centralMeridian: -123,
401
- falseEasting: 500000,
402
- falseNorthing: 0,
403
- latitudeOfOrigin: 0,
404
- method: "TransverseMercator",
405
- scaleFactor: 0.9996,
406
- },
407
- source: "EPSG V6 [Large and medium scale topographic mapping and engin]",
408
- unit: "Meter",
409
- },
410
- verticalCRS: {
411
- id: "NGVD29",
412
- },
413
- };
414
- await completionTest({ horizontalCRS: { epsg: 26710 }, verticalCRS: { id: "NGVD29" } }, UTM27Z10B);
415
- });
416
- });
417
- describe("Interpretation of WKT GeographicCRS", async () => {
418
- const interpretWKTTest = async (testWKT, completeCRS) => {
419
- const requestProps = { format: "WKT", geographicCRSDef: testWKT };
420
- const response = IModelNative.platform.GeoServices.getGeographicCRSInterpretation(requestProps);
421
- assert.isTrue(response.status === 0);
422
- assert.isTrue(response.geographicCRS !== undefined);
423
- if (response.geographicCRS !== undefined) {
424
- assert.isTrue(response.geographicCRS.horizontalCRS !== undefined && completeCRS.horizontalCRS !== undefined);
425
- assert.isTrue(response.geographicCRS.horizontalCRS.id === completeCRS.horizontalCRS.id);
426
- assert.isTrue(response.geographicCRS.horizontalCRS.projection !== undefined && completeCRS.horizontalCRS.projection !== undefined);
427
- assert.isTrue(response.geographicCRS.horizontalCRS.projection.method === completeCRS.horizontalCRS.projection.method);
428
- if (completeCRS.horizontalCRS.projection.falseEasting !== undefined) {
429
- assert.isTrue(response.geographicCRS.horizontalCRS.projection.falseEasting !== undefined);
430
- assert.isTrue(Math.abs(response.geographicCRS.horizontalCRS.projection.falseEasting - completeCRS.horizontalCRS.projection.falseEasting) < Geometry.smallMetricDistance);
431
- }
432
- if (completeCRS.horizontalCRS.projection.falseNorthing !== undefined) {
433
- assert.isTrue(response.geographicCRS.horizontalCRS.projection.falseNorthing !== undefined);
434
- assert.isTrue(Math.abs(response.geographicCRS.horizontalCRS.projection.falseNorthing - completeCRS.horizontalCRS.projection.falseNorthing) < Geometry.smallMetricDistance);
435
- }
436
- assert.isTrue(response.geographicCRS.horizontalCRS.datum !== undefined && completeCRS.horizontalCRS.datum !== undefined);
437
- assert.isTrue(response.geographicCRS.horizontalCRS.datum.id === completeCRS.horizontalCRS.datum.id);
438
- assert.isTrue(response.geographicCRS.horizontalCRS.datum.ellipsoid !== undefined && completeCRS.horizontalCRS.datum.ellipsoid !== undefined);
439
- assert.isTrue(response.geographicCRS.horizontalCRS.datum.ellipsoid.id === completeCRS.horizontalCRS.datum.ellipsoid.id);
440
- assert.isTrue(response.geographicCRS.verticalCRS !== undefined && completeCRS.verticalCRS !== undefined);
441
- assert.isTrue(response.geographicCRS.verticalCRS.id === completeCRS.verticalCRS.id);
442
- // WKTs cannot define an additional transform
443
- assert.isTrue(response.geographicCRS.additionalTransform === undefined);
444
- }
445
- };
446
- it("should be able to interpret airportGrid2007 WKT", async () => {
447
- const airportGrid2007 = {
448
- horizontalCRS: {
449
- datum: {
450
- description: "Heathrow T5 Datum",
451
- ellipsoid: {
452
- description: "Airy, 1830",
453
- epsg: 7001,
454
- equatorialRadius: 6377563.396,
455
- id: "AIRY30",
456
- polarRadius: 6356256.909,
457
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
458
- },
459
- ellipsoidId: "AIRY30",
460
- id: "HeathrowT5",
461
- source: "Bentley Client",
462
- transforms: [
463
- {
464
- method: "PositionalVector",
465
- positionalVector: {
466
- delta: {
467
- x: 358.398212181898,
468
- y: -213.702844870731,
469
- z: 495.318319769716,
470
- },
471
- rotation: {
472
- x: 668.806139320047,
473
- y: -4.72664217602752,
474
- z: 719.671097181396,
475
- },
476
- scalePPM: -6.26386076385543,
477
- },
478
- sourceEllipsoid: {
479
- equatorialRadius: 6377563.396,
480
- id: "AIRY30",
481
- polarRadius: 6356256.909,
482
- },
483
- targetEllipsoid: {
484
- equatorialRadius: 6378137,
485
- id: "WGS84",
486
- polarRadius: 6356752.3142,
487
- },
488
- },
489
- ],
490
- },
491
- datumId: "HeathrowT5",
492
- description: "AirportGrid2007",
493
- id: "AirportGrid2007",
494
- projection: {
495
- centralMeridian: -0.41832591666666674,
496
- falseEasting: 7334.81,
497
- falseNorthing: 5637.423,
498
- latitudeOfOrigin: 51.47011065555556,
499
- method: "TransverseMercator",
500
- scaleFactor: 0.999995,
501
- },
502
- source: "WKT",
503
- unit: "Meter",
504
- },
505
- verticalCRS: {
506
- id: "ELLIPSOID",
507
- },
508
- };
509
- await interpretWKTTest('PROJCS["AirportGrid2007", GEOGCS["HeathrowT5.LL",DATUM["Heathrow T5", SPHEROID["AIRY30",6377563.396,299.32496127],358.398,-213.7028,495.3183,-668.80613932004700,4.72664217602752,-719.67109718139600,-6.26386076385543],PRIMEM["Greenwich",0],UNIT["Decimal Degree",0.017453292519943295]],PROJECTION["Transverse Mercator"],PARAMETER["latitude_of_origin",51.470110655555558],PARAMETER["central_meridian",-0.41832591666666669],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",7334.810],PARAMETER["false_northing",5637.423],UNIT["Meter",1.00000000000000]]', airportGrid2007);
510
- });
511
- it("should be able to interpret denmarkED50 WKT", async () => {
512
- const denmarkED50 = {
513
- horizontalCRS: {
514
- datum: {
515
- description: "European 1950, Denmark, for System 34",
516
- ellipsoid: {
517
- description: "Hayford, 1924 (aka 1909); same as International 1924",
518
- epsg: 7022,
519
- equatorialRadius: 6378388,
520
- id: "HAYFORD",
521
- polarRadius: 6356911.9461279465,
522
- source: "Snyder, J.P., 1987, Map Projections - A Working Manual",
523
- },
524
- ellipsoidId: "HAYFORD",
525
- id: "ED50-DK34",
526
- source: "KMSTrans, by Kort-og Matrikelstyrelsen (Nov 1999)",
527
- transforms: [
528
- {
529
- method: "PositionalVector",
530
- positionalVector: {
531
- delta: {
532
- x: -81.0703,
533
- y: -89.3603,
534
- z: -115.7526,
535
- },
536
- rotation: {
537
- x: 0.48488,
538
- y: 0.02436,
539
- z: 0.41321,
540
- },
541
- scalePPM: -0.540645,
542
- },
543
- sourceEllipsoid: {
544
- equatorialRadius: 6378388,
545
- id: "HAYFORD",
546
- polarRadius: 6356911.9461279465,
547
- },
548
- targetEllipsoid: {
549
- equatorialRadius: 6378137,
550
- id: "WGS84",
551
- polarRadius: 6356752.3142,
552
- },
553
- },
554
- ],
555
- },
556
- datumId: "ED50-DK34",
557
- description: "DummyName",
558
- extent: {
559
- northEast: {
560
- latitude: 90,
561
- longitude: 180,
562
- },
563
- southWest: {
564
- latitude: -90,
565
- longitude: -180,
566
- },
567
- },
568
- id: "DummyName",
569
- projection: {
570
- method: "None",
571
- },
572
- source: "Extracted from WKT string; description field carries WKT name.",
573
- unit: "Degree",
574
- },
575
- verticalCRS: {
576
- id: "ELLIPSOID",
577
- },
578
- };
579
- await interpretWKTTest('GEOGCS[ "DummyName", DATUM ["European 1950 (Denmark)", SPHEROID ["International 1924", 6378388, 297],-81.0703, -89.3603, -115.7526, .48488, .02436, .41321, -.540645], PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree", 0.01745329251994330]]', denmarkED50);
580
- });
581
- it("should be able to interpret californiaStateZone2 WKT", async () => {
582
- const californiaStateZone2 = {
583
- horizontalCRS: {
584
- datum: {
585
- description: "North American Datum of 1983",
586
- ellipsoid: {
587
- description: "Geodetic Reference System of 1980",
588
- epsg: 7019,
589
- equatorialRadius: 6378137,
590
- id: "GRS1980",
591
- polarRadius: 6356752.314140348,
592
- source: "Stem, L.E., Jan 1989, State Plane Coordinate System of 1983",
593
- },
594
- ellipsoidId: "GRS1980",
595
- epsg: 6269,
596
- id: "NAD83",
597
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
598
- transforms: [
599
- {
600
- method: "None",
601
- },
602
- ],
603
- },
604
- datumId: "NAD83",
605
- description: "NAD_1983_StatePlane_California_II_FIPS_0402_Feet",
606
- id: "NAD_1983_StatePlane_Cal",
607
- projection: {
608
- falseEasting: 6561666.666666666,
609
- falseNorthing: 1640416.666666667,
610
- latitudeOfOrigin: 37.66666666666666,
611
- longitudeOfOrigin: -122,
612
- method: "LambertConformalConicTwoParallels",
613
- standardParallel1: 38.33333333333334,
614
- standardParallel2: 39.83333333333334,
615
- },
616
- source: "WKT",
617
- unit: "USSurveyFoot",
618
- },
619
- verticalCRS: {
620
- id: "NAVD88",
621
- },
622
- };
623
- await interpretWKTTest('PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.30480060960121924]]', californiaStateZone2);
624
- });
625
- it("should be able to interpret utm84Zone34S WKT", async () => {
626
- const utm84Zone34S = {
627
- horizontalCRS: {
628
- datum: {
629
- description: "World Geodetic System of 1984",
630
- ellipsoid: {
631
- description: "World Geodetic System of 1984, GEM 10C",
632
- epsg: 7030,
633
- equatorialRadius: 6378137,
634
- id: "WGS84",
635
- polarRadius: 6356752.3142,
636
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
637
- },
638
- ellipsoidId: "WGS84",
639
- epsg: 6326,
640
- id: "WGS84",
641
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
642
- transforms: [
643
- {
644
- method: "None",
645
- },
646
- ],
647
- },
648
- datumId: "WGS84",
649
- description: "WGS 84 / UTM zone 34S",
650
- id: "WGS 84 / UTM zone 34S",
651
- projection: {
652
- centralMeridian: 20.999999999999982,
653
- falseEasting: 500000,
654
- falseNorthing: 10000000,
655
- latitudeOfOrigin: 0,
656
- method: "TransverseMercator",
657
- scaleFactor: 0.9996,
658
- },
659
- source: "WKT",
660
- unit: "Meter",
661
- },
662
- verticalCRS: {
663
- id: "ELLIPSOID",
664
- },
665
- };
666
- await interpretWKTTest('PROJCS["WGS 84 / UTM zone 34S", GEOGCS [ "WGS 84", DATUM ["World Geodetic System 1984 (EPSG ID 6326)", SPHEROID ["WGS 84 (EPSG ID 7030)", 6378137, 298.257223563]], PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree", 0.01745329251994328]], PROJECTION ["UTM zone 34S (EPSG OP 16134)"], PARAMETER ["Latitude_Of_Origin", 0], PARAMETER ["Central_Meridian", 21], PARAMETER ["Scale_Factor", .9996], PARAMETER ["False_Easting", 500000], PARAMETER ["False_Northing", 10000000], UNIT ["Meter", 1]]', utm84Zone34S);
667
- });
668
- it("should be able to interpret utm84Zone32NGeoid WKT", async () => {
669
- const utm84Zone32NGeoid = {
670
- horizontalCRS: {
671
- datum: {
672
- description: "World Geodetic System of 1984",
673
- ellipsoid: {
674
- description: "World Geodetic System of 1984, GEM 10C",
675
- epsg: 7030,
676
- equatorialRadius: 6378137,
677
- id: "WGS84",
678
- polarRadius: 6356752.3142,
679
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
680
- },
681
- ellipsoidId: "WGS84",
682
- epsg: 6326,
683
- id: "WGS84",
684
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
685
- transforms: [
686
- {
687
- method: "None",
688
- },
689
- ],
690
- },
691
- datumId: "WGS84",
692
- description: "WGS 84 / UTM zone32N",
693
- id: "WGS 84 / UTM zone32N",
694
- projection: {
695
- centralMeridian: 9,
696
- falseEasting: 500000,
697
- falseNorthing: 0,
698
- latitudeOfOrigin: 0,
699
- method: "TransverseMercator",
700
- scaleFactor: 0.9996,
701
- },
702
- source: "WKT",
703
- unit: "Meter",
704
- },
705
- verticalCRS: {
706
- id: "GEOID",
707
- },
708
- };
709
- await interpretWKTTest('COMPD_CS["WGS 84 / UTM zone 32N + EGM96 geoid height",PROJCS["WGS 84 / UTM zone32N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32632"]],VERT_CS["EGM96 geoid height",VERT_DATUM["EGM96 geoid",2005,EXTENSION["PROJ4_GRIDS","egm96_15.gtx"],AUTHORITY["EPSG","5171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Up",UP],AUTHORITY["EPSG","5773"]]]', utm84Zone32NGeoid);
710
- });
711
- it("should be able to interpret utm84Zone18NGeoid WKT", async () => {
712
- const utm84Zone18NGeoid = {
713
- horizontalCRS: {
714
- datum: {
715
- description: "World Geodetic System of 1984",
716
- ellipsoid: {
717
- description: "World Geodetic System of 1984, GEM 10C",
718
- epsg: 7030,
719
- equatorialRadius: 6378137,
720
- id: "WGS84",
721
- polarRadius: 6356752.3142,
722
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
723
- },
724
- ellipsoidId: "WGS84",
725
- epsg: 6326,
726
- id: "WGS84",
727
- source: "US Defense Mapping Agency, TR-8350.2-B, December 1987",
728
- transforms: [
729
- {
730
- method: "None",
731
- },
732
- ],
733
- },
734
- datumId: "WGS84",
735
- description: "UTM84-18N",
736
- id: "UTM84-18N",
737
- projection: {
738
- hemisphere: "North",
739
- method: "UniversalTransverseMercator",
740
- zoneNumber: 18,
741
- },
742
- source: "WKT",
743
- unit: "Meter",
744
- },
745
- verticalCRS: {
746
- id: "GEOID",
747
- },
748
- };
749
- await interpretWKTTest('COMPD_CS["UTM84-18N",PROJCS["UTM84-18N",GEOGCS["LL84",DATUM["WGS84",SPHEROID["WGS84",6378137.000,298.25722293]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Universal Transverse Mercator System"],PARAMETER["UTM Zone Number (1 - 60)",18.0],PARAMETER["Hemisphere, North or South",1.0],UNIT["Meter",1.00000000000000]],VERT_CS["Geoid Height",VERT_DATUM["EGM96 geoid",2005],UNIT["METER",1.000000]]]', utm84Zone18NGeoid);
750
- });
751
- });
752
- describe("Verify list of CRS", async () => {
753
- const validationRange = 50;
754
- const validationRangeSmall = 10;
755
- const validateCRSList = async (options) => {
756
- const { expectedCount, allowedRange, extent, includeWorld } = options;
757
- const listOfCRS = await getAvailableCoordinateReferenceSystems({ extent, includeWorld });
758
- // Check fields of returned coordinate reference systems
759
- const extentRange = Range2d.fromJSON(extent);
760
- for (const crs of listOfCRS) {
761
- // Validate extent
762
- if (extent !== undefined) {
763
- const crsExtentRange = Range2d.fromJSON(crs.crsExtent);
764
- const intersects = extentRange.intersectsRange(crsExtentRange);
765
- assert.isTrue(intersects);
766
- }
767
- // These fields should always be present
768
- assert.isTrue(crs.name !== undefined);
769
- assert.isTrue(crs.description !== undefined);
770
- assert.isTrue(crs.deprecated === true || crs.deprecated === false);
771
- }
772
- assert.isTrue(listOfCRS.length > expectedCount - allowedRange && listOfCRS.length < expectedCount + allowedRange);
773
- };
774
- const validateExtent = (expectedExtent, crsExtent) => {
775
- const crsExtentRange = Range2d.fromJSON(crsExtent);
776
- assert.equal(crsExtentRange.low.x, expectedExtent.low.x);
777
- assert.equal(crsExtentRange.low.y, expectedExtent.low.y);
778
- assert.equal(crsExtentRange.high.x, expectedExtent.high.x);
779
- assert.equal(crsExtentRange.high.y, expectedExtent.high.y);
780
- };
781
- it("should get all CRS", async () => {
782
- await validateCRSList({ expectedCount: 12_332, allowedRange: validationRange, includeWorld: true });
783
- });
784
- it("should get all CRS, excluding world crs", async () => {
785
- await validateCRSList({ expectedCount: 11_975, allowedRange: validationRange });
786
- });
787
- it("should return CRS that are in the specified range (1)", async () => {
788
- const extent = { low: { x: 60.1, y: 61.2 }, high: { x: 62.3, y: 63.4 } };
789
- await validateCRSList({ expectedCount: 82, allowedRange: validationRangeSmall, extent });
790
- await validateCRSList({ expectedCount: 439, allowedRange: validationRangeSmall, extent, includeWorld: true });
791
- });
792
- it("should return CRS that are in the specified range (2)", async () => {
793
- const extent = { low: { x: 0, y: 2 }, high: { x: 1, y: 3 } };
794
- await validateCRSList({ expectedCount: 67, allowedRange: validationRangeSmall, extent });
795
- await validateCRSList({ expectedCount: 424, allowedRange: validationRangeSmall, extent, includeWorld: true });
796
- });
797
- it("should return CRS that are in the specified range (3)", async () => {
798
- const extent = { low: { x: 0.3, y: 2.4 }, high: { x: 1.6, y: 3.77 } };
799
- await validateCRSList({ expectedCount: 62, allowedRange: validationRangeSmall, extent });
800
- await validateCRSList({ expectedCount: 419, allowedRange: validationRangeSmall, extent, includeWorld: true });
801
- });
802
- it("should retrieve the whole list of CRS and validate the properties for a few selected CRS.", async () => {
803
- const listOfCRS = await getAvailableCoordinateReferenceSystems({ includeWorld: true });
804
- let nbFound = 0;
805
- for (const crs of listOfCRS) {
806
- switch (crs.name) {
807
- case "3TM111-83":
808
- nbFound++;
809
- assert.equal(crs.description, "Use NAD83-AB/3TM-111 instead.");
810
- assert.equal(crs.deprecated, true);
811
- validateExtent(Range2d.fromJSON({ low: { x: -113, y: 48 }, high: { x: -109, y: 84 } }), crs.crsExtent);
812
- break;
813
- case "NAD27-CAN.MTM-1":
814
- nbFound++;
815
- assert.equal(crs.description, "NAD27 / MTM zone 1");
816
- assert.equal(crs.deprecated, false);
817
- validateExtent(Range2d.fromJSON({ low: { x: -54.5, y: 45 }, high: { x: -50.5, y: 55 } }), crs.crsExtent);
818
- break;
819
- case "AL83-EF":
820
- nbFound++;
821
- assert.equal(crs.description, "NAD83 Alabama State Plane, East Zone, US Foot");
822
- assert.equal(crs.deprecated, false);
823
- validateExtent(Range2d.fromJSON({ low: { x: -87.5, y: 30 }, high: { x: -84, y: 35.75 } }), crs.crsExtent);
824
- break;
825
- case "ME-E":
826
- nbFound++;
827
- assert.equal(crs.description, "NAD27 Maine State Plane, East Zone(1801), US Foot");
828
- assert.equal(crs.deprecated, false);
829
- validateExtent(Range2d.fromJSON({ low: { x: -71, y: 43.5 }, high: { x: -66, y: 48 } }), crs.crsExtent);
830
- break;
831
- // world CRS
832
- case "EPSG:4326":
833
- nbFound++;
834
- assert.equal(crs.description, "WGS 84");
835
- assert.equal(crs.deprecated, false);
836
- validateExtent(Range2d.fromJSON({ low: { x: -180, y: -90 }, high: { x: 180, y: 90 } }), crs.crsExtent);
837
- break;
838
- }
839
- }
840
- assert.equal(nbFound, 5);
841
- });
842
- it("check CRS units", () => {
843
- const expectedUnits = ["Meter", "Degree", "USSurveyFoot", "InternationalFoot"];
844
- const definitiveListOfUnits = getAvailableCRSUnits();
845
- assert.isAtLeast(definitiveListOfUnits.length, expectedUnits.length);
846
- for (const unit of expectedUnits) {
847
- assert.include(definitiveListOfUnits, unit);
848
- }
849
- });
850
- it("can filter by each CRS unit", async () => {
851
- const minExpectedCounts = new Map([
852
- ["Meter", 8000],
853
- ["Degree", 1000],
854
- ["USSurveyFoot", 100],
855
- ["InternationalFoot", 50],
856
- ]);
857
- const units = getAvailableCRSUnits();
858
- for (const unit of units) {
859
- const listOfCRS = await getAvailableCoordinateReferenceSystems({
860
- includeWorld: true,
861
- unit,
862
- });
863
- const minExpected = minExpectedCounts.get(unit) ?? 1;
864
- assert.isAtLeast(listOfCRS.length, minExpected, `Expected at least ${minExpected} CRS with unit "${unit}", got ${listOfCRS.length}`);
865
- for (const crs of listOfCRS) {
866
- assert.equal(crs.unit, unit, `CRS "${crs.name}" has unexpected unit "${crs.unit}" (expected "${unit}")`);
867
- }
868
- }
869
- });
870
- it("can filter by unit case-insensitively", async () => {
871
- const units = getAvailableCRSUnits();
872
- for (const unit of units) {
873
- const canonicalList = await getAvailableCoordinateReferenceSystems({
874
- includeWorld: true,
875
- unit,
876
- });
877
- const lowerCaseFilterList = await getAvailableCoordinateReferenceSystems({
878
- includeWorld: true,
879
- unit: unit.toLowerCase(),
880
- });
881
- assert.sameMembers(lowerCaseFilterList.map((crs) => crs.name), canonicalList.map((crs) => crs.name), `Expected lowercase unit filter to match canonical filter for "${unit}"`);
882
- }
883
- });
884
- });
885
- it("should not be able to interpret an invalid GeographicCRS", async () => {
886
- const interpretInvalidTest = async (formatCRS, testInvalid) => {
887
- const requestProps = { format: formatCRS, geographicCRSDef: testInvalid };
888
- const response = IModelNative.platform.GeoServices.getGeographicCRSInterpretation(requestProps);
889
- // At the moment return codes are not really error specific (we mostly return 32768) so we do not validate
890
- // actual error code for now.
891
- assert.isFalse(response.status === 0);
892
- };
893
- // WKT Without datum or projection clause
894
- await interpretInvalidTest("WKT", 'PROJCS["AirportGrid2007", GEOGCS["HeathrowT5.LL",PRIMEM["Greenwich",0],UNIT["Decimal Degree",0.017453292519943295]],UNIT["Meter",1.00000000000000]]');
895
- // Plain garbage
896
- await interpretInvalidTest("WKT", "Some invalid content");
897
- // Format is JSON but content is WKT
898
- await interpretInvalidTest("JSON", 'GEOGCS[ "Longitude / Latitude (ED 50 Denmark)", DATUM ["European 1950 (Denmark)", SPHEROID ["International 1924", 6378388, 297],-81.0703, -89.3603, -115.7526, .48488, .02436, .41321, -.540645], PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree", 0.01745329251994330]]');
899
- // Vertical datum invalid for horizontal definition
900
- await interpretInvalidTest("JSON", '{ horizontalCRS: { id: "EPSG:27700" }, verticalCRS: { id: "NAVD29" } }');
901
- // No horizontal CRS
902
- await interpretInvalidTest("JSON", '{ verticalCRS: { id: "NAVD29" } }');
903
- // Unknown identifier
904
- await interpretInvalidTest("JSON", '{ horizontalCRS: { id: "UNKNOWN" }, verticalCRS: { id: "NAVD29" } }');
905
- });
906
- it("should return expected Transform from Helmert2DWithZOffset object", async () => {
907
- const helmertTransform = new Helmert2DWithZOffset({ translationX: 1, translationY: 1, translationZ: 1, rotDeg: 90, scale: 2 });
908
- const convertedTransform = helmertTransform.convertHelmertToTransform();
909
- const originExpected = Point3d.fromJSON({ x: 1, y: 1, z: 1 });
910
- assert(convertedTransform.origin.isAlmostEqual(originExpected));
911
- const expectedCoffs = [0, -2, 0, 2, 0, 0, 0, 0, 1];
912
- const actualCoffs = Array.from(convertedTransform.matrix.coffs);
913
- for (let i = 0; i < expectedCoffs.length; ++i) {
914
- assert(Math.abs(actualCoffs[i] - expectedCoffs[i]) < 1e-12, `Matrix coefficient at index ${i} differs: expected ${expectedCoffs[i]}, got ${actualCoffs[i]}`);
915
- }
916
- });
917
- });
918
- //# sourceMappingURL=GeoServices.test.js.map