@itwin/map-layers-formats 4.1.0-dev.63 → 4.1.0-dev.66

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 (50) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts +3 -1
  3. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +1 -1
  4. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js +4 -0
  5. package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js.map +1 -1
  6. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +10 -4
  7. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  8. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +71 -12
  9. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  10. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +1 -0
  11. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -1
  12. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js +18 -0
  13. package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -1
  14. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +9 -1
  15. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -1
  16. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js +144 -110
  17. package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -1
  18. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +32 -77
  19. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
  20. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +88 -128
  21. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  22. package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts +152 -0
  23. package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts.map +1 -0
  24. package/lib/cjs/ArcGisFeature/EsriSymbology.js +181 -0
  25. package/lib/cjs/ArcGisFeature/EsriSymbology.js.map +1 -0
  26. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts +3 -1
  27. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +1 -1
  28. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js +4 -0
  29. package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js.map +1 -1
  30. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +10 -4
  31. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  32. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +71 -12
  33. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  34. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +1 -0
  35. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -1
  36. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js +18 -0
  37. package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -1
  38. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +9 -1
  39. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -1
  40. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js +144 -110
  41. package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -1
  42. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +32 -77
  43. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
  44. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +84 -124
  45. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  46. package/lib/esm/ArcGisFeature/EsriSymbology.d.ts +152 -0
  47. package/lib/esm/ArcGisFeature/EsriSymbology.d.ts.map +1 -0
  48. package/lib/esm/ArcGisFeature/EsriSymbology.js +170 -0
  49. package/lib/esm/ArcGisFeature/EsriSymbology.js.map +1 -0
  50. package/package.json +11 -11
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EsriUniqueValueRenderer = exports.EsriSimpleRenderer = exports.EsriRenderer = exports.EsriUniqueValueInfo = exports.EsriSFS = exports.EsriPMS = exports.EsriSLS = exports.EsriSymbol = void 0;
8
+ const core_bentley_1 = require("@itwin/core-bentley");
9
+ const core_common_1 = require("@itwin/core-common");
10
+ // Convert a channel array [r, g, b, a] to ColorDef
11
+ function colorFromArray(channels) {
12
+ if (channels && channels.length === 4) {
13
+ // Alpha channel is reversed, 255 = opaque
14
+ return core_common_1.ColorDef.from(channels[0], channels[1], channels[2], 255 - channels[3]);
15
+ }
16
+ return undefined;
17
+ }
18
+ /** @internal */
19
+ class EsriSymbol {
20
+ static fromJSON(props) {
21
+ if (props.type === "esriSFS") {
22
+ return EsriSFS.fromJSON(props);
23
+ }
24
+ else if (props.type === "esriSLS") {
25
+ return EsriSLS.fromJSON(props);
26
+ }
27
+ else if (props.type === "esriPMS") {
28
+ return EsriPMS.fromJSON(props);
29
+ }
30
+ throw new Error("Unknown ESRI symbology type");
31
+ }
32
+ }
33
+ exports.EsriSymbol = EsriSymbol;
34
+ /** @internal */
35
+ class EsriSLS {
36
+ get color() { return colorFromArray(this.props.color); }
37
+ get type() { return this.props.type; }
38
+ get width() { return this.props.width; }
39
+ get style() { return this.props.style; }
40
+ constructor(json) {
41
+ this.props = json;
42
+ }
43
+ static fromJSON(json) {
44
+ return new EsriSLS(json);
45
+ }
46
+ }
47
+ exports.EsriSLS = EsriSLS;
48
+ /** @internal */
49
+ class EsriPMS {
50
+ get type() { return this.props.type; }
51
+ get url() { return this.props.url; }
52
+ get imageData() { return this.props.imageData; }
53
+ get imageUrl() { return `data:${this.contentType};base64,${this.imageData}`; }
54
+ get image() {
55
+ (0, core_bentley_1.assert)(this._image !== undefined);
56
+ return this._image;
57
+ }
58
+ get contentType() { return this.props.contentType; }
59
+ get width() { return this.props.width; }
60
+ get height() { return this.props.height; }
61
+ get xoffset() { return this.props.xoffset; }
62
+ get yoffset() { return this.props.yoffset; }
63
+ get angle() { return this.props.angle; }
64
+ async loadImage() {
65
+ if (this._image === undefined) {
66
+ this._image = new Image();
67
+ return new Promise((resolve, reject) => {
68
+ if (this._image) {
69
+ this._image.addEventListener("load", () => {
70
+ resolve();
71
+ });
72
+ this._image.src = this.imageUrl;
73
+ }
74
+ else
75
+ reject(new Error("Failed to load image"));
76
+ });
77
+ }
78
+ }
79
+ constructor(json) {
80
+ this.props = json;
81
+ }
82
+ static fromJSON(json) {
83
+ return new EsriPMS(json);
84
+ }
85
+ }
86
+ exports.EsriPMS = EsriPMS;
87
+ /** @internal */
88
+ class EsriSFS {
89
+ get color() { return colorFromArray(this.props.color); }
90
+ get type() { return this.props.type; }
91
+ get style() { return this.props.style; }
92
+ get outline() { return this._outline; }
93
+ constructor(json) {
94
+ this.props = json;
95
+ if (json.outline)
96
+ this._outline = EsriSLS.fromJSON(json.outline);
97
+ }
98
+ static fromJSON(json) {
99
+ return new EsriSFS(json);
100
+ }
101
+ }
102
+ exports.EsriSFS = EsriSFS;
103
+ /** @internal */
104
+ class EsriUniqueValueInfo {
105
+ constructor(json) {
106
+ this.value = json.value;
107
+ this.label = json.label;
108
+ this.description = json.description;
109
+ this.symbol = EsriSymbol.fromJSON(json.symbol);
110
+ }
111
+ static fromJSON(json) {
112
+ return new EsriUniqueValueInfo(json);
113
+ }
114
+ }
115
+ exports.EsriUniqueValueInfo = EsriUniqueValueInfo;
116
+ /** @internal */
117
+ class EsriRenderer {
118
+ static fromJSON(json) {
119
+ if (json.type === "simple")
120
+ return EsriSimpleRenderer.fromJSON(json);
121
+ else if (json.type === "uniqueValue")
122
+ return EsriUniqueValueRenderer.fromJSON(json);
123
+ else
124
+ throw Error("Unknown renderer type");
125
+ }
126
+ }
127
+ exports.EsriRenderer = EsriRenderer;
128
+ /** @internal */
129
+ class EsriSimpleRenderer extends EsriRenderer {
130
+ constructor(json) {
131
+ super();
132
+ this.type = "simple";
133
+ this.type = json.type;
134
+ this.symbol = EsriSymbol.fromJSON(json.symbol);
135
+ }
136
+ async initialize() {
137
+ const promises = [];
138
+ if (this.symbol.type === "esriPMS") {
139
+ promises.push(this.symbol.loadImage());
140
+ }
141
+ await Promise.all(promises);
142
+ }
143
+ static fromJSON(json) {
144
+ return new EsriSimpleRenderer(json);
145
+ }
146
+ }
147
+ exports.EsriSimpleRenderer = EsriSimpleRenderer;
148
+ /** @internal */
149
+ class EsriUniqueValueRenderer extends EsriRenderer {
150
+ get field1() { return this._props.field1 ?? undefined; }
151
+ get field2() { return this._props.field2 ?? undefined; }
152
+ get field3() { return this._props.field3 ?? undefined; }
153
+ constructor(json) {
154
+ super();
155
+ this.type = "uniqueValue";
156
+ this.uniqueValueInfos = [];
157
+ if (json.defaultSymbol)
158
+ this.defaultSymbol = EsriSymbol.fromJSON(json.defaultSymbol);
159
+ for (const uvi of json.uniqueValueInfos) {
160
+ this.uniqueValueInfos.push(EsriUniqueValueInfo.fromJSON(uvi));
161
+ }
162
+ this._props = json;
163
+ }
164
+ async initialize() {
165
+ const promises = [];
166
+ if (this.defaultSymbol?.type === "esriPMS") {
167
+ promises.push(this.defaultSymbol.loadImage());
168
+ }
169
+ for (const uvi of this.uniqueValueInfos) {
170
+ if (uvi.symbol.type === "esriPMS") {
171
+ promises.push(uvi.symbol.loadImage());
172
+ }
173
+ }
174
+ await Promise.all(promises);
175
+ }
176
+ static fromJSON(json) {
177
+ return new EsriUniqueValueRenderer(json);
178
+ }
179
+ }
180
+ exports.EsriUniqueValueRenderer = EsriUniqueValueRenderer;
181
+ //# sourceMappingURL=EsriSymbology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EsriSymbology.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/EsriSymbology.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 { assert } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\n\r\n// Convert a channel array [r, g, b, a] to ColorDef\r\nfunction colorFromArray(channels?: number[]) {\r\n if (channels && channels.length === 4) {\r\n // Alpha channel is reversed, 255 = opaque\r\n return ColorDef.from(channels[0], channels[1], channels[2], 255 - channels[3]);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @internal */\r\nexport type EsriSymbolPropsType = \"esriSFS\" | \"esriPMS\" | \"esriSLS\" | \"esriSMS\" | \"esriTS\" | \"CIMSymbolReference\";\r\n\r\n/** @internal */\r\nexport interface EsriSymbolCommonProps {\r\n type: EsriSymbolPropsType;\r\n}\r\n\r\n/** @internal */\r\nexport type EsriSymbolProps = EsriSLSProps | EsriPMSProps | EsriSFSProps;\r\n\r\n/** @internal */\r\nexport abstract class EsriSymbol implements EsriSymbolCommonProps {\r\n public readonly abstract type: EsriSymbolPropsType;\r\n\r\n public static fromJSON(props: EsriSymbolProps) {\r\n if (props.type === \"esriSFS\") {\r\n return EsriSFS.fromJSON(props as EsriSFSProps);\r\n } else if (props.type === \"esriSLS\") {\r\n return EsriSLS.fromJSON(props as EsriSLSProps);\r\n } else if (props.type === \"esriPMS\") {\r\n return EsriPMS.fromJSON(props as EsriPMSProps);\r\n }\r\n throw new Error(\"Unknown ESRI symbology type\");\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type EsriSLSStyle = \"esriSLSDash\" | \"esriSLSDashDot\" | \"esriSLSDashDotDot\" | \"esriSLSDot\" | \"esriSLSLongDash\" | \"esriSLSLongDashDot\" |\r\n\"esriSLSNull\" | \"esriSLSShortDash\" | \"esriSLSShortDashDot\" | \"esriSLSShortDashDotDot\" | \"esriSLSShortDot\" | \"esriSLSSolid\";\r\n\r\n/** @internal */\r\nexport interface EsriSLSProps extends EsriSymbolCommonProps {\r\n color: number[];\r\n type: EsriSymbolPropsType;\r\n width: number;\r\n style: EsriSLSStyle;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriSLS implements EsriSymbolCommonProps {\r\n public readonly props: EsriSLSProps;\r\n\r\n public get color() { return colorFromArray(this.props.color); }\r\n public get type() { return this.props.type; }\r\n public get width() { return this.props.width; }\r\n public get style() { return this.props.style; }\r\n\r\n constructor(json: EsriSLSProps) {\r\n this.props = json;\r\n }\r\n\r\n public static fromJSON(json: EsriSLSProps) {\r\n return new EsriSLS(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface EsriPMSProps extends EsriSymbolCommonProps {\r\n type: EsriSymbolPropsType;\r\n url: string;\r\n imageData: string;\r\n contentType: string;\r\n width?: number;\r\n height?: number;\r\n xoffset?: number;\r\n yoffset?: number;\r\n angle?: number;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriPMS implements EsriSymbolCommonProps {\r\n public readonly props: EsriPMSProps;\r\n private _image: HTMLImageElement|undefined;\r\n\r\n public get type() { return this.props.type; }\r\n public get url() { return this.props.url; }\r\n public get imageData() { return this.props.imageData; }\r\n public get imageUrl() { return `data:${this.contentType};base64,${this.imageData}`; }\r\n public get image() {\r\n assert(this._image !== undefined);\r\n return this._image;\r\n }\r\n public get contentType() { return this.props.contentType; }\r\n public get width() { return this.props.width; }\r\n public get height() { return this.props.height; }\r\n public get xoffset() { return this.props.xoffset; }\r\n public get yoffset() { return this.props.yoffset; }\r\n public get angle() { return this.props.angle; }\r\n\r\n public async loadImage() {\r\n if (this._image === undefined) {\r\n this._image = new Image();\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n if (this._image) {\r\n this._image.addEventListener(\"load\", () => {\r\n resolve();\r\n });\r\n this._image.src = this.imageUrl;\r\n } else\r\n reject(new Error(\"Failed to load image\"));\r\n });\r\n }\r\n }\r\n\r\n private constructor(json: EsriPMSProps) {\r\n this.props = json;\r\n }\r\n\r\n public static fromJSON(json: EsriPMSProps) {\r\n return new EsriPMS(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type EsriSFSStyleProps = \"esriSFSBackwardDiagonal\" | \"esriSFSCross\" | \"esriSFSDiagonalCross\" | \"esriSFSForwardDiagonal\" | \"esriSFSHorizontal\" | \"esriSFSNull\" | \"esriSFSSolid\" | \"esriSFSVertical\";\r\n\r\n/** @internal */\r\nexport interface EsriSFSProps {\r\n color?: number[];\r\n type: EsriSymbolPropsType;\r\n style: EsriSFSStyleProps;\r\n outline?: EsriSLSProps;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriSFS implements EsriSymbolCommonProps {\r\n public readonly props: EsriSFSProps;\r\n private _outline: EsriSLS | undefined;\r\n\r\n public get color() { return colorFromArray(this.props.color); }\r\n public get type() { return this.props.type; }\r\n public get style() { return this.props.style; }\r\n public get outline() { return this._outline; }\r\n constructor(json: EsriSFSProps) {\r\n this.props = json;\r\n if (json.outline)\r\n this._outline = EsriSLS.fromJSON(json.outline);\r\n }\r\n\r\n public static fromJSON(json: EsriSFSProps): EsriSFS {\r\n return new EsriSFS(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface EsriUniqueValueInfoProps {\r\n value: string;\r\n label?: string;\r\n description?: string;\r\n symbol: EsriSymbolProps;\r\n}\r\n\r\n/** @internal */\r\nexport class EsriUniqueValueInfo {\r\n\r\n public readonly value: string;\r\n public readonly label: string|undefined;\r\n public readonly description: string|undefined;\r\n public readonly symbol: EsriSymbol;\r\n\r\n private constructor(json: EsriUniqueValueInfoProps) {\r\n this.value = json.value;\r\n this.label = json.label;\r\n this.description = json.description;\r\n this.symbol = EsriSymbol.fromJSON(json.symbol);\r\n }\r\n\r\n public static fromJSON(json: EsriUniqueValueInfoProps) {\r\n return new EsriUniqueValueInfo(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface EsriRendererBaseProps {\r\n type: EsriRendererType;\r\n}\r\n\r\n/** @internal */\r\nexport interface EsriSimpleRendererProps extends EsriRendererBaseProps {\r\n symbol: EsriSymbolProps;\r\n}\r\n\r\n/** @internal */\r\nexport interface EsriUniqueValueRendererProps extends EsriRendererBaseProps {\r\n symbol?: EsriSymbolProps;\r\n}\r\n\r\n/** @internal */\r\nexport interface EsriUniqueValueRendererProps extends EsriRendererBaseProps {\r\n field1?: string;\r\n field2?: string;\r\n field3?: string;\r\n defaultSymbol?: EsriSymbolProps;\r\n uniqueValueInfos: EsriUniqueValueInfoProps[];\r\n}\r\n\r\n/** @internal */\r\nexport type EsriRendererType = \"simple\" | \"uniqueValue\";\r\n\r\n/** @internal */\r\nexport type EsriRendererProps = EsriSimpleRendererProps | EsriUniqueValueRendererProps;\r\n\r\n/** @internal */\r\nexport abstract class EsriRenderer {\r\n public readonly abstract type: EsriRendererType;\r\n public abstract initialize(): Promise<void>;\r\n public static fromJSON(json: EsriRendererProps): EsriRenderer {\r\n if (json.type === \"simple\")\r\n return EsriSimpleRenderer.fromJSON(json as EsriSimpleRendererProps);\r\n else if (json.type === \"uniqueValue\")\r\n return EsriUniqueValueRenderer.fromJSON(json as EsriUniqueValueRendererProps);\r\n else\r\n throw Error(\"Unknown renderer type\");\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class EsriSimpleRenderer extends EsriRenderer {\r\n public readonly type: EsriRendererType = \"simple\";\r\n public readonly symbol: EsriSymbol;\r\n\r\n protected constructor(json: EsriSimpleRendererProps) {\r\n super();\r\n this.type = json.type;\r\n this.symbol = EsriSymbol.fromJSON(json.symbol);\r\n }\r\n public async initialize() {\r\n const promises: Promise<void>[] = [];\r\n if (this.symbol.type === \"esriPMS\") {\r\n promises.push((this.symbol as EsriPMS).loadImage());\r\n }\r\n await Promise.all(promises);\r\n }\r\n\r\n public static override fromJSON(json: EsriSimpleRendererProps) {\r\n return new EsriSimpleRenderer(json);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class EsriUniqueValueRenderer extends EsriRenderer {\r\n private _props: EsriUniqueValueRendererProps;\r\n public readonly type: EsriRendererType = \"uniqueValue\";\r\n public readonly defaultSymbol?: EsriSymbol;\r\n public readonly uniqueValueInfos: EsriUniqueValueInfo[] = [];\r\n\r\n public get field1() { return this._props.field1 ?? undefined; }\r\n public get field2() { return this._props.field2 ?? undefined; }\r\n public get field3() { return this._props.field3 ?? undefined; }\r\n\r\n protected constructor(json: EsriUniqueValueRendererProps) {\r\n super();\r\n if (json.defaultSymbol)\r\n this.defaultSymbol = EsriSymbol.fromJSON(json.defaultSymbol);\r\n for (const uvi of json.uniqueValueInfos) {\r\n this.uniqueValueInfos.push(EsriUniqueValueInfo.fromJSON(uvi));\r\n }\r\n\r\n this._props = json;\r\n }\r\n\r\n public override async initialize() {\r\n const promises: Promise<void>[] = [];\r\n if (this.defaultSymbol?.type === \"esriPMS\") {\r\n promises.push((this.defaultSymbol as EsriPMS).loadImage());\r\n }\r\n for (const uvi of this.uniqueValueInfos) {\r\n if (uvi.symbol.type === \"esriPMS\") {\r\n promises.push((uvi.symbol as EsriPMS).loadImage());\r\n }\r\n }\r\n await Promise.all(promises);\r\n }\r\n\r\n public static override fromJSON(json: EsriUniqueValueRendererProps) {\r\n return new EsriUniqueValueRenderer(json);\r\n }\r\n}\r\n"]}
@@ -1,9 +1,11 @@
1
1
  import { Transform } from "@itwin/core-geometry";
2
2
  import { ArcGisSymbologyRenderer } from "./ArcGisSymbologyRenderer";
3
- import { ArcGisGeometryBaseRenderer } from "@itwin/core-frontend";
3
+ import { ArcGisAttributeDrivenSymbology, ArcGisGeometryBaseRenderer } from "@itwin/core-frontend";
4
+ /** @internal */
4
5
  export declare class ArcGisCanvasRenderer extends ArcGisGeometryBaseRenderer {
5
6
  private _context;
6
7
  private _symbol;
8
+ get attributeSymbology(): ArcGisAttributeDrivenSymbology | undefined;
7
9
  constructor(context: CanvasRenderingContext2D, symbol: ArcGisSymbologyRenderer, world2PixelTransform?: Transform);
8
10
  protected beginPath(): void;
9
11
  protected closePath(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisCanvasRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisCanvasRenderer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,qBAAa,oBAAqB,SAAQ,0BAA0B;IAClE,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,EAAE,SAAS;IAMhH,SAAS,CAAC,SAAS;IAInB,SAAS,CAAC,SAAS;IAInB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAIrC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;cAIrB,IAAI;cAKJ,MAAM;cAKN,YAAY;cAGZ,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAI/C"}
1
+ {"version":3,"file":"ArcGisCanvasRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisCanvasRenderer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElG,gBAAgB;AAChB,qBAAa,oBAAqB,SAAQ,0BAA0B;IAClE,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAA0B;IAEzC,IAAoB,kBAAkB,IAAI,8BAA8B,GAAG,SAAS,CAEnF;gBAEW,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,EAAE,SAAS;IAMhH,SAAS,CAAC,SAAS;IAInB,SAAS,CAAC,SAAS;IAInB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAIrC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;cAIrB,IAAI;cAKJ,MAAM;cAKN,YAAY;cAGZ,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAG/C"}
@@ -3,7 +3,11 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { ArcGisGeometryBaseRenderer } from "@itwin/core-frontend";
6
+ /** @internal */
6
7
  export class ArcGisCanvasRenderer extends ArcGisGeometryBaseRenderer {
8
+ get attributeSymbology() {
9
+ return this._symbol.isAttributeDriven() ? this._symbol : undefined;
10
+ }
7
11
  constructor(context, symbol, world2PixelTransform) {
8
12
  super(world2PixelTransform);
9
13
  this._symbol = symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisCanvasRenderer.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisCanvasRenderer.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAI/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,OAAO,oBAAqB,SAAQ,0BAA0B;IAIlE,YAAY,OAAiC,EAAE,MAA+B,EAAE,oBAAgC;QAC9G,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAES,MAAM,CAAC,CAAS,EAAE,CAAS;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAES,MAAM,CAAC,CAAS,EAAE,CAAS;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,MAAM;QACpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,YAAY;IAC5B,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,CAAS,EAAE,CAAS;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;CAEF","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 { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisSymbologyRenderer } from \"./ArcGisSymbologyRenderer\";\r\nimport { ArcGisGeometryBaseRenderer } from \"@itwin/core-frontend\";\r\n\r\nexport class ArcGisCanvasRenderer extends ArcGisGeometryBaseRenderer {\r\n private _context: CanvasRenderingContext2D;\r\n private _symbol: ArcGisSymbologyRenderer;\r\n\r\n constructor(context: CanvasRenderingContext2D, symbol: ArcGisSymbologyRenderer, world2PixelTransform?: Transform) {\r\n super(world2PixelTransform);\r\n this._symbol = symbol;\r\n this._context = context;\r\n }\r\n\r\n protected beginPath() {\r\n this._context.beginPath();\r\n }\r\n\r\n protected closePath() {\r\n this._context.closePath();\r\n }\r\n\r\n protected lineTo(x: number, y: number) {\r\n this._context.lineTo(x, y);\r\n }\r\n\r\n protected moveTo(x: number, y: number) {\r\n this._context.moveTo(x, y);\r\n }\r\n\r\n protected async fill() {\r\n this._symbol.applyFillStyle(this._context);\r\n this._context.fill();\r\n }\r\n\r\n protected async stroke() {\r\n this._symbol.applyStrokeStyle(this._context);\r\n this._context.stroke();\r\n }\r\n\r\n protected async finishPoints() {\r\n }\r\n\r\n protected async drawPoint(x: number, y: number) {\r\n this._symbol.drawPoint(this._context, x, y);\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"ArcGisCanvasRenderer.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisCanvasRenderer.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAI/F,OAAO,EAAkC,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElG,gBAAgB;AAChB,MAAM,OAAO,oBAAqB,SAAQ,0BAA0B;IAIlE,IAAoB,kBAAkB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAED,YAAY,OAAiC,EAAE,MAA+B,EAAE,oBAAgC;QAC9G,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAES,MAAM,CAAC,CAAS,EAAE,CAAS;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAES,MAAM,CAAC,CAAS,EAAE,CAAS;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,IAAI;QAClB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,MAAM;QACpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,YAAY;IAC5B,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,CAAS,EAAE,CAAS;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF","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 { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisSymbologyRenderer } from \"./ArcGisSymbologyRenderer\";\r\nimport { ArcGisAttributeDrivenSymbology, ArcGisGeometryBaseRenderer } from \"@itwin/core-frontend\";\r\n\r\n/** @internal */\r\nexport class ArcGisCanvasRenderer extends ArcGisGeometryBaseRenderer {\r\n private _context: CanvasRenderingContext2D;\r\n private _symbol: ArcGisSymbologyRenderer;\r\n\r\n public override get attributeSymbology(): ArcGisAttributeDrivenSymbology | undefined {\r\n return this._symbol.isAttributeDriven() ? this._symbol : undefined;\r\n }\r\n\r\n constructor(context: CanvasRenderingContext2D, symbol: ArcGisSymbologyRenderer, world2PixelTransform?: Transform) {\r\n super(world2PixelTransform);\r\n this._symbol = symbol;\r\n this._context = context;\r\n }\r\n\r\n protected beginPath() {\r\n this._context.beginPath();\r\n }\r\n\r\n protected closePath() {\r\n this._context.closePath();\r\n }\r\n\r\n protected lineTo(x: number, y: number) {\r\n this._context.lineTo(x, y);\r\n }\r\n\r\n protected moveTo(x: number, y: number) {\r\n this._context.moveTo(x, y);\r\n }\r\n\r\n protected async fill() {\r\n this._symbol.applyFillStyle(this._context);\r\n this._context.fill();\r\n }\r\n\r\n protected async stroke() {\r\n this._symbol.applyStrokeStyle(this._context);\r\n this._context.stroke();\r\n }\r\n\r\n protected async finishPoints() {\r\n }\r\n\r\n protected async drawPoint(x: number, y: number) {\r\n this._symbol.drawPoint(this._context, x, y);\r\n }\r\n}\r\n"]}
@@ -1,7 +1,8 @@
1
1
  import { Cartographic, ImageMapLayerSettings, ImageSource } from "@itwin/core-common";
2
2
  import { Transform } from "@itwin/core-geometry";
3
3
  import { ArcGISImageryProvider, HitDetail, ImageryMapTileTree, MapLayerFeatureInfo, QuadId } from "@itwin/core-frontend";
4
- import { ArcGisExtent, ArcGisFeatureFormat, ArcGisFeatureResultType, ArcGisGeometry } from "./ArcGisFeatureQuery";
4
+ import { ArcGisExtent, ArcGisFeatureFormat, ArcGisFeatureGeometryType, ArcGisFeatureResultType, ArcGisGeometry } from "./ArcGisFeatureQuery";
5
+ import { EsriPMS, EsriSFS, EsriSLS } from "./EsriSymbology";
5
6
  /**
6
7
  * @internal
7
8
  */
@@ -19,17 +20,22 @@ export declare class ArcGisFeatureProvider extends ArcGISImageryProvider {
19
20
  private _layerId;
20
21
  private _layerMetadata;
21
22
  private _format;
22
- serviceJson: any;
23
- private _symbologyRenderer;
24
- private static readonly _nbSubTiles;
25
23
  private _outSR;
26
24
  private _maxDepthFromLod;
27
25
  private _minDepthFromLod;
26
+ private _defaultSymbol;
27
+ private _renderer;
28
+ private static readonly _nbSubTiles;
29
+ serviceJson: any;
30
+ private static readonly defaultPMS;
31
+ private static readonly defaultSLS;
32
+ private static readonly defaultSFS;
28
33
  get minimumZoomLevel(): number;
29
34
  get maximumZoomLevel(): number;
30
35
  private static _extentCache;
31
36
  constructor(settings: ImageMapLayerSettings);
32
37
  initialize(): Promise<void>;
38
+ static getDefaultSymbology(geomType: ArcGisFeatureGeometryType): EsriSFS | EsriSLS | EsriPMS | undefined;
33
39
  private fetchLayerExtent;
34
40
  private setCartoRangeFromExtentJson;
35
41
  protected getLayerMetadata(layerId: number): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisFeatureProvider.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAkC,MAAM,oBAAoB,CAAC;AAEtH,OAAO,EAA8B,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAA2C,qBAAqB,EAA0C,SAAS,EAAE,kBAAkB,EAAqB,mBAAmB,EAAiC,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE5P,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAsB,uBAAuB,EAAE,cAAc,EAAkC,MAAM,sBAAsB,CAAC;AAStK;;EAEE;AACF,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;EAEE;AACF,qBAAa,qBAAsB,SAAQ,qBAAqB;IAE9D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,gCAAgC,CAAS;IAEjD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAkC;IAC1C,WAAW,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAU;IAExB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,IAAoB,gBAAgB,IAAI,MAAM,CAAkC;IAChF,IAAoB,gBAAgB,IAAI,MAAM,CAAkC;IAEhF,OAAO,CAAC,MAAM,CAAC,YAAY,CAA0B;gBAEzC,QAAQ,EAAE,qBAAqB;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAuJnC,gBAAgB;IAmB9B,OAAO,CAAC,2BAA2B;cAanB,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAYhD,IAAoB,QAAQ,IAAI,MAAM,CAAgB;IACtD,IAAW,MAAM,IAAI,mBAAmB,GAAG,SAAS,CAAyB;IAGhE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,uBAAuB,EAAE,YAAY,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IA4DlR,cAAc,CAAC,YAAY,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YA6E1J,SAAS;IAgBhB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;IAU1G,SAAS,CAAC,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAsBnE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CA2GjH"}
1
+ {"version":3,"file":"ArcGisFeatureProvider.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureProvider.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
+ var _a;
5
6
  import { ImageSource, ImageSourceFormat, ServerError } from "@itwin/core-common";
6
7
  import { base64StringToUint8Array, IModelStatus, Logger } from "@itwin/core-bentley";
7
8
  import { Matrix4d, Point3d, Range2d } from "@itwin/core-geometry";
@@ -12,6 +13,7 @@ import { ArcGisPbfFeatureReader } from "./ArcGisPbfFeatureReader";
12
13
  import { ArcGisJsonFeatureReader } from "./ArcGisJsonFeatureReader";
13
14
  import { ArcGisFeatureResponse } from "./ArcGisFeatureResponse";
14
15
  import { ArcGisCanvasRenderer } from "./ArcGisCanvasRenderer";
16
+ import { EsriPMS, EsriRenderer, EsriSFS, EsriSLS } from "./EsriSymbology";
15
17
  const loggerCategory = "MapLayersFormats.ArcGISFeature";
16
18
  /** Provide tiles from a ESRI ArcGIS Feature service
17
19
  * @internal
@@ -21,7 +23,7 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
21
23
  get maximumZoomLevel() { return this._maxDepthFromLod; }
22
24
  constructor(settings) {
23
25
  super(settings, true);
24
- // Debug flags, should always be commited to FALSE !
26
+ // Debug flags, should always be committed to FALSE !
25
27
  this._drawDebugInfo = false;
26
28
  this._debugFeatureGeom = false;
27
29
  this._supportsCoordinatesQuantization = false;
@@ -161,7 +163,35 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
161
163
  this._minDepthFromLod = scales.minLod;
162
164
  // Some servers advertises a max LOD of 0, it should be interpreted as 'not defined' (otherwise a max lod of 0 would would mean never display anything)
163
165
  this._maxDepthFromLod = (scales.maxLod ? scales.maxLod : this.defaultMaximumZoomLevel);
164
- this._symbologyRenderer = new ArcGisSymbologyRenderer(this._layerMetadata?.geometryType, this._layerMetadata?.drawingInfo?.renderer);
166
+ this._defaultSymbol = ArcGisFeatureProvider.getDefaultSymbology(this._layerMetadata?.geometryType);
167
+ if (!this._defaultSymbol) {
168
+ Logger.logError(loggerCategory, "Could not determine default symbology: geometry type not supported");
169
+ throw new Error("Could not determine default symbology: geometry type not supported");
170
+ }
171
+ if (this._defaultSymbol.type === "esriPMS") {
172
+ await this._defaultSymbol.loadImage();
173
+ }
174
+ try {
175
+ this._renderer = EsriRenderer.fromJSON(this._layerMetadata?.drawingInfo?.renderer);
176
+ await this._renderer.initialize();
177
+ }
178
+ catch {
179
+ Logger.logError(loggerCategory, `Could not initialize symbology renderer`);
180
+ }
181
+ }
182
+ static getDefaultSymbology(geomType) {
183
+ if (geomType) {
184
+ if (geomType === "esriGeometryPoint" || geomType === "esriGeometryMultipoint") {
185
+ return EsriPMS.fromJSON(ArcGisFeatureProvider.defaultPMS);
186
+ }
187
+ else if (geomType === "esriGeometryLine" || geomType === "esriGeometryPolyline") {
188
+ return EsriSLS.fromJSON(ArcGisFeatureProvider.defaultSLS);
189
+ }
190
+ else if (geomType === "esriGeometryPolygon") {
191
+ return EsriSFS.fromJSON(ArcGisFeatureProvider.defaultSFS);
192
+ }
193
+ }
194
+ return undefined;
165
195
  }
166
196
  async fetchLayerExtent() {
167
197
  let extentJson;
@@ -293,15 +323,17 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
293
323
  try {
294
324
  let responseData = await doFeatureInfoQuery("PBF", "", true);
295
325
  if (responseData) {
296
- Logger.logInfo(loggerCategory, JSON.stringify(responseData.data.toObject()));
326
+ const json = JSON.stringify(responseData.data.toObject());
327
+ Logger.logInfo(loggerCategory, json);
297
328
  }
298
329
  responseData = await doFeatureInfoQuery("JSON", "", true);
299
330
  if (responseData) {
300
- Logger.logInfo(loggerCategory, JSON.stringify(responseData.data));
331
+ const json = JSON.stringify(responseData.data);
332
+ Logger.logInfo(loggerCategory, json);
301
333
  }
302
334
  }
303
335
  catch (e) {
304
- Logger.logInfo(loggerCategory, `Error occured with debug FeatureInfo: ${e}`);
336
+ Logger.logInfo(loggerCategory, `Error occurred with debug FeatureInfo: ${e}`);
305
337
  }
306
338
  }
307
339
  try {
@@ -330,7 +362,13 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
330
362
  return undefined;
331
363
  }
332
364
  const geomOverride = (refineEnvelope ? { geom: refineEnvelope, type: "esriGeometryEnvelope" } : undefined);
333
- const tileUrl = this.constructFeatureUrl(row, column, zoomLevel, this.format, "tile", geomOverride);
365
+ let outFields;
366
+ if (this._renderer?.type === "uniqueValue") {
367
+ const uvRenderer = this._renderer;
368
+ if (uvRenderer.field1)
369
+ outFields = uvRenderer.field1;
370
+ }
371
+ const tileUrl = this.constructFeatureUrl(row, column, zoomLevel, this.format, "tile", geomOverride, outFields);
334
372
  if (!tileUrl || tileUrl.url.length === 0) {
335
373
  Logger.logError(loggerCategory, `Could not construct feature query URL for tile ${zoomLevel}/${row}/${column}`);
336
374
  return undefined;
@@ -377,10 +415,6 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
377
415
  Logger.logError(loggerCategory, "No canvas context available for loading tile.");
378
416
  return undefined;
379
417
  }
380
- if (!this._symbologyRenderer) {
381
- Logger.logError(loggerCategory, "No symbology renderer available for loading tile.");
382
- return undefined;
383
- }
384
418
  try {
385
419
  // Compute transform if CoordinatesQuantization is not supported by service
386
420
  let transfo;
@@ -390,7 +424,9 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
390
424
  Logger.logError(loggerCategory, `Could not compute data transformation for tile (${zoomLevel}/${row}/${column})`);
391
425
  }
392
426
  }
393
- const renderer = new ArcGisCanvasRenderer(ctx, this._symbologyRenderer, transfo);
427
+ // Create the renderer
428
+ const symbRenderer = ArcGisSymbologyRenderer.create(this._renderer, this._defaultSymbol);
429
+ const renderer = new ArcGisCanvasRenderer(ctx, symbRenderer, transfo);
394
430
  const featureReader = this.format === "PBF" ? new ArcGisPbfFeatureReader(this._settings, this._layerMetadata) : new ArcGisJsonFeatureReader(this._settings, this._layerMetadata);
395
431
  const getSubEnvelopes = (envelope) => {
396
432
  const dx = (envelope.xmax - envelope.xmin) * 0.5;
@@ -466,7 +502,30 @@ class ArcGisFeatureProvider extends ArcGISImageryProvider {
466
502
  return undefined;
467
503
  }
468
504
  }
469
- ArcGisFeatureProvider._nbSubTiles = 2;
505
+ _a = ArcGisFeatureProvider;
506
+ ArcGisFeatureProvider._nbSubTiles = 2; // Number of subtiles for a single axis
507
+ ArcGisFeatureProvider.defaultPMS = {
508
+ type: "esriPMS",
509
+ url: "",
510
+ contentType: "image/png",
511
+ imageData: "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAmBJREFUOE+Nk01IVFEUx//n3jfvOZOaJkMtiiJ7o9RG3LgoqKhFSFJBTS1ahFBBi0ijfJXCIyQr+hBbSIsoW7iQoKKFCw2CkAI3tZAgy8Ei+xhoTCbnje/NPfHGnA816KzuPR+/c8/HJRQJE7o+VUhym0DcCOYGgBQEXjOLlyqo+nHanCkMoaL4rslKjZwOQLT4ek3Mmz3FACFNLB67ut6M1nWphbg8wI6VyJK5KEH0EQFVJRKbwzokAW++p/ErraAYSQK3u47bC3vLnA+ZB9i2gHF0oyQMCfCGNaUa+vauxs71wWz2V18cnBj8gQ8J1/eeBnHUa4sMFQDGdGno+4gwEAoQzjVUon3rqlx1KY9x7+0MWobjAPg3QJ2eZV4tAEyFNCN5FkSXyw2B3j1hRGvLcgBXMV5MptA4MOXr0gT0u5bZnAf0jBsyiSgJPAxqhON1K3FlRxUMvwFAtv7u0Wl0jvwEmJNEuOhakTt5wKEBifr6Oo14BIBRpgt07w6jcVMIngKGY7NofR5HwlF+zDcpsC193vyYB/innvHywCzdZfAR/+onX1segBTAxHzzfPE7/8yzzIPLjJE1LTixHZx5CtCK4gXLzovBiDPUsYxVM7gUkB3nWKlm6DYEnQGzXARxCOK+a1WfKtQXb6LNAvr7iCboCUA1Ocdsdv5KLPe7F6pH/w3wLbc+BwOuc5IZ1wEE/jonQbjptZn24tKKX7BgvR2r0NKZRwDvAqCI+Z30VJPTURv7P4A9psuQcYAUPwAoReBLrmX2Lmls7i8sZ7kWLwuoxA1FVJGxzMPLufi6P2r+2xFbOUjGAAAAAElFTkSuQmCC",
512
+ width: 16,
513
+ height: 16,
514
+ xoffset: -8,
515
+ yoffset: -16,
516
+ };
517
+ ArcGisFeatureProvider.defaultSLS = {
518
+ type: "esriSLS",
519
+ color: [0, 0, 0, 255],
520
+ width: 1,
521
+ style: "esriSLSSolid",
522
+ };
523
+ ArcGisFeatureProvider.defaultSFS = {
524
+ type: "esriSFS",
525
+ color: [0, 0, 255, 255],
526
+ style: "esriSFSSolid",
527
+ outline: _a.defaultSLS,
528
+ };
470
529
  ArcGisFeatureProvider._extentCache = new Map();
471
530
  export { ArcGisFeatureProvider };
472
531
  //# sourceMappingURL=ArcGisFeatureProvider.js.map