Skip to content

Commit 25d4bfc

Browse files
mdastous-bentleyMarcBedard8aruniverse
authored
Map GetFeatureInfo (#2830)
Co-authored-by: MarcBedard8 <[email protected]> Co-authored-by: Arun George <[email protected]>
1 parent 6d9dba7 commit 25d4bfc

24 files changed

+5285
-4614
lines changed

common/api/core-frontend.api.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ import { PolylineTypeFlags } from '@itwin/core-common';
218218
import { PrimaryTileTreeId } from '@itwin/core-common';
219219
import { PromiseReturnType } from '@itwin/core-bentley';
220220
import { PropertyDescription } from '@itwin/appui-abstract';
221+
import { PropertyRecord } from '@itwin/appui-abstract';
222+
import { PropertyValue } from '@itwin/appui-abstract';
221223
import { QParams2d } from '@itwin/core-common';
222224
import { QParams3d } from '@itwin/core-common';
223225
import { QPoint2d } from '@itwin/core-common';
@@ -1139,6 +1141,8 @@ export class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {
11391141
// (undocumented)
11401142
protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
11411143
// (undocumented)
1144+
getFeatureInfo(featureInfos: MapLayerFeatureInfo[], quadId: QuadId, carto: Cartographic, _tree: ImageryMapTileTree): Promise<void>;
1145+
// (undocumented)
11421146
protected getLayerString(prefix?: string): string;
11431147
// (undocumented)
11441148
getLogo(): HTMLTableRowElement;
@@ -5552,6 +5556,19 @@ export class MapCartoRectangle extends Range2d {
55525556
set west(x: number);
55535557
}
55545558

5559+
// @alpha (undocumented)
5560+
export interface MapFeatureInfo {
5561+
// (undocumented)
5562+
hitPoint?: Cartographic;
5563+
// (undocumented)
5564+
layerInfo?: MapLayerFeatureInfo[];
5565+
}
5566+
5567+
// @alpha (undocumented)
5568+
export class MapFeatureInfoRecord extends PropertyRecord {
5569+
constructor(value: PropertyValue, property: PropertyDescription);
5570+
}
5571+
55555572
// @internal (undocumented)
55565573
export interface MapLayerAuthenticationInfo {
55575574
// (undocumented)
@@ -5573,6 +5590,14 @@ export enum MapLayerAuthType {
55735590
// @internal (undocumented)
55745591
export type MapLayerClassifiers = Map<number, RenderPlanarClassifier>;
55755592

5593+
// @alpha (undocumented)
5594+
export interface MapLayerFeatureInfo {
5595+
// (undocumented)
5596+
info?: MapSubLayerFeatureInfo[] | HTMLElement;
5597+
// (undocumented)
5598+
layerName: string;
5599+
}
5600+
55765601
// @internal (undocumented)
55775602
export class MapLayerFormat {
55785603
// (undocumented)
@@ -5643,6 +5668,8 @@ export abstract class MapLayerImageryProvider {
56435668
// (undocumented)
56445669
getEPSG4326ExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean): string;
56455670
// (undocumented)
5671+
getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree): Promise<void>;
5672+
// (undocumented)
56465673
protected getImageFromTileResponse(tileResponse: Response, zoomLevel: number): ImageSource | undefined;
56475674
// (undocumented)
56485675
getLogo(_viewport: ScreenViewport): HTMLTableRowElement | undefined;
@@ -5833,6 +5860,16 @@ export interface MapLayerTokenEndpoint {
58335860
getUrl(): string;
58345861
}
58355862

5863+
// @alpha (undocumented)
5864+
export interface MapSubLayerFeatureInfo {
5865+
// (undocumented)
5866+
displayFieldName?: string;
5867+
// (undocumented)
5868+
records?: MapFeatureInfoRecord[];
5869+
// (undocumented)
5870+
subLayerName: string;
5871+
}
5872+
58365873
// @internal (undocumented)
58375874
export class MapTile extends RealityTile {
58385875
constructor(params: RealityTileParams, mapTree: MapTileTree, quadId: QuadId, _patch: TilePatch, rectangle: MapCartoRectangle, heightRange: Range1d | undefined, _cornerRays: Ray3d[] | undefined);
@@ -6129,6 +6166,8 @@ export class MapTileTreeReference extends TileTreeReference {
61296166
// (undocumented)
61306167
getLayerImageryTreeRef(index: number): MapLayerTileTreeReference | undefined;
61316168
// (undocumented)
6169+
getMapFeatureInfo(hit: HitDetail): Promise<MapLayerFeatureInfo[] | undefined>;
6170+
// (undocumented)
61326171
protected getSymbologyOverrides(_tree: TileTree): FeatureSymbology.Overrides | undefined;
61336172
// (undocumented)
61346173
getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined>;
@@ -11237,6 +11276,8 @@ export abstract class TileTreeReference {
1123711276
protected getClipVolume(tree: TileTree): RenderClipVolume | undefined;
1123811277
protected getHiddenLineSettings(_tree: TileTree): HiddenLine.Settings | undefined;
1123911278
getLocation(): Transform | undefined;
11279+
// @alpha
11280+
getMapFeatureInfo(_hit: HitDetail): Promise<MapLayerFeatureInfo[] | undefined>;
1124011281
protected getSymbologyOverrides(_tree: TileTree): FeatureSymbology.Overrides | undefined;
1124111282
// @internal (undocumented)
1124211283
getTerrainHeight(_terrainHeights: Range1d): void;
@@ -12960,6 +13001,8 @@ export abstract class Viewport implements IDisposable, TileUser {
1296013001
getAuxCoordRotation(result?: Matrix3d): Matrix3d;
1296113002
getContrastToBackgroundColor(): ColorDef;
1296213003
getFrustum(sys?: CoordSystem, adjustedBox?: boolean, box?: Frustum): Frustum;
13004+
// @alpha (undocumented)
13005+
getMapFeatureInfo(hit: HitDetail): Promise<MapFeatureInfo>;
1296313006
// @internal (undocumented)
1296413007
getMapLayerImageryProvider(index: number, isOverlay: boolean): MapLayerImageryProvider | undefined;
1296513008
getPixelDataNpcPoint(pixels: Pixel.Buffer, x: number, y: number, out?: Point3d): Point3d | undefined;

common/api/summary/core-frontend.exports.csv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,12 @@ internal;LRUTileListNode
335335
public;ManipulatorToolEvent
336336
internal;MapBoxLayerImageryProvider
337337
internal;MapCartoRectangle
338+
alpha;MapFeatureInfo
339+
alpha;MapFeatureInfoRecord
338340
internal;MapLayerAuthenticationInfo
339341
beta;MapLayerAuthType
340342
internal;MapLayerClassifiers = Map
343+
alpha;MapLayerFeatureInfo
341344
internal;MapLayerFormat
342345
internal;MapLayerFormatRegistry
343346
internal;MapLayerFormatType = typeof MapLayerFormat
@@ -350,6 +353,7 @@ internal;MapLayerSourceStatus
350353
internal;MapLayerSourceValidation
351354
internal;class MapLayerTileTreeReference
352355
internal;MapLayerTokenEndpoint
356+
alpha;MapSubLayerFeatureInfo
353357
internal;MapTile
354358
internal;MapTiledGraphicsProvider
355359
internal;MapTileLoader
@@ -461,6 +465,7 @@ public;ReadGltfGraphicsArgs
461465
public;ReadImageBufferArgs
462466
internal;ReadonlyTileUserSet
463467
internal;readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): Promise
468+
alpha;RealityDataError
464469
beta;RealityDataSource
465470
beta;RealityDataSource
466471
internal;createCesiumIonAssetKey(osmAssetId: number, requestKey: string): RealityDataSourceKey
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@itwin/core-frontend",
5+
"comment": "Added new getMapFeatureInfo API to Viewport.",
6+
"type": "none"
7+
}
8+
],
9+
"packageName": "@itwin/core-frontend"
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@itwin/map-layers",
5+
"comment": "Added FeatureInfo Widget.",
6+
"type": "none"
7+
}
8+
],
9+
"packageName": "@itwin/map-layers"
10+
}

0 commit comments

Comments
 (0)