@itwin/map-layers-formats 4.6.0-dev.9 → 4.7.0-dev.3
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.
- package/CHANGELOG.md +13 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +15 -6
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +64 -54
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts +7 -11
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js +3 -19
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +3 -3
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js +3 -4
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +3 -3
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js +2 -3
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +35 -15
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +54 -48
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts +2 -1
- package/lib/cjs/ArcGisFeature/EsriSymbology.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/EsriSymbology.js +2 -1
- package/lib/cjs/ArcGisFeature/EsriSymbology.js.map +1 -1
- package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js +1 -1
- package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- package/lib/cjs/Feature/DefaultMarkerIcon.d.ts +10 -0
- package/lib/cjs/Feature/DefaultMarkerIcon.d.ts.map +1 -0
- package/lib/cjs/Feature/DefaultMarkerIcon.js +31 -0
- package/lib/cjs/Feature/DefaultMarkerIcon.js.map +1 -0
- package/lib/cjs/Feature/FeatureCanvasRenderer.d.ts +20 -0
- package/lib/cjs/Feature/FeatureCanvasRenderer.d.ts.map +1 -0
- package/lib/cjs/{ArcGisFeature/ArcGisCanvasRenderer.js → Feature/FeatureCanvasRenderer.js} +7 -6
- package/lib/cjs/Feature/FeatureCanvasRenderer.js.map +1 -0
- package/lib/cjs/Feature/FeatureInfoReader.d.ts +11 -0
- package/lib/cjs/Feature/FeatureInfoReader.d.ts.map +1 -0
- package/lib/cjs/Feature/FeatureInfoReader.js +35 -0
- package/lib/cjs/Feature/FeatureInfoReader.js.map +1 -0
- package/lib/cjs/Feature/FeatureSymbology.d.ts +8 -0
- package/lib/cjs/Feature/FeatureSymbology.d.ts.map +1 -0
- package/lib/cjs/Feature/FeatureSymbology.js +12 -0
- package/lib/cjs/Feature/FeatureSymbology.js.map +1 -0
- package/lib/cjs/Feature/RandomMapColor.d.ts +8 -0
- package/lib/cjs/Feature/RandomMapColor.d.ts.map +1 -0
- package/lib/cjs/Feature/RandomMapColor.js +29 -0
- package/lib/cjs/Feature/RandomMapColor.js.map +1 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometry.d.ts +18 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometry.d.ts.map +1 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometry.js +11 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometry.js.map +1 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometryReader.d.ts +11 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometryReader.d.ts.map +1 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometryReader.js +83 -0
- package/lib/cjs/GeoJSON/GeoJSONGeometryReader.js.map +1 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesFormat.d.ts +9 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesFormat.d.ts.map +1 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesFormat.js +94 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesFormat.js.map +1 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesProvider.d.ts +54 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesProvider.d.ts.map +1 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesProvider.js +477 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesProvider.js.map +1 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesReader.d.ts +23 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesReader.d.ts.map +1 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesReader.js +139 -0
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesReader.js.map +1 -0
- package/lib/cjs/Tools/GeometryTerrainDraper.d.ts +20 -0
- package/lib/cjs/Tools/GeometryTerrainDraper.d.ts.map +1 -0
- package/lib/cjs/Tools/GeometryTerrainDraper.js +153 -0
- package/lib/cjs/Tools/GeometryTerrainDraper.js.map +1 -0
- package/lib/cjs/Tools/MapFeatureInfoDecorator.d.ts +15 -10
- package/lib/cjs/Tools/MapFeatureInfoDecorator.d.ts.map +1 -1
- package/lib/cjs/Tools/MapFeatureInfoDecorator.js +191 -150
- package/lib/cjs/Tools/MapFeatureInfoDecorator.js.map +1 -1
- package/lib/cjs/Tools/MapFeatureInfoTool.d.ts.map +1 -1
- package/lib/cjs/Tools/MapFeatureInfoTool.js +7 -4
- package/lib/cjs/Tools/MapFeatureInfoTool.js.map +1 -1
- package/lib/cjs/mapLayersFormats.d.ts.map +1 -1
- package/lib/cjs/mapLayersFormats.js +5 -2
- package/lib/cjs/mapLayersFormats.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +1 -2
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +15 -6
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +63 -55
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts +7 -11
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js +3 -19
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts +3 -3
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js +3 -4
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts +3 -3
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js +2 -3
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +35 -15
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +52 -47
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/esm/ArcGisFeature/EsriSymbology.d.ts +2 -1
- package/lib/esm/ArcGisFeature/EsriSymbology.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/EsriSymbology.js +2 -1
- package/lib/esm/ArcGisFeature/EsriSymbology.js.map +1 -1
- package/lib/esm/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- package/lib/esm/Feature/DefaultMarkerIcon.d.ts +10 -0
- package/lib/esm/Feature/DefaultMarkerIcon.d.ts.map +1 -0
- package/lib/esm/Feature/DefaultMarkerIcon.js +27 -0
- package/lib/esm/Feature/DefaultMarkerIcon.js.map +1 -0
- package/lib/esm/Feature/FeatureCanvasRenderer.d.ts +20 -0
- package/lib/esm/Feature/FeatureCanvasRenderer.d.ts.map +1 -0
- package/lib/esm/{ArcGisFeature/ArcGisCanvasRenderer.js → Feature/FeatureCanvasRenderer.js} +6 -5
- package/lib/esm/Feature/FeatureCanvasRenderer.js.map +1 -0
- package/lib/esm/Feature/FeatureInfoReader.d.ts +11 -0
- package/lib/esm/Feature/FeatureInfoReader.d.ts.map +1 -0
- package/lib/esm/Feature/FeatureInfoReader.js +31 -0
- package/lib/esm/Feature/FeatureInfoReader.js.map +1 -0
- package/lib/esm/Feature/FeatureSymbology.d.ts +8 -0
- package/lib/esm/Feature/FeatureSymbology.d.ts.map +1 -0
- package/lib/esm/Feature/FeatureSymbology.js +8 -0
- package/lib/esm/Feature/FeatureSymbology.js.map +1 -0
- package/lib/esm/Feature/RandomMapColor.d.ts +8 -0
- package/lib/esm/Feature/RandomMapColor.d.ts.map +1 -0
- package/lib/esm/Feature/RandomMapColor.js +25 -0
- package/lib/esm/Feature/RandomMapColor.js.map +1 -0
- package/lib/esm/GeoJSON/GeoJSONGeometry.d.ts +18 -0
- package/lib/esm/GeoJSON/GeoJSONGeometry.d.ts.map +1 -0
- package/lib/esm/GeoJSON/GeoJSONGeometry.js +7 -0
- package/lib/esm/GeoJSON/GeoJSONGeometry.js.map +1 -0
- package/lib/esm/GeoJSON/GeoJSONGeometryReader.d.ts +11 -0
- package/lib/esm/GeoJSON/GeoJSONGeometryReader.d.ts.map +1 -0
- package/lib/esm/GeoJSON/GeoJSONGeometryReader.js +79 -0
- package/lib/esm/GeoJSON/GeoJSONGeometryReader.js.map +1 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesFormat.d.ts +9 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesFormat.d.ts.map +1 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesFormat.js +90 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesFormat.js.map +1 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesProvider.d.ts +54 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesProvider.d.ts.map +1 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesProvider.js +472 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesProvider.js.map +1 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesReader.d.ts +23 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesReader.d.ts.map +1 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesReader.js +135 -0
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesReader.js.map +1 -0
- package/lib/esm/Tools/GeometryTerrainDraper.d.ts +20 -0
- package/lib/esm/Tools/GeometryTerrainDraper.d.ts.map +1 -0
- package/lib/esm/Tools/GeometryTerrainDraper.js +149 -0
- package/lib/esm/Tools/GeometryTerrainDraper.js.map +1 -0
- package/lib/esm/Tools/MapFeatureInfoDecorator.d.ts +15 -10
- package/lib/esm/Tools/MapFeatureInfoDecorator.d.ts.map +1 -1
- package/lib/esm/Tools/MapFeatureInfoDecorator.js +193 -152
- package/lib/esm/Tools/MapFeatureInfoDecorator.js.map +1 -1
- package/lib/esm/Tools/MapFeatureInfoTool.d.ts.map +1 -1
- package/lib/esm/Tools/MapFeatureInfoTool.js +7 -5
- package/lib/esm/Tools/MapFeatureInfoTool.js.map +1 -1
- package/lib/esm/mapLayersFormats.d.ts.map +1 -1
- package/lib/esm/mapLayersFormats.js +5 -3
- package/lib/esm/mapLayersFormats.js.map +1 -1
- package/package.json +18 -15
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts +0 -19
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +0 -1
- package/lib/cjs/ArcGisFeature/ArcGisCanvasRenderer.js.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts +0 -19
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.d.ts.map +0 -1
- package/lib/esm/ArcGisFeature/ArcGisCanvasRenderer.js.map +0 -1
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
import { Primitives, StandardTypeNames } from "@itwin/appui-abstract";
|
|
2
1
|
import { ImageMapLayerSettings } from "@itwin/core-common";
|
|
3
|
-
import {
|
|
2
|
+
import { FeatureGeometryRenderer, GraphicsGeometryRenderer, MapLayerFeatureInfo } from "@itwin/core-frontend";
|
|
4
3
|
import { ArcGisResponseData } from "./ArcGisFeatureResponse";
|
|
4
|
+
import { FeatureInfoReader } from "../Feature/FeatureInfoReader";
|
|
5
5
|
/** Interface defining minimal implementation needed to create an ArcGIS geometry reader,
|
|
6
6
|
* needed by the [[ArcGisFeatureProvider]].
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export interface ArcGisFeatureReader {
|
|
10
|
-
readAndRender: (response: ArcGisResponseData, renderer:
|
|
11
|
-
readFeatureInfo: (response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer:
|
|
10
|
+
readAndRender: (response: ArcGisResponseData, renderer: FeatureGeometryRenderer) => Promise<void>;
|
|
11
|
+
readFeatureInfo: (response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer: GraphicsGeometryRenderer) => Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
/** Internal implementation of [[ArcGisFeatureReader]]
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
export declare abstract class ArcGisBaseFeatureReader implements ArcGisFeatureReader {
|
|
17
|
-
floatPrecision: number | undefined;
|
|
18
|
-
forceDateDisplayValueToIso: boolean;
|
|
16
|
+
export declare abstract class ArcGisBaseFeatureReader extends FeatureInfoReader implements ArcGisFeatureReader {
|
|
19
17
|
protected _settings: ImageMapLayerSettings;
|
|
20
18
|
protected _layerMetadata: any;
|
|
21
19
|
constructor(settings: ImageMapLayerSettings, layerMetadata: any);
|
|
22
|
-
abstract readAndRender(response: ArcGisResponseData, renderer:
|
|
23
|
-
abstract readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer:
|
|
24
|
-
protected toFixedWithoutPadding: (value: number) => number;
|
|
25
|
-
protected getDisplayValue: (typename: StandardTypeNames, value: Primitives.Value | undefined) => string;
|
|
20
|
+
abstract readAndRender(response: ArcGisResponseData, renderer: FeatureGeometryRenderer): Promise<void>;
|
|
21
|
+
abstract readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer: GraphicsGeometryRenderer): Promise<void>;
|
|
26
22
|
}
|
|
27
23
|
//# sourceMappingURL=ArcGisFeatureReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureReader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ArcGisFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureReader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,eAAe,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3I;AAED;;GAEG;AACH,8BAAsB,uBAAwB,SAAQ,iBAAkB,YAAW,mBAAmB;IAEpG,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC3C,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC;gBAEX,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG;aAMtD,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;aAC7F,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAEtJ"}
|
|
@@ -5,29 +5,13 @@
|
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ArcGisBaseFeatureReader = void 0;
|
|
8
|
-
const
|
|
8
|
+
const FeatureInfoReader_1 = require("../Feature/FeatureInfoReader");
|
|
9
9
|
/** Internal implementation of [[ArcGisFeatureReader]]
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
class ArcGisBaseFeatureReader {
|
|
12
|
+
class ArcGisBaseFeatureReader extends FeatureInfoReader_1.FeatureInfoReader {
|
|
13
13
|
constructor(settings, layerMetadata) {
|
|
14
|
-
|
|
15
|
-
// Turning this ON, will disable display value in end-user's locale
|
|
16
|
-
this.forceDateDisplayValueToIso = false;
|
|
17
|
-
this.toFixedWithoutPadding = (value) => {
|
|
18
|
-
return (this.floatPrecision === undefined ? value : parseFloat(value.toFixed(this.floatPrecision)));
|
|
19
|
-
};
|
|
20
|
-
this.getDisplayValue = (typename, value) => {
|
|
21
|
-
if (value === undefined) {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
24
|
-
else if (typename === appui_abstract_1.StandardTypeNames.DateTime && this.forceDateDisplayValueToIso) {
|
|
25
|
-
return value.toISOString();
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return `${value}`;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
14
|
+
super();
|
|
31
15
|
this._settings = settings;
|
|
32
16
|
this._layerMetadata = layerMetadata;
|
|
33
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureReader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;
|
|
1
|
+
{"version":3,"file":"ArcGisFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureReader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAK/F,oEAAiE;AAWjE;;GAEG;AACH,MAAsB,uBAAwB,SAAQ,qCAAiB;IAKrE,YAAmB,QAA+B,EAAE,aAAkB;QACpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;CAKF;AAdD,0DAcC","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 { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { FeatureGeometryRenderer, GraphicsGeometryRenderer, MapLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\nimport { FeatureInfoReader } from \"../Feature/FeatureInfoReader\";\r\n\r\n/** Interface defining minimal implementation needed to create an ArcGIS geometry reader,\r\n * needed by the [[ArcGisFeatureProvider]].\r\n * @internal\r\n */\r\nexport interface ArcGisFeatureReader {\r\n readAndRender: (response: ArcGisResponseData, renderer: FeatureGeometryRenderer) => Promise<void>;\r\n readFeatureInfo: (response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer: GraphicsGeometryRenderer) => Promise<void>;\r\n}\r\n\r\n/** Internal implementation of [[ArcGisFeatureReader]]\r\n * @internal\r\n */\r\nexport abstract class ArcGisBaseFeatureReader extends FeatureInfoReader implements ArcGisFeatureReader {\r\n\r\n protected _settings: ImageMapLayerSettings;\r\n protected _layerMetadata: any;\r\n\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super();\r\n this._settings = settings;\r\n this._layerMetadata = layerMetadata;\r\n }\r\n\r\n public abstract readAndRender(response: ArcGisResponseData, renderer: FeatureGeometryRenderer): Promise<void>;\r\n public abstract readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer: GraphicsGeometryRenderer): Promise<void>;\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureResponse.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureResponse.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAG/F,uDAAgD;AAwBhD,gBAAgB;AAChB,MAAa,qBAAqB;IAMhC,YAAY,MAA2B,EAAG,QAA2B,EAAE,QAAuB;QAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,IAAI,
|
|
1
|
+
{"version":3,"file":"ArcGisFeatureResponse.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureResponse.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAG/F,uDAAgD;AAwBhD,gBAAgB;AAChB,MAAa,qBAAqB;IAMhC,YAAY,MAA2B,EAAG,QAA2B,EAAE,QAAuB;QAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,IAAI,IAAS,CAAC;QACd,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,KAAK,GAAG;gBAC3D,OAAO,SAAS,CAAC;YAEnB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;oBACxC,OAAO,SAAS,CAAC;gBAEnB,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACnE,MAAM,UAAU,GAAG,IAA4C,CAAC;gBAChE,OAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAC,CAAC;YAEpG,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI;oBACpC,OAAO,SAAS,CAAC;gBAEnB,OAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,EAAC,CAAC;YACjE,CAAC;QAEH,CAAC;QAAC,OAAM,EAAE,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAxCD,sDAwCC","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 { ArcGisExtent, ArcGisFeatureFormat } from \"./ArcGisFeatureQuery\";\r\nimport { esriPBuffer } from \"./esriPBuffer.gen\";\r\n\r\n/** @internal */\r\nexport interface ArcGisResponseData {\r\n data: any;\r\n exceedTransferLimit: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport type ArcGisFieldType =\r\n \"esriFieldTypeInteger\"\r\n | \"esriFieldTypeSmallInteger\"\r\n | \"esriFieldTypeDouble\"\r\n | \"esriFieldTypeSingle\"\r\n | \"esriFieldTypeString\"\r\n | \"esriFieldTypeDate\"\r\n | \"esriFieldTypeGeometry\"\r\n | \"esriFieldTypeOID\"\r\n | \"esriFieldTypeBlob\"\r\n | \"esriFieldTypeGlobalID\"\r\n | \"esriFieldTypeRaster\"\r\n | \"esriFieldTypeGUID\"\r\n | \"esriFieldTypeXML\";\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureResponse {\r\n public readonly format: ArcGisFeatureFormat;\r\n public readonly envelope: ArcGisExtent | undefined;\r\n\r\n private _response: Promise<Response>;\r\n\r\n constructor(format: ArcGisFeatureFormat, response: Promise<Response>, envelope?: ArcGisExtent) {\r\n this.format = format;\r\n this._response = response;\r\n this.envelope = envelope;\r\n }\r\n\r\n public async getResponseData(): Promise<ArcGisResponseData|undefined> {\r\n let data: any;\r\n try {\r\n const tileResponse = await this._response;\r\n if (tileResponse === undefined || tileResponse.status !== 200 )\r\n return undefined;\r\n\r\n if (this.format === \"PBF\") {\r\n const byteArray: Uint8Array = new Uint8Array(await tileResponse.arrayBuffer());\r\n if (!byteArray || (byteArray.length === 0))\r\n return undefined;\r\n\r\n data = esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);\r\n const collection = data as esriPBuffer.FeatureCollectionPBuffer;\r\n return {data, exceedTransferLimit: collection?.queryResult?.featureResult?.exceededTransferLimit};\r\n\r\n } else {\r\n data = await tileResponse.json();\r\n if (data === undefined || data == null)\r\n return undefined;\r\n\r\n return {data, exceedTransferLimit: data.exceededTransferLimit};\r\n }\r\n\r\n } catch(_e) {\r\n return undefined;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ImageMapLayerSettings } from "@itwin/core-common";
|
|
2
|
-
import {
|
|
2
|
+
import { FeatureGeometryRenderer, GraphicsGeometryRenderer, MapLayerFeatureInfo } from "@itwin/core-frontend";
|
|
3
3
|
import { Transform } from "@itwin/core-geometry";
|
|
4
4
|
import { ArcGisBaseFeatureReader } from "./ArcGisFeatureReader";
|
|
5
5
|
import { ArcGisResponseData } from "./ArcGisFeatureResponse";
|
|
@@ -8,7 +8,7 @@ export declare class ArcGisJsonFeatureReader extends ArcGisBaseFeatureReader {
|
|
|
8
8
|
transform: Transform | undefined;
|
|
9
9
|
constructor(settings: ImageMapLayerSettings, layerMetadata: any);
|
|
10
10
|
private applySymbologyAttributes;
|
|
11
|
-
readAndRender(response: ArcGisResponseData, renderer:
|
|
12
|
-
readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?:
|
|
11
|
+
readAndRender(response: ArcGisResponseData, renderer: FeatureGeometryRenderer): Promise<void>;
|
|
12
|
+
readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: GraphicsGeometryRenderer): Promise<void>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=ArcGisJsonFeatureReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisJsonFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisJsonFeatureReader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"ArcGisJsonFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisJsonFeatureReader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAA6D,uBAAuB,EAAE,wBAAwB,EAA6C,mBAAmB,EAAyB,MAAM,sBAAsB,CAAC;AAC3O,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,gBAAgB;AAChB,qBAAa,uBAAwB,SAAQ,uBAAuB;IAC3D,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;gBAErB,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG;IAKtE,OAAO,CAAC,wBAAwB;IAcnB,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB;IAgB7E,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAAE,QAAQ,CAAC,EAAE,wBAAwB;CAoGpI"}
|
|
@@ -29,12 +29,11 @@ class ArcGisJsonFeatureReader extends ArcGisFeatureReader_1.ArcGisBaseFeatureRea
|
|
|
29
29
|
async readAndRender(response, renderer) {
|
|
30
30
|
const responseObj = response.data;
|
|
31
31
|
if (responseObj.geometryType) {
|
|
32
|
-
const attrSymbology = renderer.attributeSymbology;
|
|
33
32
|
const geomReader = new core_frontend_1.ArcGisGeometryReaderJSON(responseObj.geometryType, renderer, renderer.transform === undefined);
|
|
34
33
|
for (const feature of responseObj.features) {
|
|
35
|
-
if (
|
|
34
|
+
if (renderer.hasSymbologyRenderer() && renderer.symbolRenderer.isAttributeDriven()) {
|
|
36
35
|
// Read attributes if needed (attribute driven symbology)
|
|
37
|
-
this.applySymbologyAttributes(
|
|
36
|
+
this.applySymbologyAttributes(renderer.symbolRenderer, feature);
|
|
38
37
|
}
|
|
39
38
|
await geomReader.readGeometry(feature.geometry);
|
|
40
39
|
}
|
|
@@ -110,7 +109,7 @@ class ArcGisJsonFeatureReader extends ArcGisFeatureReader_1.ArcGisBaseFeatureRea
|
|
|
110
109
|
const feature = { attributes: [] };
|
|
111
110
|
for (const [key, value] of Object.entries(responseFeature.attributes))
|
|
112
111
|
feature.attributes?.push(getRecordInfo(key, value));
|
|
113
|
-
if (geomReader) {
|
|
112
|
+
if (geomReader && renderer) {
|
|
114
113
|
await geomReader.readGeometry(responseFeature.geometry);
|
|
115
114
|
const graphics = renderer.moveGraphics();
|
|
116
115
|
feature.geometries = graphics.map((graphic) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisJsonFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisJsonFeatureReader.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 { ArcGisAttributeDrivenSymbology, ArcGisGeometryReaderJSON, ArcGisGeometryRenderer, ArcGisGraphicsRenderer, MapLayerFeature, MapLayerFeatureAttribute, MapLayerFeatureInfo, MapSubLayerFeatureInfo} from \"@itwin/core-frontend\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisBaseFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisFieldType, ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\n\r\n/** @internal */\r\nexport class ArcGisJsonFeatureReader extends ArcGisBaseFeatureReader {\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\r\n private applySymbologyAttributes(attrSymbology: ArcGisAttributeDrivenSymbology, feature: any) {\r\n if (attrSymbology && feature) {\r\n const symbolFields = attrSymbology.rendererFields;\r\n if (symbolFields && symbolFields.length > 0 && feature.attributes) {\r\n const featureAttr: {[key: string]: any} = {};\r\n for (const [attrKey, attrValue] of Object.entries(feature.attributes))\r\n if (symbolFields.includes(attrKey)) {\r\n featureAttr[attrKey] = attrValue;\r\n }\r\n attrSymbology.setActiveFeatureAttributes(featureAttr);\r\n }\r\n }\r\n }\r\n\r\n public async readAndRender(response: ArcGisResponseData, renderer: ArcGisGeometryRenderer) {\r\n const responseObj = response.data;\r\n if (responseObj.geometryType) {\r\n const attrSymbology = renderer.attributeSymbology;\r\n\r\n const geomReader = new ArcGisGeometryReaderJSON(responseObj.geometryType, renderer, renderer.transform === undefined);\r\n\r\n for (const feature of responseObj.features) {\r\n if (attrSymbology) {\r\n // Read attributes if needed (attribute driven symbology)\r\n this.applySymbologyAttributes(attrSymbology, feature);\r\n }\r\n\r\n await geomReader.readGeometry(feature.geometry);\r\n }\r\n }\r\n }\r\n\r\n public async readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: ArcGisGraphicsRenderer) {\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): MapLayerFeatureAttribute => {\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 {value: propertyValue, property: { name: fieldName, displayLabel: fieldName, typename }};\r\n };\r\n\r\n let geomReader: ArcGisGeometryReaderJSON|undefined;\r\n if (renderer && responseObj?.geometryType) {\r\n geomReader = new ArcGisGeometryReaderJSON(responseObj.geometryType, renderer);\r\n }\r\n\r\n // Each feature response represent a single sub-layer, no need to check for existing entry.\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n features: [],\r\n };\r\n\r\n // Read all features attributes / geometries\r\n for (const responseFeature of responseObj.features) {\r\n const feature: MapLayerFeature = {attributes: []};\r\n\r\n for (const [key, value] of Object.entries(responseFeature.attributes))\r\n feature.attributes?.push(getRecordInfo(key, value));\r\n\r\n if (geomReader) {\r\n await geomReader.readGeometry(responseFeature.geometry);\r\n const graphics = renderer!.moveGraphics();\r\n feature.geometries = graphics.map((graphic) => {\r\n return {graphic};\r\n });\r\n }\r\n subLayerInfo.features.push(feature);\r\n }\r\n\r\n if (layerInfo.subLayerInfos === undefined)\r\n layerInfo.subLayerInfos = [];\r\n layerInfo.subLayerInfos.push(subLayerInfo);\r\n\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisJsonFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisJsonFeatureReader.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 { ArcGisGeometryReaderJSON, FeatureAttributeDrivenSymbology, FeatureGeometryRenderer, GraphicsGeometryRenderer, MapLayerFeature, MapLayerFeatureAttribute, MapLayerFeatureInfo, MapSubLayerFeatureInfo} from \"@itwin/core-frontend\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisBaseFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisFieldType, ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\n\r\n/** @internal */\r\nexport class ArcGisJsonFeatureReader extends ArcGisBaseFeatureReader {\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\r\n private applySymbologyAttributes(attrSymbology: FeatureAttributeDrivenSymbology, feature: any) {\r\n if (attrSymbology && feature) {\r\n const symbolFields = attrSymbology.rendererFields;\r\n if (symbolFields && symbolFields.length > 0 && feature.attributes) {\r\n const featureAttr: {[key: string]: any} = {};\r\n for (const [attrKey, attrValue] of Object.entries(feature.attributes))\r\n if (symbolFields.includes(attrKey)) {\r\n featureAttr[attrKey] = attrValue;\r\n }\r\n attrSymbology.setActiveFeatureAttributes(featureAttr);\r\n }\r\n }\r\n }\r\n\r\n public async readAndRender(response: ArcGisResponseData, renderer: FeatureGeometryRenderer) {\r\n const responseObj = response.data;\r\n if (responseObj.geometryType) {\r\n const geomReader = new ArcGisGeometryReaderJSON(responseObj.geometryType, renderer, renderer.transform === undefined);\r\n\r\n for (const feature of responseObj.features) {\r\n if (renderer.hasSymbologyRenderer() && renderer.symbolRenderer.isAttributeDriven()) {\r\n // Read attributes if needed (attribute driven symbology)\r\n this.applySymbologyAttributes(renderer.symbolRenderer, feature);\r\n }\r\n\r\n await geomReader.readGeometry(feature.geometry);\r\n }\r\n }\r\n }\r\n\r\n public async readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: GraphicsGeometryRenderer) {\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): MapLayerFeatureAttribute => {\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 {value: propertyValue, property: { name: fieldName, displayLabel: fieldName, typename }};\r\n };\r\n\r\n let geomReader: ArcGisGeometryReaderJSON|undefined;\r\n if (renderer && responseObj?.geometryType) {\r\n geomReader = new ArcGisGeometryReaderJSON(responseObj.geometryType, renderer);\r\n }\r\n\r\n // Each feature response represent a single sub-layer, no need to check for existing entry.\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n features: [],\r\n };\r\n\r\n // Read all features attributes / geometries\r\n for (const responseFeature of responseObj.features) {\r\n const feature: MapLayerFeature = {attributes: []};\r\n\r\n for (const [key, value] of Object.entries(responseFeature.attributes))\r\n feature.attributes?.push(getRecordInfo(key, value));\r\n\r\n if (geomReader && renderer) {\r\n await geomReader.readGeometry(responseFeature.geometry);\r\n const graphics = renderer.moveGraphics();\r\n feature.geometries = graphics.map((graphic) => {\r\n return {graphic};\r\n });\r\n }\r\n subLayerInfo.features.push(feature);\r\n }\r\n\r\n if (layerInfo.subLayerInfos === undefined)\r\n layerInfo.subLayerInfos = [];\r\n layerInfo.subLayerInfos.push(subLayerInfo);\r\n\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { esriPBuffer } from "../ArcGisFeature/esriPBuffer.gen";
|
|
2
|
-
import {
|
|
2
|
+
import { FeatureGeometryRenderer, GraphicsGeometryRenderer, MapLayerFeatureAttribute, MapLayerFeatureInfo } from "@itwin/core-frontend";
|
|
3
3
|
import { ImageMapLayerSettings } from "@itwin/core-common";
|
|
4
4
|
import { ArcGisBaseFeatureReader } from "./ArcGisFeatureReader";
|
|
5
5
|
import { ArcGisResponseData } from "./ArcGisFeatureResponse";
|
|
@@ -14,9 +14,9 @@ export declare class ArcGisPbfFeatureReader extends ArcGisBaseFeatureReader {
|
|
|
14
14
|
static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType;
|
|
15
15
|
private getNumericValue;
|
|
16
16
|
getFeatureAttribute(fieldInfo: PbfFieldInfo, attrValue: esriPBuffer.FeatureCollectionPBuffer.Value): MapLayerFeatureAttribute | undefined;
|
|
17
|
-
readAndRender(response: ArcGisResponseData, renderer:
|
|
17
|
+
readAndRender(response: ArcGisResponseData, renderer: FeatureGeometryRenderer): Promise<void>;
|
|
18
18
|
private applySymbologyAttributes;
|
|
19
|
-
readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?:
|
|
19
|
+
readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: GraphicsGeometryRenderer): Promise<void>;
|
|
20
20
|
}
|
|
21
21
|
export {};
|
|
22
22
|
//# sourceMappingURL=ArcGisPbfFeatureReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisPbfFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisPbfFeatureReader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"ArcGisPbfFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisPbfFeatureReader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAmC,uBAAuB,EAAE,wBAAwB,EAAmB,wBAAwB,EAAE,mBAAmB,EAAyB,MAAM,sBAAsB,CAAC;AAEjN,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC;CACtD;AAED,gBAAgB;AAChB,qBAAa,sBAAuB,SAAQ,uBAAuB;gBAC9C,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG;WAIxD,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,wBAAwB,CAAC,YAAY,GAAG,yBAAyB;IAiBlI,OAAO,CAAC,eAAe;IAiChB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,wBAAwB,CAAC,KAAK,GAAG,wBAAwB,GAAC,SAAS;IA2DjI,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB;IAyC1F,OAAO,CAAC,wBAAwB;IA0BnB,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAAE,QAAQ,CAAC,EAAE,wBAAwB;CAkEpI"}
|
|
@@ -139,7 +139,6 @@ class ArcGisPbfFeatureReader extends ArcGisFeatureReader_1.ArcGisBaseFeatureRead
|
|
|
139
139
|
const collection = response.data;
|
|
140
140
|
if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)
|
|
141
141
|
return;
|
|
142
|
-
const attrSymbology = renderer.attributeSymbology;
|
|
143
142
|
// Fields metadata is stored outside feature results, create dedicated array first
|
|
144
143
|
const fields = [];
|
|
145
144
|
for (const field of collection.queryResult.featureResult.fields)
|
|
@@ -150,9 +149,9 @@ class ArcGisPbfFeatureReader extends ArcGisFeatureReader_1.ArcGisBaseFeatureRead
|
|
|
150
149
|
for (const feature of collection.queryResult.featureResult.features) {
|
|
151
150
|
// Render geometries
|
|
152
151
|
if (renderer && feature?.has_geometry) {
|
|
153
|
-
if (
|
|
152
|
+
if (renderer.hasSymbologyRenderer() && renderer.symbolRenderer.isAttributeDriven()) {
|
|
154
153
|
// Read attributes if needed (attribute driven symbology)
|
|
155
|
-
this.applySymbologyAttributes(
|
|
154
|
+
this.applySymbologyAttributes(renderer.symbolRenderer, feature, fields);
|
|
156
155
|
}
|
|
157
156
|
if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {
|
|
158
157
|
await renderer.renderPoint(feature.geometry.lengths, feature.geometry.coords, stride, relativeCoords);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisPbfFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisPbfFeatureReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { esriPBuffer } from \"../ArcGisFeature/esriPBuffer.gen\";\r\nimport { ArcGisAttributeDrivenSymbology, ArcGisGeometryRenderer, ArcGisGraphicsRenderer, MapLayerFeature, MapLayerFeatureAttribute, MapLayerFeatureInfo, MapSubLayerFeatureInfo} from \"@itwin/core-frontend\";\r\nimport { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { ArcGisBaseFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { ArcGisFeatureGeometryType } from \"./ArcGisFeatureQuery\";\r\n\r\nconst esriGeometryType = esriPBuffer.FeatureCollectionPBuffer.GeometryType;\r\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\r\n\r\ninterface PbfFieldInfo {\r\n name: string;\r\n type: esriPBuffer.FeatureCollectionPBuffer.FieldType;\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisPbfFeatureReader extends ArcGisBaseFeatureReader {\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super(settings, layerMetadata);\r\n }\r\n\r\n public static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType {\r\n switch (geomType) {\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch:\r\n return \"esriGeometryMultiPatch\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint:\r\n return \"esriGeometryMultipoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint:\r\n return \"esriGeometryPoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon:\r\n return \"esriGeometryPolygon\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline:\r\n return \"esriGeometryPolyline\";\r\n default:\r\n return \"esriGeometryNull\";\r\n }\r\n }\r\n\r\n private getNumericValue(attrValue: esriPBuffer.FeatureCollectionPBuffer.Value) {\r\n const propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n let typename = StandardTypeNames.Number;\r\n if (attrValue.has_double_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.double_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Double;\r\n } else if (attrValue.has_float_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.float_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Float;\r\n } else if (attrValue.has_int64_value) {\r\n propertyValue.value = attrValue.int64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint64_value) {\r\n propertyValue.value = attrValue.sint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint_value) {\r\n propertyValue.value = attrValue.sint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint64_value) {\r\n propertyValue.value = attrValue.uint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint_value) {\r\n propertyValue.value = attrValue.uint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else {\r\n propertyValue.value = undefined;\r\n }\r\n\r\n return { propertyValue, typename };\r\n }\r\n\r\n public getFeatureAttribute(fieldInfo: PbfFieldInfo, attrValue: esriPBuffer.FeatureCollectionPBuffer.Value): MapLayerFeatureAttribute|undefined {\r\n let propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n\r\n let typename = StandardTypeNames.String;\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDouble\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSmallInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeOID\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSingle\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate\r\n ) {\r\n const value = this.getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read numeric value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate) {\r\n const test = (value.propertyValue.value as unknown) as number;\r\n propertyValue.value = new Date(test);\r\n typename = StandardTypeNames.DateTime;\r\n } else {\r\n typename = value.typename;\r\n propertyValue = value.propertyValue;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeString) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeGlobalID) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n } else {\r\n const value = this.getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read GlobalId value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n }\r\n } else if (attrValue.has_string_value) {\r\n // If we reach this case that probably mean we don't support the field type, simply try to output string value\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = attrValue.string_value;\r\n } else if (attrValue.value_type === \"none\") {\r\n // Sometimes fields are just empty, use an empty string\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = undefined;\r\n } else {\r\n Logger.logError(loggerCategory, `Could not read value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\r\n\r\n return {value: propertyValue, property: { name: fieldInfo.name, displayLabel: fieldInfo.name, typename } };\r\n }\r\n\r\n public async readAndRender(response: ArcGisResponseData, renderer: ArcGisGeometryRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n const msg = \"Response was not in PBF format\";\r\n Logger.logError(loggerCategory, msg);\r\n return;\r\n }\r\n\r\n const collection = response.data;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const attrSymbology = renderer.attributeSymbology;\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n const relativeCoords = renderer.transform === undefined;\r\n for (const feature of collection.queryResult.featureResult.features) {\r\n\r\n // Render geometries\r\n if (renderer && feature?.has_geometry) {\r\n\r\n if (attrSymbology) {\r\n // Read attributes if needed (attribute driven symbology)\r\n this.applySymbologyAttributes(attrSymbology, feature, fields);\r\n }\r\n\r\n if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n await renderer.renderPoint(feature.geometry.lengths, feature.geometry.coords, stride, relativeCoords);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n await renderer.renderPath(feature.geometry.lengths, feature.geometry.coords, fill, stride, relativeCoords);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n private applySymbologyAttributes(attrSymbology: ArcGisAttributeDrivenSymbology, feature: esriPBuffer.FeatureCollectionPBuffer.Feature, fields: PbfFieldInfo[]) {\r\n if (attrSymbology) {\r\n const symbolFields = attrSymbology.rendererFields;\r\n if (symbolFields && symbolFields.length > 0 && feature.attributes) {\r\n let fieldIdx = 0;\r\n const featureAttr: {[key: string]: any} = {};\r\n for (const attrValue of feature.attributes) {\r\n if (fieldIdx > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n const fieldInfo = fields[fieldIdx++];\r\n if (symbolFields.includes(fieldInfo.name)) {\r\n const attr = this.getFeatureAttribute(fieldInfo, attrValue);\r\n if (attr) {\r\n const primitiveValue = attr.value as PrimitiveValue;\r\n featureAttr[fieldInfo.name] = primitiveValue.value;\r\n }\r\n }\r\n\r\n }\r\n attrSymbology.setActiveFeatureAttributes(featureAttr);\r\n }\r\n }\r\n }\r\n\r\n public async readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: ArcGisGraphicsRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n\r\n Logger.logError(loggerCategory, \"Response was not in PBF format\");\r\n }\r\n\r\n const collection = response.data as esriPBuffer.FeatureCollectionPBuffer;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const layerInfo: MapLayerFeatureInfo = { layerName: this._settings.name, subLayerInfos: [] };\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n features: [],\r\n };\r\n\r\n // Read feature values\r\n for (const featureResponse of collection.queryResult.featureResult.features) {\r\n const feature: MapLayerFeature = { attributes: []};\r\n\r\n if (renderer && featureResponse?.has_geometry) {\r\n if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n await renderer.renderPoint(featureResponse.geometry.lengths, featureResponse.geometry.coords, stride, true);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n await renderer.renderPath(featureResponse.geometry.lengths, featureResponse.geometry.coords, fill, stride, true);\r\n }\r\n const graphics = renderer.moveGraphics();\r\n feature.geometries = graphics.map((graphic) => {\r\n return {graphic};\r\n });\r\n }\r\n\r\n let fieldIdx = 0;\r\n for (const attrValue of featureResponse.attributes) {\r\n if (fieldIdx > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n // Convert everything to string for now\r\n const attr = this.getFeatureAttribute(fields[fieldIdx], attrValue);\r\n if (attr) {\r\n feature.attributes?.push(attr);\r\n }\r\n\r\n fieldIdx++;\r\n }\r\n subLayerInfo.features.push(feature);\r\n }\r\n\r\n if (layerInfo.subLayerInfos === undefined) {\r\n layerInfo.subLayerInfos = [];\r\n }\r\n layerInfo.subLayerInfos.push(subLayerInfo);\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisPbfFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisPbfFeatureReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { esriPBuffer } from \"../ArcGisFeature/esriPBuffer.gen\";\r\nimport { FeatureAttributeDrivenSymbology, FeatureGeometryRenderer, GraphicsGeometryRenderer, MapLayerFeature, MapLayerFeatureAttribute, MapLayerFeatureInfo, MapSubLayerFeatureInfo} from \"@itwin/core-frontend\";\r\nimport { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { ArcGisBaseFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { ArcGisFeatureGeometryType } from \"./ArcGisFeatureQuery\";\r\n\r\nconst esriGeometryType = esriPBuffer.FeatureCollectionPBuffer.GeometryType;\r\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\r\n\r\ninterface PbfFieldInfo {\r\n name: string;\r\n type: esriPBuffer.FeatureCollectionPBuffer.FieldType;\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisPbfFeatureReader extends ArcGisBaseFeatureReader {\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super(settings, layerMetadata);\r\n }\r\n\r\n public static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType {\r\n switch (geomType) {\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch:\r\n return \"esriGeometryMultiPatch\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint:\r\n return \"esriGeometryMultipoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint:\r\n return \"esriGeometryPoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon:\r\n return \"esriGeometryPolygon\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline:\r\n return \"esriGeometryPolyline\";\r\n default:\r\n return \"esriGeometryNull\";\r\n }\r\n }\r\n\r\n private getNumericValue(attrValue: esriPBuffer.FeatureCollectionPBuffer.Value) {\r\n const propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n let typename = StandardTypeNames.Number;\r\n if (attrValue.has_double_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.double_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Double;\r\n } else if (attrValue.has_float_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.float_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Float;\r\n } else if (attrValue.has_int64_value) {\r\n propertyValue.value = attrValue.int64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint64_value) {\r\n propertyValue.value = attrValue.sint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint_value) {\r\n propertyValue.value = attrValue.sint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint64_value) {\r\n propertyValue.value = attrValue.uint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint_value) {\r\n propertyValue.value = attrValue.uint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else {\r\n propertyValue.value = undefined;\r\n }\r\n\r\n return { propertyValue, typename };\r\n }\r\n\r\n public getFeatureAttribute(fieldInfo: PbfFieldInfo, attrValue: esriPBuffer.FeatureCollectionPBuffer.Value): MapLayerFeatureAttribute|undefined {\r\n let propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n\r\n let typename = StandardTypeNames.String;\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDouble\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSmallInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeOID\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSingle\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate\r\n ) {\r\n const value = this.getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read numeric value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate) {\r\n const test = (value.propertyValue.value as unknown) as number;\r\n propertyValue.value = new Date(test);\r\n typename = StandardTypeNames.DateTime;\r\n } else {\r\n typename = value.typename;\r\n propertyValue = value.propertyValue;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeString) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeGlobalID) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n } else {\r\n const value = this.getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read GlobalId value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n }\r\n } else if (attrValue.has_string_value) {\r\n // If we reach this case that probably mean we don't support the field type, simply try to output string value\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = attrValue.string_value;\r\n } else if (attrValue.value_type === \"none\") {\r\n // Sometimes fields are just empty, use an empty string\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = undefined;\r\n } else {\r\n Logger.logError(loggerCategory, `Could not read value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\r\n\r\n return {value: propertyValue, property: { name: fieldInfo.name, displayLabel: fieldInfo.name, typename } };\r\n }\r\n\r\n public async readAndRender(response: ArcGisResponseData, renderer: FeatureGeometryRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n const msg = \"Response was not in PBF format\";\r\n Logger.logError(loggerCategory, msg);\r\n return;\r\n }\r\n\r\n const collection = response.data;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n const relativeCoords = renderer.transform === undefined;\r\n for (const feature of collection.queryResult.featureResult.features) {\r\n\r\n // Render geometries\r\n if (renderer && feature?.has_geometry) {\r\n\r\n if (renderer.hasSymbologyRenderer() && renderer.symbolRenderer.isAttributeDriven()) {\r\n // Read attributes if needed (attribute driven symbology)\r\n this.applySymbologyAttributes(renderer.symbolRenderer, feature, fields);\r\n }\r\n\r\n if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n await renderer.renderPoint(feature.geometry.lengths, feature.geometry.coords, stride, relativeCoords);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n await renderer.renderPath(feature.geometry.lengths, feature.geometry.coords, fill, stride, relativeCoords);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n private applySymbologyAttributes(attrSymbology: FeatureAttributeDrivenSymbology, feature: esriPBuffer.FeatureCollectionPBuffer.Feature, fields: PbfFieldInfo[]) {\r\n if (attrSymbology) {\r\n const symbolFields = attrSymbology.rendererFields;\r\n if (symbolFields && symbolFields.length > 0 && feature.attributes) {\r\n let fieldIdx = 0;\r\n const featureAttr: {[key: string]: any} = {};\r\n for (const attrValue of feature.attributes) {\r\n if (fieldIdx > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n const fieldInfo = fields[fieldIdx++];\r\n if (symbolFields.includes(fieldInfo.name)) {\r\n const attr = this.getFeatureAttribute(fieldInfo, attrValue);\r\n if (attr) {\r\n const primitiveValue = attr.value as PrimitiveValue;\r\n featureAttr[fieldInfo.name] = primitiveValue.value;\r\n }\r\n }\r\n\r\n }\r\n attrSymbology.setActiveFeatureAttributes(featureAttr);\r\n }\r\n }\r\n }\r\n\r\n public async readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[], renderer?: GraphicsGeometryRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n\r\n Logger.logError(loggerCategory, \"Response was not in PBF format\");\r\n }\r\n\r\n const collection = response.data as esriPBuffer.FeatureCollectionPBuffer;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const layerInfo: MapLayerFeatureInfo = { layerName: this._settings.name, subLayerInfos: [] };\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n features: [],\r\n };\r\n\r\n // Read feature values\r\n for (const featureResponse of collection.queryResult.featureResult.features) {\r\n const feature: MapLayerFeature = { attributes: []};\r\n\r\n if (renderer && featureResponse?.has_geometry) {\r\n if (geomType === esriGeometryType.esriGeometryTypePoint || geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n await renderer.renderPoint(featureResponse.geometry.lengths, featureResponse.geometry.coords, stride, true);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n await renderer.renderPath(featureResponse.geometry.lengths, featureResponse.geometry.coords, fill, stride, true);\r\n }\r\n const graphics = renderer.moveGraphics();\r\n feature.geometries = graphics.map((graphic) => {\r\n return {graphic};\r\n });\r\n }\r\n\r\n let fieldIdx = 0;\r\n for (const attrValue of featureResponse.attributes) {\r\n if (fieldIdx > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n // Convert everything to string for now\r\n const attr = this.getFeatureAttribute(fields[fieldIdx], attrValue);\r\n if (attr) {\r\n feature.attributes?.push(attr);\r\n }\r\n\r\n fieldIdx++;\r\n }\r\n subLayerInfo.features.push(feature);\r\n }\r\n\r\n if (layerInfo.subLayerInfos === undefined) {\r\n layerInfo.subLayerInfos = [];\r\n }\r\n layerInfo.subLayerInfos.push(subLayerInfo);\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import { EsriClassBreaksRenderer, EsriRenderer, EsriSMS, EsriSymbol, EsriUniqueValueRenderer } from "./EsriSymbology";
|
|
2
|
-
import {
|
|
2
|
+
import { FeatureAttributeDrivenSymbology, FeatureSymbologyRenderer } from "@itwin/core-frontend";
|
|
3
|
+
import { FeatureDefaultSymbology } from "../Feature/FeatureSymbology";
|
|
4
|
+
import { ArcGisFeatureGeometryType } from "./ArcGisFeatureQuery";
|
|
3
5
|
/** @internal */
|
|
4
6
|
export type ArcGisSymbologyRendererType = "simple" | "attributeDriven";
|
|
7
|
+
/** Feature Symbology renderer applicable to an HTML 2D Canvas
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export interface FeatureSymbologyCanvasRenderer extends FeatureSymbologyRenderer {
|
|
11
|
+
applyFillStyle(context: CanvasRenderingContext2D): void;
|
|
12
|
+
applyStrokeStyle(context: CanvasRenderingContext2D): void;
|
|
13
|
+
drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;
|
|
14
|
+
}
|
|
5
15
|
/** @internal */
|
|
6
|
-
export declare abstract class
|
|
7
|
-
abstract
|
|
16
|
+
export declare abstract class ArcGisSymbologyCanvasRenderer implements FeatureSymbologyCanvasRenderer {
|
|
17
|
+
abstract readonly renderer?: EsriRenderer;
|
|
18
|
+
abstract get symbol(): EsriSymbol;
|
|
19
|
+
abstract set symbol(symbol: EsriSymbol | undefined);
|
|
20
|
+
abstract get defaultSymbol(): EsriSymbol;
|
|
21
|
+
activeGeometryType: string;
|
|
22
|
+
abstract isAttributeDriven(): this is FeatureAttributeDrivenSymbology;
|
|
8
23
|
abstract applyFillStyle(context: CanvasRenderingContext2D): void;
|
|
9
24
|
abstract applyStrokeStyle(context: CanvasRenderingContext2D): void;
|
|
10
25
|
abstract drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;
|
|
11
|
-
static create(renderer: EsriRenderer | undefined, defaultSymbol:
|
|
26
|
+
static create(renderer: EsriRenderer | undefined, defaultSymbol: FeatureDefaultSymbology, geometryType?: ArcGisFeatureGeometryType): ArcGisSymbologyCanvasRenderer;
|
|
12
27
|
}
|
|
13
28
|
/** @internal */
|
|
14
29
|
export declare class ArcGisDashLineStyle {
|
|
@@ -37,15 +52,16 @@ export declare class ArcGisDashLineStyle {
|
|
|
37
52
|
};
|
|
38
53
|
}
|
|
39
54
|
/** @internal */
|
|
40
|
-
export declare class ArcGisSimpleSymbologyRenderer extends
|
|
41
|
-
|
|
55
|
+
export declare class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyCanvasRenderer {
|
|
56
|
+
protected _symbol: EsriSymbol | undefined;
|
|
57
|
+
protected _defaultSymbol: FeatureDefaultSymbology;
|
|
58
|
+
isAttributeDriven(): this is FeatureAttributeDrivenSymbology;
|
|
42
59
|
lineWidthScaleFactor: number;
|
|
43
60
|
get symbol(): EsriSymbol;
|
|
61
|
+
set symbol(symbol: EsriSymbol | undefined);
|
|
44
62
|
get defaultSymbol(): EsriSymbol;
|
|
45
|
-
protected _symbol: EsriSymbol;
|
|
46
|
-
protected _defaultSymbol: EsriSymbol;
|
|
47
63
|
readonly renderer?: EsriRenderer;
|
|
48
|
-
constructor(renderer: EsriRenderer | undefined, defaultSymbol:
|
|
64
|
+
constructor(renderer: EsriRenderer | undefined, defaultSymbol: FeatureDefaultSymbology, geometryType?: ArcGisFeatureGeometryType);
|
|
49
65
|
applyFillStyle(context: CanvasRenderingContext2D): void;
|
|
50
66
|
private getFillColor;
|
|
51
67
|
private applyLineDash;
|
|
@@ -61,27 +77,31 @@ export declare class ArcGisSimpleSymbologyRenderer extends ArcGisSymbologyRender
|
|
|
61
77
|
drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;
|
|
62
78
|
}
|
|
63
79
|
/** @internal */
|
|
64
|
-
export declare class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements
|
|
65
|
-
isAttributeDriven(): this is
|
|
80
|
+
export declare class ArcGisUniqueValueSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements FeatureAttributeDrivenSymbology {
|
|
81
|
+
isAttributeDriven(): this is FeatureAttributeDrivenSymbology;
|
|
66
82
|
protected _activeFeatureAttributes: {
|
|
67
83
|
[key: string]: any;
|
|
68
84
|
} | undefined;
|
|
69
85
|
protected uvRenderer: EsriUniqueValueRenderer;
|
|
86
|
+
private _defaultRenderSymbol;
|
|
87
|
+
get defaultSymbol(): EsriSymbol;
|
|
70
88
|
get rendererFields(): string[] | undefined;
|
|
71
|
-
constructor(renderer: EsriUniqueValueRenderer, defaultSymbol:
|
|
89
|
+
constructor(renderer: EsriUniqueValueRenderer, defaultSymbol: FeatureDefaultSymbology, geometryType?: ArcGisFeatureGeometryType);
|
|
72
90
|
setActiveFeatureAttributes(attributes: {
|
|
73
91
|
[key: string]: any;
|
|
74
92
|
}): void;
|
|
75
93
|
}
|
|
76
94
|
/** @internal */
|
|
77
|
-
export declare class ArcGisClassBreaksSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements
|
|
78
|
-
isAttributeDriven(): this is
|
|
95
|
+
export declare class ArcGisClassBreaksSymbologyRenderer extends ArcGisSimpleSymbologyRenderer implements FeatureAttributeDrivenSymbology {
|
|
96
|
+
isAttributeDriven(): this is FeatureAttributeDrivenSymbology;
|
|
79
97
|
protected _activeFeatureAttributes: {
|
|
80
98
|
[key: string]: any;
|
|
81
99
|
} | undefined;
|
|
82
100
|
protected cbRenderer: EsriClassBreaksRenderer;
|
|
101
|
+
private _defaultRenderSymbol;
|
|
102
|
+
get defaultSymbol(): EsriSymbol;
|
|
83
103
|
get rendererFields(): string[] | undefined;
|
|
84
|
-
constructor(renderer: EsriClassBreaksRenderer, defaultSymbol:
|
|
104
|
+
constructor(renderer: EsriClassBreaksRenderer, defaultSymbol: FeatureDefaultSymbology, geometryType?: ArcGisFeatureGeometryType);
|
|
85
105
|
setActiveFeatureAttributes(attributes: {
|
|
86
106
|
[key: string]: any;
|
|
87
107
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisSymbologyRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAW,YAAY,EAAsD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACnL,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ArcGisSymbologyRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":"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"}
|