@itwin/map-layers-formats 4.0.0-dev.51 → 4.0.0-dev.54

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 (180) hide show
  1. package/.rush/temp/a8c23e019445581f5d72733a882cf95a9917fdfd.log +10 -0
  2. package/.rush/temp/operation/build_ci/state.json +1 -1
  3. package/.rush/temp/operation/cover/state.json +1 -1
  4. package/.rush/temp/operation/docs/state.json +1 -1
  5. package/.rush/temp/package-deps_cover.json +3 -3
  6. package/.rush/temp/package-deps_docs.json +3 -3
  7. package/.rush/temp/shrinkwrap-deps.json +43 -50
  8. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts +8 -8
  9. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +14 -14
  10. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  11. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts +14 -14
  12. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js +132 -132
  13. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -1
  14. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts +14 -14
  15. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js +200 -200
  16. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -1
  17. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +44 -44
  18. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +421 -421
  19. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  20. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts +92 -92
  21. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -1
  22. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js +82 -82
  23. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
  24. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts +17 -17
  25. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js +33 -33
  26. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
  27. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts +32 -32
  28. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js +142 -142
  29. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -1
  30. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.d.ts +16 -16
  31. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.d.ts.map +1 -1
  32. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js +42 -42
  33. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
  34. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +85 -85
  35. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
  36. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +189 -189
  37. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  38. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.d.ts +1063 -1063
  39. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js +2270 -2270
  40. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
  41. package/lib/cjs/map-layers-formats.d.ts +8 -8
  42. package/lib/cjs/map-layers-formats.js +28 -24
  43. package/lib/cjs/map-layers-formats.js.map +1 -1
  44. package/lib/cjs/mapLayersFormats.d.ts +10 -10
  45. package/lib/cjs/mapLayersFormats.js +28 -28
  46. package/lib/cjs/mapLayersFormats.js.map +1 -1
  47. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +1 -1
  48. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +34 -34
  49. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -1
  50. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +1 -1
  51. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js +161 -161
  52. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -1
  53. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +1 -1
  54. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js +167 -167
  55. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -1
  56. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +1 -1
  57. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +679 -679
  58. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
  59. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +1 -1
  60. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js +103 -103
  61. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -1
  62. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +1 -1
  63. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +214 -214
  64. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -1
  65. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +1 -1
  66. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js +94 -94
  67. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -1
  68. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +1 -1
  69. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +59 -59
  70. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -1
  71. package/lib/cjs/test/ArcGisFeature/Mocks.d.ts +6 -6
  72. package/lib/cjs/test/ArcGisFeature/Mocks.js +18 -18
  73. package/lib/cjs/test/ArcGisFeature/Mocks.js.map +1 -1
  74. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts +55 -55
  75. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js +419 -419
  76. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js.map +1 -1
  77. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +1042 -1042
  78. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js +426 -426
  79. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -1
  80. package/lib/cjs/test/coverage/.nyc_output/ebb32643-cc7e-45e5-85fa-6677a4e8655d.json +1 -0
  81. package/lib/cjs/test/coverage/.nyc_output/processinfo/4b88e819-fa82-47fe-ba3f-d8d412881c57.json +1 -0
  82. package/lib/cjs/test/coverage/.nyc_output/processinfo/{b5bab329-e30c-4d54-833d-0f3805415aca.json → ebb32643-cc7e-45e5-85fa-6677a4e8655d.json} +1 -1
  83. package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +1 -1
  84. package/lib/cjs/test/coverage/cobertura-coverage.xml +38 -38
  85. package/lib/cjs/test/coverage/lcov-report/index.html +1 -1
  86. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +1 -1
  87. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +1 -1
  88. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +1 -1
  89. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +1 -1
  90. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +1 -1
  91. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +1 -1
  92. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +1 -1
  93. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +1 -1
  94. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +1 -1
  95. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +1 -1
  96. package/lib/cjs/test/coverage/lcov-report/src/index.html +1 -1
  97. package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +1 -1
  98. package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +1 -1
  99. package/lib/cjs/test/coverage/lcov.info +47 -47
  100. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  101. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts +8 -8
  102. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +11 -10
  103. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  104. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts +14 -14
  105. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js +128 -128
  106. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -1
  107. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts +14 -14
  108. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js +196 -196
  109. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -1
  110. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +44 -44
  111. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +418 -417
  112. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  113. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts +92 -92
  114. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -1
  115. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js +78 -78
  116. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
  117. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts +17 -17
  118. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js +29 -29
  119. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
  120. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts +32 -32
  121. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js +138 -138
  122. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -1
  123. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.d.ts +16 -16
  124. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.d.ts.map +1 -1
  125. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js +38 -38
  126. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
  127. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +85 -85
  128. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
  129. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +183 -182
  130. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  131. package/lib/esm/ArcGisFeature/esriPBuffer.gen.d.ts +1063 -1063
  132. package/lib/esm/ArcGisFeature/esriPBuffer.gen.js +2267 -2267
  133. package/lib/esm/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
  134. package/lib/esm/map-layers-formats.d.ts +8 -8
  135. package/lib/esm/map-layers-formats.js +12 -12
  136. package/lib/esm/map-layers-formats.js.map +1 -1
  137. package/lib/esm/mapLayersFormats.d.ts +10 -10
  138. package/lib/esm/mapLayersFormats.js +24 -24
  139. package/lib/esm/mapLayersFormats.js.map +1 -1
  140. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +1 -1
  141. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +32 -32
  142. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -1
  143. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +1 -1
  144. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js +159 -159
  145. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -1
  146. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +1 -1
  147. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js +165 -165
  148. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -1
  149. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +1 -1
  150. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +677 -677
  151. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
  152. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +1 -1
  153. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js +101 -101
  154. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -1
  155. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +1 -1
  156. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +212 -212
  157. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -1
  158. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +1 -1
  159. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js +92 -92
  160. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -1
  161. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +1 -1
  162. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +57 -57
  163. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -1
  164. package/lib/esm/test/ArcGisFeature/Mocks.d.ts +6 -6
  165. package/lib/esm/test/ArcGisFeature/Mocks.js +15 -15
  166. package/lib/esm/test/ArcGisFeature/Mocks.js.map +1 -1
  167. package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts +55 -55
  168. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js +416 -415
  169. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js.map +1 -1
  170. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +1042 -1042
  171. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js +423 -422
  172. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -1
  173. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  174. package/lib/test/junit_results.xml +48 -48
  175. package/package.json +13 -13
  176. package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +21 -21
  177. package/.rush/temp/package-deps_build_ci.json +0 -36
  178. package/lib/cjs/test/coverage/.nyc_output/b5bab329-e30c-4d54-833d-0f3805415aca.json +0 -1
  179. package/lib/cjs/test/coverage/.nyc_output/processinfo/eb18b24f-e841-458a-a146-1d39857d2964.json +0 -1
  180. /package/lib/cjs/test/coverage/.nyc_output/{eb18b24f-e841-458a-a146-1d39857d2964.json → 4b88e819-fa82-47fe-ba3f-d8d412881c57.json} +0 -0
@@ -1,133 +1,133 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ArcGisFeatureJSON = void 0;
8
- const appui_abstract_1 = require("@itwin/appui-abstract");
9
- const core_frontend_1 = require("@itwin/core-frontend");
10
- const ArcGisFeatureReader_1 = require("./ArcGisFeatureReader");
11
- /** @internal */
12
- class ArcGisFeatureJSON extends ArcGisFeatureReader_1.ArcGisFeatureReader {
13
- constructor(settings, layerMetadata) {
14
- super(settings, layerMetadata);
15
- }
16
- readAndRender(response, renderer) {
17
- const responseObj = response.data;
18
- if (responseObj?.geometryType === "esriGeometryPolyline" || responseObj?.geometryType === "esriGeometryPolygon") {
19
- const fill = (responseObj.geometryType === "esriGeometryPolygon");
20
- for (const feature of responseObj.features) {
21
- let offset = 0;
22
- const lengths = [];
23
- const coords = [];
24
- if (feature?.geometry?.rings) {
25
- for (const ring of feature?.geometry?.rings) {
26
- offset = ArcGisFeatureJSON.deflateCoordinates(ring, coords, 2, offset);
27
- lengths.push(ring.length);
28
- }
29
- }
30
- else if (feature?.geometry?.paths) {
31
- for (const path of feature?.geometry?.paths) {
32
- offset = ArcGisFeatureJSON.deflateCoordinates(path, coords, 2, offset);
33
- lengths.push(path.length);
34
- }
35
- }
36
- renderer.renderPath(lengths, coords, fill, 2, renderer.transform === undefined);
37
- }
38
- }
39
- else if (responseObj?.geometryType === "esriGeometryPoint" || responseObj?.geometryType === "esriGeometryMultiPoint") {
40
- for (const feature of responseObj.features) {
41
- // TODO: Add support for multipoint
42
- if (feature.geometry) {
43
- const lengths = [];
44
- const coords = [feature.geometry.x, feature.geometry.y];
45
- renderer.renderPoint(lengths, coords, 2, renderer.transform === undefined);
46
- }
47
- }
48
- }
49
- }
50
- // Converts an [[x1,y1], [x2,y2], ...] to [x1,y1,x2,y2, ...]
51
- // stride is the number of dimensions
52
- // https://github.com/openlayers/openlayers/blob/7a2f87caca9ddc1912d910f56eb5637445fc11f6/src/ol/geom/flat/deflate.js#L26
53
- static deflateCoordinates(coordinates, flatCoordinates, stride, offset) {
54
- for (let i = 0, ii = coordinates.length; i < ii; ++i) {
55
- const coordinate = coordinates[i];
56
- for (let j = 0; j < stride; ++j)
57
- flatCoordinates[offset++] = coordinate[j];
58
- }
59
- return offset;
60
- }
61
- readFeatureInfo(response, featureInfos) {
62
- const responseObj = response.data;
63
- if (responseObj === undefined || !Array.isArray(responseObj.features))
64
- return;
65
- const layerInfo = { layerName: this._settings.name };
66
- // Create a signature index for every field name / type.
67
- const fieldsType = {};
68
- for (const fieldInfo of responseObj.fields) {
69
- fieldsType[fieldInfo.name] = fieldInfo.type;
70
- }
71
- const getStandardTypeName = (fieldType) => {
72
- switch (fieldType) {
73
- case "esriFieldTypeInteger":
74
- case "esriFieldTypeSmallInteger":
75
- case "esriFieldTypeOID":
76
- return appui_abstract_1.StandardTypeNames.Integer;
77
- case "esriFieldTypeDouble":
78
- return appui_abstract_1.StandardTypeNames.Double;
79
- case "esriFieldTypeSingle":
80
- return appui_abstract_1.StandardTypeNames.Float;
81
- case "esriFieldTypeDate":
82
- return appui_abstract_1.StandardTypeNames.DateTime;
83
- default:
84
- return appui_abstract_1.StandardTypeNames.String;
85
- }
86
- };
87
- const getRecordInfo = (fieldName, value) => {
88
- const propertyValue = { valueFormat: appui_abstract_1.PropertyValueFormat.Primitive };
89
- if (value === null) {
90
- value = undefined;
91
- }
92
- const strValue = `${value}`;
93
- const fieldType = fieldsType[fieldName];
94
- switch (fieldType) {
95
- case "esriFieldTypeInteger":
96
- case "esriFieldTypeSmallInteger":
97
- case "esriFieldTypeOID":
98
- propertyValue.value = value;
99
- break;
100
- case "esriFieldTypeDouble":
101
- case "esriFieldTypeSingle":
102
- propertyValue.value = this.toFixedWithoutPadding(value);
103
- break;
104
- case "esriFieldTypeDate":
105
- propertyValue.value = new Date(value);
106
- break;
107
- default:
108
- if (value !== undefined)
109
- propertyValue.value = strValue;
110
- break;
111
- }
112
- const typename = getStandardTypeName(fieldType);
113
- propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);
114
- return new core_frontend_1.MapFeatureInfoRecord(propertyValue, { name: fieldName, displayLabel: fieldName, typename });
115
- };
116
- for (const feature of responseObj.features) {
117
- const subLayerInfo = {
118
- subLayerName: this._layerMetadata.name,
119
- displayFieldName: this._layerMetadata.name,
120
- records: [],
121
- };
122
- for (const [key, value] of Object.entries(feature.attributes))
123
- subLayerInfo.records?.push(getRecordInfo(key, value));
124
- if (layerInfo.info === undefined)
125
- layerInfo.info = [];
126
- if (!(layerInfo.info instanceof HTMLElement))
127
- layerInfo.info.push(subLayerInfo);
128
- }
129
- featureInfos.push(layerInfo);
130
- }
131
- }
132
- exports.ArcGisFeatureJSON = ArcGisFeatureJSON;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ArcGisFeatureJSON = void 0;
8
+ const appui_abstract_1 = require("@itwin/appui-abstract");
9
+ const core_frontend_1 = require("@itwin/core-frontend");
10
+ const ArcGisFeatureReader_1 = require("./ArcGisFeatureReader");
11
+ /** @internal */
12
+ class ArcGisFeatureJSON extends ArcGisFeatureReader_1.ArcGisFeatureReader {
13
+ constructor(settings, layerMetadata) {
14
+ super(settings, layerMetadata);
15
+ }
16
+ readAndRender(response, renderer) {
17
+ const responseObj = response.data;
18
+ if (responseObj?.geometryType === "esriGeometryPolyline" || responseObj?.geometryType === "esriGeometryPolygon") {
19
+ const fill = (responseObj.geometryType === "esriGeometryPolygon");
20
+ for (const feature of responseObj.features) {
21
+ let offset = 0;
22
+ const lengths = [];
23
+ const coords = [];
24
+ if (feature?.geometry?.rings) {
25
+ for (const ring of feature?.geometry?.rings) {
26
+ offset = ArcGisFeatureJSON.deflateCoordinates(ring, coords, 2, offset);
27
+ lengths.push(ring.length);
28
+ }
29
+ }
30
+ else if (feature?.geometry?.paths) {
31
+ for (const path of feature?.geometry?.paths) {
32
+ offset = ArcGisFeatureJSON.deflateCoordinates(path, coords, 2, offset);
33
+ lengths.push(path.length);
34
+ }
35
+ }
36
+ renderer.renderPath(lengths, coords, fill, 2, renderer.transform === undefined);
37
+ }
38
+ }
39
+ else if (responseObj?.geometryType === "esriGeometryPoint" || responseObj?.geometryType === "esriGeometryMultiPoint") {
40
+ for (const feature of responseObj.features) {
41
+ // TODO: Add support for multipoint
42
+ if (feature.geometry) {
43
+ const lengths = [];
44
+ const coords = [feature.geometry.x, feature.geometry.y];
45
+ renderer.renderPoint(lengths, coords, 2, renderer.transform === undefined);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ // Converts an [[x1,y1], [x2,y2], ...] to [x1,y1,x2,y2, ...]
51
+ // stride is the number of dimensions
52
+ // https://github.com/openlayers/openlayers/blob/7a2f87caca9ddc1912d910f56eb5637445fc11f6/src/ol/geom/flat/deflate.js#L26
53
+ static deflateCoordinates(coordinates, flatCoordinates, stride, offset) {
54
+ for (let i = 0, ii = coordinates.length; i < ii; ++i) {
55
+ const coordinate = coordinates[i];
56
+ for (let j = 0; j < stride; ++j)
57
+ flatCoordinates[offset++] = coordinate[j];
58
+ }
59
+ return offset;
60
+ }
61
+ readFeatureInfo(response, featureInfos) {
62
+ const responseObj = response.data;
63
+ if (responseObj === undefined || !Array.isArray(responseObj.features))
64
+ return;
65
+ const layerInfo = { layerName: this._settings.name };
66
+ // Create a signature index for every field name / type.
67
+ const fieldsType = {};
68
+ for (const fieldInfo of responseObj.fields) {
69
+ fieldsType[fieldInfo.name] = fieldInfo.type;
70
+ }
71
+ const getStandardTypeName = (fieldType) => {
72
+ switch (fieldType) {
73
+ case "esriFieldTypeInteger":
74
+ case "esriFieldTypeSmallInteger":
75
+ case "esriFieldTypeOID":
76
+ return appui_abstract_1.StandardTypeNames.Integer;
77
+ case "esriFieldTypeDouble":
78
+ return appui_abstract_1.StandardTypeNames.Double;
79
+ case "esriFieldTypeSingle":
80
+ return appui_abstract_1.StandardTypeNames.Float;
81
+ case "esriFieldTypeDate":
82
+ return appui_abstract_1.StandardTypeNames.DateTime;
83
+ default:
84
+ return appui_abstract_1.StandardTypeNames.String;
85
+ }
86
+ };
87
+ const getRecordInfo = (fieldName, value) => {
88
+ const propertyValue = { valueFormat: appui_abstract_1.PropertyValueFormat.Primitive };
89
+ if (value === null) {
90
+ value = undefined;
91
+ }
92
+ const strValue = `${value}`;
93
+ const fieldType = fieldsType[fieldName];
94
+ switch (fieldType) {
95
+ case "esriFieldTypeInteger":
96
+ case "esriFieldTypeSmallInteger":
97
+ case "esriFieldTypeOID":
98
+ propertyValue.value = value;
99
+ break;
100
+ case "esriFieldTypeDouble":
101
+ case "esriFieldTypeSingle":
102
+ propertyValue.value = this.toFixedWithoutPadding(value);
103
+ break;
104
+ case "esriFieldTypeDate":
105
+ propertyValue.value = new Date(value);
106
+ break;
107
+ default:
108
+ if (value !== undefined)
109
+ propertyValue.value = strValue;
110
+ break;
111
+ }
112
+ const typename = getStandardTypeName(fieldType);
113
+ propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);
114
+ return new core_frontend_1.MapFeatureInfoRecord(propertyValue, { name: fieldName, displayLabel: fieldName, typename });
115
+ };
116
+ for (const feature of responseObj.features) {
117
+ const subLayerInfo = {
118
+ subLayerName: this._layerMetadata.name,
119
+ displayFieldName: this._layerMetadata.name,
120
+ records: [],
121
+ };
122
+ for (const [key, value] of Object.entries(feature.attributes))
123
+ subLayerInfo.records?.push(getRecordInfo(key, value));
124
+ if (layerInfo.info === undefined)
125
+ layerInfo.info = [];
126
+ if (!(layerInfo.info instanceof HTMLElement))
127
+ layerInfo.info.push(subLayerInfo);
128
+ }
129
+ featureInfos.push(layerInfo);
130
+ }
131
+ }
132
+ exports.ArcGisFeatureJSON = ArcGisFeatureJSON;
133
133
  //# sourceMappingURL=ArcGisFeatureJSON.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisFeatureJSON.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureJSON.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 { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { MapFeatureInfoRecord, MapLayerFeatureInfo, MapSubLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisFeatureRenderer } from \"./ArcGisFeatureRenderer\";\r\nimport { ArcGisFieldType, ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureJSON extends ArcGisFeatureReader {\r\n public transform: Transform|undefined;\r\n\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super(settings, layerMetadata);\r\n }\r\n\r\n public readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer) {\r\n const responseObj = response.data;\r\n\r\n if (responseObj?.geometryType === \"esriGeometryPolyline\" || responseObj?.geometryType === \"esriGeometryPolygon\") {\r\n const fill = (responseObj.geometryType === \"esriGeometryPolygon\");\r\n for (const feature of responseObj.features) {\r\n let offset = 0;\r\n const lengths: number[] = [];\r\n const coords: number[] = [];\r\n\r\n if (feature?.geometry?.rings) {\r\n for (const ring of feature?.geometry?.rings) {\r\n offset = ArcGisFeatureJSON.deflateCoordinates(ring, coords, 2, offset);\r\n lengths.push(ring.length);\r\n }\r\n } else if (feature?.geometry?.paths) {\r\n for (const path of feature?.geometry?.paths) {\r\n offset = ArcGisFeatureJSON.deflateCoordinates(path, coords, 2, offset);\r\n lengths.push(path.length);\r\n }\r\n }\r\n renderer.renderPath(lengths, coords, fill, 2, renderer.transform === undefined);\r\n\r\n }\r\n } else if (responseObj?.geometryType === \"esriGeometryPoint\" || responseObj?.geometryType === \"esriGeometryMultiPoint\") {\r\n for (const feature of responseObj.features) {\r\n // TODO: Add support for multipoint\r\n if (feature.geometry) {\r\n const lengths: number[] = [];\r\n const coords: number[] = [feature.geometry.x, feature.geometry.y];\r\n renderer.renderPoint(lengths, coords, 2, renderer.transform === undefined);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Converts an [[x1,y1], [x2,y2], ...] to [x1,y1,x2,y2, ...]\r\n // stride is the number of dimensions\r\n // https://github.com/openlayers/openlayers/blob/7a2f87caca9ddc1912d910f56eb5637445fc11f6/src/ol/geom/flat/deflate.js#L26\r\n protected static deflateCoordinates( coordinates: number[][], flatCoordinates: number[], stride: number, offset: number) {\r\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\r\n const coordinate = coordinates[i];\r\n for (let j = 0; j < stride; ++j)\r\n flatCoordinates[offset++] = coordinate[j];\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n public readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]) {\r\n const responseObj = response.data;\r\n if (responseObj === undefined || !Array.isArray(responseObj.features))\r\n return;\r\n\r\n const layerInfo: MapLayerFeatureInfo = {layerName: this._settings.name};\r\n\r\n // Create a signature index for every field name / type.\r\n const fieldsType: {[key: string]: ArcGisFieldType} = {};\r\n for (const fieldInfo of responseObj.fields) {\r\n fieldsType[fieldInfo.name] = fieldInfo.type;\r\n }\r\n\r\n const getStandardTypeName = (fieldType: ArcGisFieldType) => {\r\n switch (fieldType) {\r\n case \"esriFieldTypeInteger\":\r\n case \"esriFieldTypeSmallInteger\":\r\n case \"esriFieldTypeOID\":\r\n return StandardTypeNames.Integer;\r\n case \"esriFieldTypeDouble\":\r\n return StandardTypeNames.Double;\r\n case \"esriFieldTypeSingle\":\r\n return StandardTypeNames.Float;\r\n case \"esriFieldTypeDate\":\r\n return StandardTypeNames.DateTime;\r\n default:\r\n return StandardTypeNames.String;\r\n }\r\n };\r\n\r\n const getRecordInfo = (fieldName: string, value: any) => {\r\n const propertyValue: PrimitiveValue = {valueFormat: PropertyValueFormat.Primitive};\r\n\r\n if (value === null) {\r\n value = undefined;\r\n }\r\n\r\n const strValue = `${value}`;\r\n const fieldType = fieldsType[fieldName];\r\n switch (fieldType) {\r\n case \"esriFieldTypeInteger\":\r\n case \"esriFieldTypeSmallInteger\":\r\n case \"esriFieldTypeOID\":\r\n propertyValue.value = value as number;\r\n break;\r\n case \"esriFieldTypeDouble\":\r\n case \"esriFieldTypeSingle\":\r\n propertyValue.value = this.toFixedWithoutPadding(value);\r\n break;\r\n case \"esriFieldTypeDate\":\r\n propertyValue.value = new Date(value);\r\n break;\r\n default:\r\n if (value !== undefined)\r\n propertyValue.value = strValue;\r\n\r\n break;\r\n }\r\n\r\n const typename = getStandardTypeName(fieldType);\r\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\r\n\r\n return new MapFeatureInfoRecord (propertyValue, {name: fieldName, displayLabel: fieldName, typename});\r\n };\r\n\r\n for (const feature of responseObj.features) {\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n records : [],\r\n };\r\n\r\n for (const [key, value] of Object.entries(feature.attributes))\r\n subLayerInfo.records?.push(getRecordInfo(key,value));\r\n\r\n if (layerInfo.info === undefined)\r\n layerInfo.info = [];\r\n\r\n if (!(layerInfo.info instanceof HTMLElement))\r\n layerInfo.info.push(subLayerInfo);\r\n }\r\n\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ArcGisFeatureJSON.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureJSON.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { MapFeatureInfoRecord, MapLayerFeatureInfo, MapSubLayerFeatureInfo } from \"@itwin/core-frontend\";\nimport { Transform } from \"@itwin/core-geometry\";\nimport { ArcGisFeatureReader } from \"./ArcGisFeatureReader\";\nimport { ArcGisFeatureRenderer } from \"./ArcGisFeatureRenderer\";\nimport { ArcGisFieldType, ArcGisResponseData } from \"./ArcGisFeatureResponse\";\n\n/** @internal */\nexport class ArcGisFeatureJSON extends ArcGisFeatureReader {\n public transform: Transform|undefined;\n\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\n super(settings, layerMetadata);\n }\n\n public readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer) {\n const responseObj = response.data;\n\n if (responseObj?.geometryType === \"esriGeometryPolyline\" || responseObj?.geometryType === \"esriGeometryPolygon\") {\n const fill = (responseObj.geometryType === \"esriGeometryPolygon\");\n for (const feature of responseObj.features) {\n let offset = 0;\n const lengths: number[] = [];\n const coords: number[] = [];\n\n if (feature?.geometry?.rings) {\n for (const ring of feature?.geometry?.rings) {\n offset = ArcGisFeatureJSON.deflateCoordinates(ring, coords, 2, offset);\n lengths.push(ring.length);\n }\n } else if (feature?.geometry?.paths) {\n for (const path of feature?.geometry?.paths) {\n offset = ArcGisFeatureJSON.deflateCoordinates(path, coords, 2, offset);\n lengths.push(path.length);\n }\n }\n renderer.renderPath(lengths, coords, fill, 2, renderer.transform === undefined);\n\n }\n } else if (responseObj?.geometryType === \"esriGeometryPoint\" || responseObj?.geometryType === \"esriGeometryMultiPoint\") {\n for (const feature of responseObj.features) {\n // TODO: Add support for multipoint\n if (feature.geometry) {\n const lengths: number[] = [];\n const coords: number[] = [feature.geometry.x, feature.geometry.y];\n renderer.renderPoint(lengths, coords, 2, renderer.transform === undefined);\n }\n }\n }\n }\n\n // Converts an [[x1,y1], [x2,y2], ...] to [x1,y1,x2,y2, ...]\n // stride is the number of dimensions\n // https://github.com/openlayers/openlayers/blob/7a2f87caca9ddc1912d910f56eb5637445fc11f6/src/ol/geom/flat/deflate.js#L26\n protected static deflateCoordinates( coordinates: number[][], flatCoordinates: number[], stride: number, offset: number) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n const coordinate = coordinates[i];\n for (let j = 0; j < stride; ++j)\n flatCoordinates[offset++] = coordinate[j];\n }\n\n return offset;\n }\n\n public readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]) {\n const responseObj = response.data;\n if (responseObj === undefined || !Array.isArray(responseObj.features))\n return;\n\n const layerInfo: MapLayerFeatureInfo = {layerName: this._settings.name};\n\n // Create a signature index for every field name / type.\n const fieldsType: {[key: string]: ArcGisFieldType} = {};\n for (const fieldInfo of responseObj.fields) {\n fieldsType[fieldInfo.name] = fieldInfo.type;\n }\n\n const getStandardTypeName = (fieldType: ArcGisFieldType) => {\n switch (fieldType) {\n case \"esriFieldTypeInteger\":\n case \"esriFieldTypeSmallInteger\":\n case \"esriFieldTypeOID\":\n return StandardTypeNames.Integer;\n case \"esriFieldTypeDouble\":\n return StandardTypeNames.Double;\n case \"esriFieldTypeSingle\":\n return StandardTypeNames.Float;\n case \"esriFieldTypeDate\":\n return StandardTypeNames.DateTime;\n default:\n return StandardTypeNames.String;\n }\n };\n\n const getRecordInfo = (fieldName: string, value: any) => {\n const propertyValue: PrimitiveValue = {valueFormat: PropertyValueFormat.Primitive};\n\n if (value === null) {\n value = undefined;\n }\n\n const strValue = `${value}`;\n const fieldType = fieldsType[fieldName];\n switch (fieldType) {\n case \"esriFieldTypeInteger\":\n case \"esriFieldTypeSmallInteger\":\n case \"esriFieldTypeOID\":\n propertyValue.value = value as number;\n break;\n case \"esriFieldTypeDouble\":\n case \"esriFieldTypeSingle\":\n propertyValue.value = this.toFixedWithoutPadding(value);\n break;\n case \"esriFieldTypeDate\":\n propertyValue.value = new Date(value);\n break;\n default:\n if (value !== undefined)\n propertyValue.value = strValue;\n\n break;\n }\n\n const typename = getStandardTypeName(fieldType);\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\n\n return new MapFeatureInfoRecord (propertyValue, {name: fieldName, displayLabel: fieldName, typename});\n };\n\n for (const feature of responseObj.features) {\n const subLayerInfo: MapSubLayerFeatureInfo = {\n subLayerName: this._layerMetadata.name,\n displayFieldName: this._layerMetadata.name,\n records : [],\n };\n\n for (const [key, value] of Object.entries(feature.attributes))\n subLayerInfo.records?.push(getRecordInfo(key,value));\n\n if (layerInfo.info === undefined)\n layerInfo.info = [];\n\n if (!(layerInfo.info instanceof HTMLElement))\n layerInfo.info.push(subLayerInfo);\n }\n\n featureInfos.push(layerInfo);\n }\n}\n"]}
@@ -1,15 +1,15 @@
1
- import { ArcGisFeatureRenderer } from "./ArcGisFeatureRenderer";
2
- import { esriPBuffer } from "../ArcGisFeature/esriPBuffer.gen";
3
- import { MapLayerFeatureInfo } from "@itwin/core-frontend";
4
- import { ImageMapLayerSettings } from "@itwin/core-common";
5
- import { ArcGisFeatureReader } from "./ArcGisFeatureReader";
6
- import { ArcGisResponseData } from "./ArcGisFeatureResponse";
7
- import { ArcGisFeatureGeometryType } from "./ArcGisFeatureQuery";
8
- /** @internal */
9
- export declare class ArcGisFeaturePBF extends ArcGisFeatureReader {
10
- constructor(settings: ImageMapLayerSettings, layerMetadata: any);
11
- static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType;
12
- readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer): void;
13
- readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]): void;
14
- }
1
+ import { ArcGisFeatureRenderer } from "./ArcGisFeatureRenderer";
2
+ import { esriPBuffer } from "../ArcGisFeature/esriPBuffer.gen";
3
+ import { MapLayerFeatureInfo } from "@itwin/core-frontend";
4
+ import { ImageMapLayerSettings } from "@itwin/core-common";
5
+ import { ArcGisFeatureReader } from "./ArcGisFeatureReader";
6
+ import { ArcGisResponseData } from "./ArcGisFeatureResponse";
7
+ import { ArcGisFeatureGeometryType } from "./ArcGisFeatureQuery";
8
+ /** @internal */
9
+ export declare class ArcGisFeaturePBF extends ArcGisFeatureReader {
10
+ constructor(settings: ImageMapLayerSettings, layerMetadata: any);
11
+ static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType;
12
+ readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer): void;
13
+ readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]): void;
14
+ }
15
15
  //# sourceMappingURL=ArcGisFeaturePBF.d.ts.map