@itwin/map-layers-formats 5.0.0-dev.111 → 5.0.0-dev.113

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 (71) hide show
  1. package/lib/cjs/GoogleMaps/GoogleMapDecorator.d.ts +1 -1
  2. package/lib/cjs/GoogleMaps/GoogleMapDecorator.d.ts.map +1 -1
  3. package/lib/cjs/GoogleMaps/GoogleMapDecorator.js.map +1 -1
  4. package/lib/cjs/GoogleMaps/GoogleMaps.d.ts +8 -125
  5. package/lib/cjs/GoogleMaps/GoogleMaps.d.ts.map +1 -1
  6. package/lib/cjs/GoogleMaps/GoogleMaps.js +10 -3
  7. package/lib/cjs/GoogleMaps/GoogleMaps.js.map +1 -1
  8. package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.d.ts +8 -0
  9. package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.d.ts.map +1 -1
  10. package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.js +10 -1
  11. package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.js.map +1 -1
  12. package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.d.ts +10 -7
  13. package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.d.ts.map +1 -1
  14. package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.js +63 -67
  15. package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.js.map +1 -1
  16. package/lib/cjs/GoogleMaps/GoogleMapsSession.d.ts +152 -0
  17. package/lib/cjs/GoogleMaps/GoogleMapsSession.d.ts.map +1 -0
  18. package/lib/cjs/GoogleMaps/GoogleMapsSession.js +33 -0
  19. package/lib/cjs/GoogleMaps/GoogleMapsSession.js.map +1 -0
  20. package/lib/cjs/internal/GoogleMapsUtils.d.ts +9 -16
  21. package/lib/cjs/internal/GoogleMapsUtils.d.ts.map +1 -1
  22. package/lib/cjs/internal/GoogleMapsUtils.js +36 -40
  23. package/lib/cjs/internal/GoogleMapsUtils.js.map +1 -1
  24. package/lib/cjs/internal/NativeGoogleMapsSession.d.ts +29 -0
  25. package/lib/cjs/internal/NativeGoogleMapsSession.d.ts.map +1 -0
  26. package/lib/cjs/internal/NativeGoogleMapsSession.js +83 -0
  27. package/lib/cjs/internal/NativeGoogleMapsSession.js.map +1 -0
  28. package/lib/cjs/map-layers-formats.d.ts +2 -0
  29. package/lib/cjs/map-layers-formats.d.ts.map +1 -1
  30. package/lib/cjs/map-layers-formats.js +2 -0
  31. package/lib/cjs/map-layers-formats.js.map +1 -1
  32. package/lib/cjs/mapLayersFormats.d.ts +10 -0
  33. package/lib/cjs/mapLayersFormats.d.ts.map +1 -1
  34. package/lib/cjs/mapLayersFormats.js +5 -0
  35. package/lib/cjs/mapLayersFormats.js.map +1 -1
  36. package/lib/esm/GoogleMaps/GoogleMapDecorator.d.ts +1 -1
  37. package/lib/esm/GoogleMaps/GoogleMapDecorator.d.ts.map +1 -1
  38. package/lib/esm/GoogleMaps/GoogleMapDecorator.js.map +1 -1
  39. package/lib/esm/GoogleMaps/GoogleMaps.d.ts +8 -125
  40. package/lib/esm/GoogleMaps/GoogleMaps.d.ts.map +1 -1
  41. package/lib/esm/GoogleMaps/GoogleMaps.js +10 -3
  42. package/lib/esm/GoogleMaps/GoogleMaps.js.map +1 -1
  43. package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.d.ts +8 -0
  44. package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.d.ts.map +1 -1
  45. package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.js +10 -1
  46. package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.js.map +1 -1
  47. package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.d.ts +10 -7
  48. package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.d.ts.map +1 -1
  49. package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.js +64 -68
  50. package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.js.map +1 -1
  51. package/lib/esm/GoogleMaps/GoogleMapsSession.d.ts +152 -0
  52. package/lib/esm/GoogleMaps/GoogleMapsSession.d.ts.map +1 -0
  53. package/lib/esm/GoogleMaps/GoogleMapsSession.js +28 -0
  54. package/lib/esm/GoogleMaps/GoogleMapsSession.js.map +1 -0
  55. package/lib/esm/internal/GoogleMapsUtils.d.ts +9 -16
  56. package/lib/esm/internal/GoogleMapsUtils.d.ts.map +1 -1
  57. package/lib/esm/internal/GoogleMapsUtils.js +36 -40
  58. package/lib/esm/internal/GoogleMapsUtils.js.map +1 -1
  59. package/lib/esm/internal/NativeGoogleMapsSession.d.ts +29 -0
  60. package/lib/esm/internal/NativeGoogleMapsSession.d.ts.map +1 -0
  61. package/lib/esm/internal/NativeGoogleMapsSession.js +78 -0
  62. package/lib/esm/internal/NativeGoogleMapsSession.js.map +1 -0
  63. package/lib/esm/map-layers-formats.d.ts +2 -0
  64. package/lib/esm/map-layers-formats.d.ts.map +1 -1
  65. package/lib/esm/map-layers-formats.js +2 -0
  66. package/lib/esm/map-layers-formats.js.map +1 -1
  67. package/lib/esm/mapLayersFormats.d.ts +10 -0
  68. package/lib/esm/mapLayersFormats.d.ts.map +1 -1
  69. package/lib/esm/mapLayersFormats.js +5 -0
  70. package/lib/esm/mapLayersFormats.js.map +1 -1
  71. package/package.json +13 -13
@@ -2,30 +2,13 @@
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
- import { Logger } from "@itwin/core-bentley";
6
5
  import { IModelApp } from "@itwin/core-frontend";
7
- import { Angle } from "@itwin/core-geometry";
8
6
  import { GoogleMapsMapLayerFormat } from "../GoogleMaps/GoogleMapsImageryFormat.js";
7
+ import { BentleyError, BentleyStatus, Logger } from "@itwin/core-bentley";
9
8
  const loggerCategory = "MapLayersFormats.GoogleMaps";
10
9
  /** @internal */
11
10
  // eslint-disable-next-line @typescript-eslint/naming-convention
12
11
  export const GoogleMapsUtils = {
13
- /**
14
- * Creates a Google Maps session.
15
- * @param apiKey Google Cloud API key
16
- * @param opts Options to create the session
17
- * @internal
18
- */
19
- createSession: async (apiKey, opts) => {
20
- const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;
21
- const request = new Request(url, { method: "POST", body: JSON.stringify(opts) });
22
- const response = await fetch(request);
23
- if (!response.ok) {
24
- throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);
25
- }
26
- Logger.logInfo(loggerCategory, `Session created successfully`);
27
- return response.json();
28
- },
29
12
  /**
30
13
  * Register the google maps format if it is not already registered.
31
14
  * @internal
@@ -51,28 +34,6 @@ export const GoogleMapsUtils = {
51
34
  };
52
35
  },
53
36
  /**
54
- * Retrieves the maximum zoom level available within a bounding rectangle.
55
- * @param rectangle The bounding rectangle
56
- * @returns The maximum zoom level available within the bounding rectangle.
57
- * @internal
58
- */
59
- getViewportInfo: async (params) => {
60
- const { rectangle, session, key, zoom } = params;
61
- const north = Angle.radiansToDegrees(rectangle.north);
62
- const south = Angle.radiansToDegrees(rectangle.south);
63
- const east = Angle.radiansToDegrees(rectangle.east);
64
- const west = Angle.radiansToDegrees(rectangle.west);
65
- const url = `https://tile.googleapis.com/tile/v1/viewport?session=${session}&key=${key}&zoom=${zoom}&north=${north}&south=${south}&east=${east}&west=${west}`;
66
- const request = new Request(url, { method: "GET" });
67
- const response = await fetch(request);
68
- if (!response.ok) {
69
- return undefined;
70
- }
71
- const json = await response.json();
72
- return json;
73
- ;
74
- },
75
- /**
76
37
  * Converts the session options to provider properties
77
38
  * @param opts Options to create the session
78
39
  * @internal
@@ -97,5 +58,40 @@ export const GoogleMapsUtils = {
97
58
  }
98
59
  return properties;
99
60
  },
61
+ /**
62
+ * Read the session options from the map layer settings.
63
+ * @param settings Map layer settings
64
+ * ```
65
+ * @internal
66
+ */
67
+ getSessionOptionsFromMapLayer: (settings) => {
68
+ const layerPropertyKeys = settings.properties ? Object.keys(settings.properties) : undefined;
69
+ if (layerPropertyKeys === undefined ||
70
+ !layerPropertyKeys.includes("mapType") ||
71
+ !layerPropertyKeys.includes("language") ||
72
+ !layerPropertyKeys.includes("region")) {
73
+ const msg = "Missing session options";
74
+ Logger.logError(loggerCategory, msg);
75
+ throw new BentleyError(BentleyStatus.ERROR, msg);
76
+ }
77
+ const createSessionOptions = {
78
+ mapType: settings.properties.mapType,
79
+ region: settings.properties.region,
80
+ language: settings.properties.language,
81
+ };
82
+ if (Array.isArray(settings.properties?.layerTypes) && settings.properties.layerTypes.length > 0) {
83
+ createSessionOptions.layerTypes = settings.properties.layerTypes;
84
+ }
85
+ if (settings.properties?.scale !== undefined) {
86
+ createSessionOptions.scale = settings.properties.scale;
87
+ }
88
+ if (settings.properties?.overlay !== undefined) {
89
+ createSessionOptions.overlay = settings.properties.overlay;
90
+ }
91
+ if (settings.properties?.apiOptions !== undefined) {
92
+ createSessionOptions.apiOptions = settings.properties.apiOptions;
93
+ }
94
+ return createSessionOptions;
95
+ }
100
96
  };
101
97
  //# sourceMappingURL=GoogleMapsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleMapsUtils.js","sourceRoot":"","sources":["../../../src/internal/GoogleMapsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { ImageMapLayerProps, MapLayerProviderProperties } from \"@itwin/core-common\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { Angle } from \"@itwin/core-geometry\";\nimport { GoogleMapsCreateSessionOptions, GoogleMapsSession, ViewportInfo, ViewportInfoRequestParams } from \"../GoogleMaps/GoogleMaps.js\";\nimport { GoogleMapsMapLayerFormat } from \"../GoogleMaps/GoogleMapsImageryFormat.js\";\n\nconst loggerCategory = \"MapLayersFormats.GoogleMaps\";\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const GoogleMapsUtils = {\n /**\n * Creates a Google Maps session.\n * @param apiKey Google Cloud API key\n * @param opts Options to create the session\n * @internal\n */\n createSession: async (apiKey: string, opts: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSession> => {\n const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;\n const request = new Request(url, {method: \"POST\", body: JSON.stringify(opts)});\n const response = await fetch (request);\n if (!response.ok) {\n throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);\n }\n Logger.logInfo(loggerCategory, `Session created successfully`);\n return response.json();\n },\n\n /**\n * Register the google maps format if it is not already registered.\n * @internal\n */\n checkFormatRegistered: () => {\n if (!IModelApp.mapLayerFormatRegistry.isRegistered(GoogleMapsMapLayerFormat.formatId)) {\n throw new Error(`GoogleMaps format is not registered`);\n }\n },\n\n /**\n * Creates a Google Maps layer props.\n * @param name Name of the layer (Defaults to \"GoogleMaps\")\n * @param opts Options to create the session (Defaults to satellite map type, English language, US region, and roadmap layer type)\n * @internal\n*/\n createMapLayerProps: (name: string = \"GoogleMaps\", opts?: GoogleMapsCreateSessionOptions): ImageMapLayerProps => {\n GoogleMapsUtils.checkFormatRegistered();\n\n return {\n formatId: GoogleMapsMapLayerFormat.formatId,\n url: \"\",\n name,\n properties: GoogleMapsUtils.createPropertiesFromSessionOptions(opts ?? {mapType: \"satellite\", language: \"en-US\", region: \"US:\", layerTypes: [\"layerRoadmap\"]}),\n };\n },\n\n /**\n * Retrieves the maximum zoom level available within a bounding rectangle.\n * @param rectangle The bounding rectangle\n * @returns The maximum zoom level available within the bounding rectangle.\n * @internal\n */\n getViewportInfo: async (params: ViewportInfoRequestParams): Promise<ViewportInfo | undefined>=> {\n const {rectangle, session, key, zoom} = params;\n const north = Angle.radiansToDegrees(rectangle.north);\n const south = Angle.radiansToDegrees(rectangle.south);\n const east = Angle.radiansToDegrees(rectangle.east);\n const west = Angle.radiansToDegrees(rectangle.west);\n const url = `https://tile.googleapis.com/tile/v1/viewport?session=${session}&key=${key}&zoom=${zoom}&north=${north}&south=${south}&east=${east}&west=${west}`;\n const request = new Request(url, {method: \"GET\"});\n const response = await fetch (request);\n if (!response.ok) {\n return undefined;\n }\n const json = await response.json();\n return json as ViewportInfo;;\n },\n\n /**\n * Converts the session options to provider properties\n * @param opts Options to create the session\n * @internal\n */\n createPropertiesFromSessionOptions: (opts: GoogleMapsCreateSessionOptions): MapLayerProviderProperties => {\n const properties: MapLayerProviderProperties = {\n mapType: opts.mapType,\n language: opts.language,\n region: opts.region,\n }\n\n if (opts.layerTypes !== undefined) {\n properties.layerTypes = [...opts.layerTypes];\n }\n\n if (opts.scale !== undefined) {\n properties.scale = opts.scale;\n }\n\n if (opts.overlay !== undefined) {\n properties.overlay = opts.overlay;\n }\n\n if (opts.apiOptions !== undefined) {\n properties.apiOptions = [...opts.apiOptions];\n }\n\n return properties;\n },\n}\n"]}
1
+ {"version":3,"file":"GoogleMapsUtils.js","sourceRoot":"","sources":["../../../src/internal/GoogleMapsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { ImageMapLayerProps, ImageMapLayerSettings, MapLayerProviderProperties } from \"@itwin/core-common\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { GoogleMapsMapLayerFormat } from \"../GoogleMaps/GoogleMapsImageryFormat.js\";\nimport { GoogleMapsCreateSessionOptions, GoogleMapsLayerTypes, GoogleMapsMapTypes, GoogleMapsScaleFactors } from \"../map-layers-formats.js\";\nimport { BentleyError, BentleyStatus, Logger } from \"@itwin/core-bentley\";\n\nconst loggerCategory = \"MapLayersFormats.GoogleMaps\";\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const GoogleMapsUtils = {\n\n /**\n * Register the google maps format if it is not already registered.\n * @internal\n */\n checkFormatRegistered: () => {\n if (!IModelApp.mapLayerFormatRegistry.isRegistered(GoogleMapsMapLayerFormat.formatId)) {\n throw new Error(`GoogleMaps format is not registered`);\n }\n },\n\n /**\n * Creates a Google Maps layer props.\n * @param name Name of the layer (Defaults to \"GoogleMaps\")\n * @param opts Options to create the session (Defaults to satellite map type, English language, US region, and roadmap layer type)\n * @internal\n*/\n createMapLayerProps: (name: string = \"GoogleMaps\", opts?: GoogleMapsCreateSessionOptions): ImageMapLayerProps => {\n GoogleMapsUtils.checkFormatRegistered();\n\n return {\n formatId: GoogleMapsMapLayerFormat.formatId,\n url: \"\",\n name,\n properties: GoogleMapsUtils.createPropertiesFromSessionOptions(opts ?? {mapType: \"satellite\", language: \"en-US\", region: \"US:\", layerTypes: [\"layerRoadmap\"]}),\n };\n },\n\n /**\n * Converts the session options to provider properties\n * @param opts Options to create the session\n * @internal\n */\n createPropertiesFromSessionOptions: (opts: GoogleMapsCreateSessionOptions): MapLayerProviderProperties => {\n const properties: MapLayerProviderProperties = {\n mapType: opts.mapType,\n language: opts.language,\n region: opts.region,\n }\n\n if (opts.layerTypes !== undefined) {\n properties.layerTypes = [...opts.layerTypes];\n }\n\n if (opts.scale !== undefined) {\n properties.scale = opts.scale;\n }\n\n if (opts.overlay !== undefined) {\n properties.overlay = opts.overlay;\n }\n\n if (opts.apiOptions !== undefined) {\n properties.apiOptions = [...opts.apiOptions];\n }\n\n return properties;\n },\n\n /**\n * Read the session options from the map layer settings.\n * @param settings Map layer settings\n * ```\n * @internal\n */\n getSessionOptionsFromMapLayer: (settings: ImageMapLayerSettings): GoogleMapsCreateSessionOptions => {\n const layerPropertyKeys = settings.properties ? Object.keys(settings.properties) : undefined;\n if (layerPropertyKeys === undefined ||\n !layerPropertyKeys.includes(\"mapType\") ||\n !layerPropertyKeys.includes(\"language\") ||\n !layerPropertyKeys.includes(\"region\")) {\n const msg = \"Missing session options\";\n Logger.logError(loggerCategory, msg);\n throw new BentleyError(BentleyStatus.ERROR, msg);\n }\n\n const createSessionOptions: GoogleMapsCreateSessionOptions = {\n mapType: settings.properties!.mapType as GoogleMapsMapTypes,\n region: settings.properties!.region as string,\n language: settings.properties!.language as string,\n }\n\n if (Array.isArray(settings.properties?.layerTypes) && settings.properties.layerTypes.length > 0) {\n createSessionOptions.layerTypes = settings.properties.layerTypes as GoogleMapsLayerTypes[];\n }\n\n if (settings.properties?.scale !== undefined) {\n createSessionOptions.scale = settings.properties.scale as GoogleMapsScaleFactors;\n }\n\n if (settings.properties?.overlay !== undefined) {\n createSessionOptions.overlay = settings.properties.overlay as boolean;\n }\n\n if (settings.properties?.apiOptions !== undefined) {\n createSessionOptions.apiOptions = settings.properties.apiOptions as string[];\n }\n return createSessionOptions;\n }\n}\n"]}
@@ -0,0 +1,29 @@
1
+ /** @packageDocumentation
2
+ * @module MapLayersFormats
3
+ */
4
+ import { MapCartoRectangle, QuadIdProps } from "@itwin/core-frontend";
5
+ import { BaseGoogleMapsSession, GoogleMapsCreateSessionOptions, GoogleMapsRequest, GoogleMapsSession, GoogleMapsSessionData, GoogleMapsSessionManager } from "../GoogleMaps/GoogleMapsSession.js";
6
+ export declare class NativeGoogleMapsSession extends BaseGoogleMapsSession {
7
+ static getTileApiBaseUrl: string;
8
+ static viewportApiBaseUrl: string;
9
+ readonly json: GoogleMapsSessionData;
10
+ readonly apiKey: string;
11
+ constructor(json: GoogleMapsSessionData, apiKey: string);
12
+ protected getTileApiBaseUrl(): string;
13
+ getTileSize(): number;
14
+ getTileRequest(position: QuadIdProps): GoogleMapsRequest;
15
+ getViewportInfoRequest(rectangle: MapCartoRectangle, zoomLevel: number): GoogleMapsRequest;
16
+ /**
17
+ * Creates a Google Maps session.
18
+ * @param apiKey Google Cloud API key
19
+ * @param opts Options to create the session
20
+ * @internal
21
+ */
22
+ static create(apiKey: string, opts: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSessionData>;
23
+ }
24
+ export declare class NativeGoogleMapsSessionManager extends GoogleMapsSessionManager {
25
+ readonly apiKey: string;
26
+ constructor(apiKey: string);
27
+ createSession(sessionOptions: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSession>;
28
+ }
29
+ //# sourceMappingURL=NativeGoogleMapsSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeGoogleMapsSession.d.ts","sourceRoot":"","sources":["../../../src/internal/NativeGoogleMapsSession.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AASlM,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,OAAc,iBAAiB,SAA4C;IAC3E,OAAc,kBAAkB,SAAiD;IACjF,SAAgB,IAAI,EAAE,qBAAqB,CAAC;IAC5C,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM;IAM9D,SAAS,CAAC,iBAAiB;IAIpB,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB;IAOxD,sBAAsB,CAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB;IAYhG;;;;;MAKE;WACkB,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAUpH;AAMD,qBAAa,8BAA+B,SAAQ,wBAAwB;IAC1E,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,MAAM;IAKb,aAAa,CAAC,cAAc,EAAE,8BAA8B,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAKvG"}
@@ -0,0 +1,78 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module MapLayersFormats
7
+ */
8
+ import { Logger } from "@itwin/core-bentley";
9
+ import { BaseGoogleMapsSession, GoogleMapsSessionManager } from "../GoogleMaps/GoogleMapsSession.js";
10
+ const loggerCategory = "MapLayersFormats.GoogleMaps";
11
+ /*
12
+ * Google Maps session
13
+ * @internal
14
+ */
15
+ export class NativeGoogleMapsSession extends BaseGoogleMapsSession {
16
+ static getTileApiBaseUrl = "https://tile.googleapis.com/v1/2dtiles";
17
+ static viewportApiBaseUrl = `https://tile.googleapis.com/tile/v1/viewport`;
18
+ json;
19
+ apiKey;
20
+ constructor(json, apiKey) {
21
+ super();
22
+ this.json = json;
23
+ this.apiKey = apiKey;
24
+ }
25
+ getTileApiBaseUrl() {
26
+ return NativeGoogleMapsSession.getTileApiBaseUrl;
27
+ }
28
+ getTileSize() {
29
+ return this.json.tileWidth;
30
+ }
31
+ getTileRequest(position) {
32
+ const url = this.getTilePositionUrl(position);
33
+ url.searchParams.append("key", this.apiKey);
34
+ url.searchParams.append("session", this.json.session);
35
+ return { url };
36
+ }
37
+ getViewportInfoRequest(rectangle, zoomLevel) {
38
+ const degrees = rectangle.toDegrees();
39
+ const url = new URL(`${this.getTileApiBaseUrl()}\
40
+ zoom=${zoomLevel}\
41
+ &north=${degrees.north}&south=${degrees.south}&east=${degrees.east}&west=${degrees.west}`);
42
+ url.searchParams.append("key", this.apiKey);
43
+ url.searchParams.append("session", this.json.session);
44
+ return { url };
45
+ }
46
+ /**
47
+ * Creates a Google Maps session.
48
+ * @param apiKey Google Cloud API key
49
+ * @param opts Options to create the session
50
+ * @internal
51
+ */
52
+ static async create(apiKey, opts) {
53
+ const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;
54
+ const request = new Request(url, { method: "POST", body: JSON.stringify(opts) });
55
+ const response = await fetch(request);
56
+ if (!response.ok) {
57
+ throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);
58
+ }
59
+ Logger.logInfo(loggerCategory, `Session created successfully`);
60
+ return response.json();
61
+ }
62
+ }
63
+ /*
64
+ * Google Maps session manager that uses standard API key to create a session.
65
+ * @beta
66
+ */
67
+ export class NativeGoogleMapsSessionManager extends GoogleMapsSessionManager {
68
+ apiKey;
69
+ constructor(apiKey) {
70
+ super();
71
+ this.apiKey = apiKey;
72
+ }
73
+ async createSession(sessionOptions) {
74
+ const json = await NativeGoogleMapsSession.create(this.apiKey, sessionOptions);
75
+ return new NativeGoogleMapsSession(json, this.apiKey);
76
+ }
77
+ }
78
+ //# sourceMappingURL=NativeGoogleMapsSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeGoogleMapsSession.js","sourceRoot":"","sources":["../../../src/internal/NativeGoogleMapsSession.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module MapLayersFormats\n */\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { MapCartoRectangle, QuadIdProps } from \"@itwin/core-frontend\";\nimport { BaseGoogleMapsSession, GoogleMapsCreateSessionOptions, GoogleMapsRequest, GoogleMapsSession, GoogleMapsSessionData, GoogleMapsSessionManager } from \"../GoogleMaps/GoogleMapsSession.js\";\n\n\nconst loggerCategory = \"MapLayersFormats.GoogleMaps\";\n\n/*\n* Google Maps session\n* @internal\n*/\nexport class NativeGoogleMapsSession extends BaseGoogleMapsSession {\n public static getTileApiBaseUrl = \"https://tile.googleapis.com/v1/2dtiles\";\n public static viewportApiBaseUrl = `https://tile.googleapis.com/tile/v1/viewport`\n public readonly json: GoogleMapsSessionData;\n public readonly apiKey: string;\n\n public constructor(json: GoogleMapsSessionData, apiKey: string) {\n super();\n this.json = json;\n this.apiKey = apiKey;\n }\n\n protected getTileApiBaseUrl() {\n return NativeGoogleMapsSession.getTileApiBaseUrl;\n }\n\n public getTileSize(): number {\n return this.json.tileWidth;\n }\n\n public getTileRequest(position: QuadIdProps): GoogleMapsRequest {\n const url = this.getTilePositionUrl(position);\n url.searchParams.append(\"key\", this.apiKey);\n url.searchParams.append(\"session\", this.json.session);\n return {url};\n }\n\n public getViewportInfoRequest (rectangle: MapCartoRectangle, zoomLevel: number): GoogleMapsRequest {\n const degrees = rectangle.toDegrees();\n const url = new URL(\n `${this.getTileApiBaseUrl()}\\\n zoom=${zoomLevel}\\\n &north=${degrees.north}&south=${degrees.south}&east=${degrees.east}&west=${degrees.west}`\n );\n url.searchParams.append(\"key\", this.apiKey);\n url.searchParams.append(\"session\", this.json.session);\n return {url};\n }\n\n /**\n * Creates a Google Maps session.\n * @param apiKey Google Cloud API key\n * @param opts Options to create the session\n * @internal\n */\n public static async create (apiKey: string, opts: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSessionData> {\n const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;\n const request = new Request(url, {method: \"POST\", body: JSON.stringify(opts)});\n const response = await fetch (request);\n if (!response.ok) {\n throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);\n }\n Logger.logInfo(loggerCategory, `Session created successfully`);\n return response.json();\n }\n}\n\n/*\n* Google Maps session manager that uses standard API key to create a session.\n* @beta\n*/\nexport class NativeGoogleMapsSessionManager extends GoogleMapsSessionManager {\n public readonly apiKey: string;\n\n constructor(apiKey: string) {\n super();\n this.apiKey = apiKey;\n }\n\n public async createSession(sessionOptions: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSession> {\n const json = await NativeGoogleMapsSession.create(this.apiKey, sessionOptions);\n return new NativeGoogleMapsSession(json, this.apiKey);\n }\n\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  export * from "./ArcGisFeature/ArcGisFeatureProvider.js";
2
2
  export * from "./GoogleMaps/GoogleMaps.js";
3
+ export * from "./GoogleMaps/GoogleMapsSession.js";
4
+ export * from "./GoogleMaps/GoogleMapsImageryFormat.js";
3
5
  export * from "./mapLayersFormats.js";
4
6
  export * from "./Tools/MapFeatureInfoTool.js";
5
7
  /** @docs-package-description
@@ -1 +1 @@
1
- {"version":3,"file":"map-layers-formats.d.ts","sourceRoot":"","sources":["../../src/map-layers-formats.ts"],"names":[],"mappings":"AAKA,cAAc,0CAA0C,CAAC;AACzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAE9C;;GAEG;AAEH;;GAEG"}
1
+ {"version":3,"file":"map-layers-formats.d.ts","sourceRoot":"","sources":["../../src/map-layers-formats.ts"],"names":[],"mappings":"AAKA,cAAc,0CAA0C,CAAC;AACzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAA;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAE9C;;GAEG;AAEH;;GAEG"}
@@ -4,6 +4,8 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  export * from "./ArcGisFeature/ArcGisFeatureProvider.js";
6
6
  export * from "./GoogleMaps/GoogleMaps.js";
7
+ export * from "./GoogleMaps/GoogleMapsSession.js";
8
+ export * from "./GoogleMaps/GoogleMapsImageryFormat.js";
7
9
  export * from "./mapLayersFormats.js";
8
10
  export * from "./Tools/MapFeatureInfoTool.js";
9
11
  /** @docs-package-description
@@ -1 +1 @@
1
- {"version":3,"file":"map-layers-formats.js","sourceRoot":"","sources":["../../src/map-layers-formats.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,cAAc,0CAA0C,CAAC;AACzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAE9C;;GAEG;AAEH;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nexport * from \"./ArcGisFeature/ArcGisFeatureProvider.js\";\nexport * from \"./GoogleMaps/GoogleMaps.js\";\nexport * from \"./mapLayersFormats.js\";\nexport * from \"./Tools/MapFeatureInfoTool.js\";\n\n/** @docs-package-description\n * This package provides support for additional map layer formats that are not included in the @itwin/core-frontend package.\n */\n\n/** @docs-group-description MapLayersFormats\n * APIs for working with the map layer formats provided by this package.\n */\n"]}
1
+ {"version":3,"file":"map-layers-formats.js","sourceRoot":"","sources":["../../src/map-layers-formats.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,cAAc,0CAA0C,CAAC;AACzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAA;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAE9C;;GAEG;AAEH;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nexport * from \"./ArcGisFeature/ArcGisFeatureProvider.js\";\nexport * from \"./GoogleMaps/GoogleMaps.js\";\nexport * from \"./GoogleMaps/GoogleMapsSession.js\";\nexport * from \"./GoogleMaps/GoogleMapsImageryFormat.js\"\nexport * from \"./mapLayersFormats.js\";\nexport * from \"./Tools/MapFeatureInfoTool.js\";\n\n/** @docs-package-description\n * This package provides support for additional map layer formats that are not included in the @itwin/core-frontend package.\n */\n\n/** @docs-group-description MapLayersFormats\n * APIs for working with the map layer formats provided by this package.\n */\n"]}
@@ -1,9 +1,17 @@
1
1
  import { Localization } from "@itwin/core-common";
2
+ import { GoogleMapsSessionManager } from "./map-layers-formats.js";
2
3
  /** Configuration options.
3
4
  * @beta
4
5
  */
5
6
  export interface MapLayersFormatsConfig {
6
7
  localization?: Localization;
8
+ googleMapsOpts?: GoogleMapsOptions;
9
+ }
10
+ /** Google Maps options.
11
+ * @beta
12
+ */
13
+ export interface GoogleMapsOptions {
14
+ sessionManager?: GoogleMapsSessionManager;
7
15
  }
8
16
  /** The primary API for the `@itwin/map-layers-formats` package. It allows the package's features to be [[initialize]]d.
9
17
  * @beta
@@ -11,6 +19,7 @@ export interface MapLayersFormatsConfig {
11
19
  export declare class MapLayersFormats {
12
20
  private static _defaultNs;
13
21
  static localization: Localization;
22
+ private static _googleMapsOpts?;
14
23
  /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).
15
24
  * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).
16
25
  * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).
@@ -18,5 +27,6 @@ export declare class MapLayersFormats {
18
27
  static initialize(config?: MapLayersFormatsConfig): Promise<void>;
19
28
  /** The internationalization service namespace. */
20
29
  static get localizationNamespace(): string;
30
+ static get googleMapsOpts(): GoogleMapsOptions | undefined;
21
31
  }
22
32
  //# sourceMappingURL=mapLayersFormats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapLayersFormats.d.ts","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsB;IAC/C,OAAc,YAAY,EAAE,YAAY,CAAC;IAEzC;;;OAGG;WACiB,UAAU,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E,kDAAkD;IAClD,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CAEF"}
1
+ {"version":3,"file":"mapLayersFormats.d.ts","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,wBAAwB,CAAA;CAC1C;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsB;IAC/C,OAAc,YAAY,EAAE,YAAY,CAAC;IAEzC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAoB;IAEnD;;;OAGG;WACiB,UAAU,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9E,kDAAkD;IAClD,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;IAED,WAAkB,cAAc,kCAE/B;CAEF"}
@@ -17,6 +17,7 @@ import { MapFeatureInfoTool } from "./Tools/MapFeatureInfoTool.js";
17
17
  export class MapLayersFormats {
18
18
  static _defaultNs = "mapLayersFormats";
19
19
  static localization;
20
+ static _googleMapsOpts;
20
21
  /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).
21
22
  * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).
22
23
  * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).
@@ -32,10 +33,14 @@ export class MapLayersFormats {
32
33
  MapLayersFormats.localization = config?.localization ?? IModelApp.localization;
33
34
  await MapLayersFormats.localization.registerNamespace(MapLayersFormats.localizationNamespace);
34
35
  MapFeatureInfoTool.register(MapLayersFormats.localizationNamespace);
36
+ MapLayersFormats._googleMapsOpts = config?.googleMapsOpts;
35
37
  }
36
38
  /** The internationalization service namespace. */
37
39
  static get localizationNamespace() {
38
40
  return MapLayersFormats._defaultNs;
39
41
  }
42
+ static get googleMapsOpts() {
43
+ return MapLayersFormats._googleMapsOpts;
44
+ }
40
45
  }
41
46
  //# sourceMappingURL=mapLayersFormats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapLayersFormats.js","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASnE;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAEnB,MAAM,CAAC,UAAU,GAAG,kBAAkB,CAAC;IACxC,MAAM,CAAC,YAAY,CAAe;IAEzC;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAA+B;QAC5D,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,kGAAkG,CAAC,CAAC;QAClI,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;YACvE,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACxE,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACtE,CAAC;QAED,mEAAmE;QACnE,gBAAgB,CAAC,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC;QAC/E,MAAM,gBAAgB,CAAC,YAAY,CAAC,iBAAiB,CACnD,gBAAgB,CAAC,qBAAqB,CACvC,CAAC;QAEF,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACtE,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,gBAAgB,CAAC,UAAU,CAAC;IACrC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module MapLayersFormats\n */\nimport { assert } from \"@itwin/core-bentley\";\nimport { Localization } from \"@itwin/core-common\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { ArcGisFeatureMapLayerFormat } from \"./ArcGisFeature/ArcGisFeatureFormat.js\";\nimport { GoogleMapsMapLayerFormat } from \"./GoogleMaps/GoogleMapsImageryFormat.js\";\nimport { OgcApiFeaturesMapLayerFormat } from \"./OgcApiFeatures/OgcApiFeaturesFormat.js\";\nimport { MapFeatureInfoTool } from \"./Tools/MapFeatureInfoTool.js\";\n\n/** Configuration options.\n * @beta\n */\nexport interface MapLayersFormatsConfig {\n localization?: Localization;\n}\n\n/** The primary API for the `@itwin/map-layers-formats` package. It allows the package's features to be [[initialize]]d.\n * @beta\n */\nexport class MapLayersFormats {\n\n private static _defaultNs = \"mapLayersFormats\";\n public static localization: Localization;\n\n /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).\n * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).\n * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).\n */\n public static async initialize(config?: MapLayersFormatsConfig): Promise<void> {\n assert(IModelApp.initialized, \"MapLayersFormats.initialize must be called after IModelApp.startup and before IModelApp.shutdown\");\n if (IModelApp.initialized) {\n IModelApp.mapLayerFormatRegistry.register(ArcGisFeatureMapLayerFormat);\n IModelApp.mapLayerFormatRegistry.register(OgcApiFeaturesMapLayerFormat);\n IModelApp.mapLayerFormatRegistry.register(GoogleMapsMapLayerFormat);\n }\n\n // register namespace containing localized strings for this package\n MapLayersFormats.localization = config?.localization ?? IModelApp.localization;\n await MapLayersFormats.localization.registerNamespace(\n MapLayersFormats.localizationNamespace,\n );\n\n MapFeatureInfoTool.register(MapLayersFormats.localizationNamespace);\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return MapLayersFormats._defaultNs;\n }\n\n}\n"]}
1
+ {"version":3,"file":"mapLayersFormats.js","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAkBnE;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAEnB,MAAM,CAAC,UAAU,GAAG,kBAAkB,CAAC;IACxC,MAAM,CAAC,YAAY,CAAe;IAEjC,MAAM,CAAC,eAAe,CAAqB;IAEnD;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAA+B;QAC5D,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,kGAAkG,CAAC,CAAC;QAClI,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;YACvE,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACxE,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACtE,CAAC;QAED,mEAAmE;QACnE,gBAAgB,CAAC,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC;QAC/E,MAAM,gBAAgB,CAAC,YAAY,CAAC,iBAAiB,CACnD,gBAAgB,CAAC,qBAAqB,CACvC,CAAC;QAEF,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QACpE,gBAAgB,CAAC,eAAe,GAAG,MAAM,EAAE,cAAc,CAAC;IAC5D,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,gBAAgB,CAAC,UAAU,CAAC;IACrC,CAAC;IAEM,MAAM,KAAK,cAAc;QAC9B,OAAO,gBAAgB,CAAC,eAAe,CAAC;IAC1C,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module MapLayersFormats\n */\nimport { assert } from \"@itwin/core-bentley\";\nimport { Localization } from \"@itwin/core-common\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { ArcGisFeatureMapLayerFormat } from \"./ArcGisFeature/ArcGisFeatureFormat.js\";\nimport { GoogleMapsMapLayerFormat } from \"./GoogleMaps/GoogleMapsImageryFormat.js\";\nimport { OgcApiFeaturesMapLayerFormat } from \"./OgcApiFeatures/OgcApiFeaturesFormat.js\";\nimport { MapFeatureInfoTool } from \"./Tools/MapFeatureInfoTool.js\";\nimport { GoogleMapsSessionManager } from \"./map-layers-formats.js\";\n\n/** Configuration options.\n * @beta\n */\nexport interface MapLayersFormatsConfig {\n localization?: Localization;\n googleMapsOpts?: GoogleMapsOptions;\n}\n\n/** Google Maps options.\n * @beta\n */\nexport interface GoogleMapsOptions {\n sessionManager?: GoogleMapsSessionManager\n}\n\n/** The primary API for the `@itwin/map-layers-formats` package. It allows the package's features to be [[initialize]]d.\n * @beta\n */\nexport class MapLayersFormats {\n\n private static _defaultNs = \"mapLayersFormats\";\n public static localization: Localization;\n\n private static _googleMapsOpts?: GoogleMapsOptions;\n\n /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).\n * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).\n * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).\n */\n public static async initialize(config?: MapLayersFormatsConfig): Promise<void> {\n assert(IModelApp.initialized, \"MapLayersFormats.initialize must be called after IModelApp.startup and before IModelApp.shutdown\");\n if (IModelApp.initialized) {\n IModelApp.mapLayerFormatRegistry.register(ArcGisFeatureMapLayerFormat);\n IModelApp.mapLayerFormatRegistry.register(OgcApiFeaturesMapLayerFormat);\n IModelApp.mapLayerFormatRegistry.register(GoogleMapsMapLayerFormat);\n }\n\n // register namespace containing localized strings for this package\n MapLayersFormats.localization = config?.localization ?? IModelApp.localization;\n await MapLayersFormats.localization.registerNamespace(\n MapLayersFormats.localizationNamespace,\n );\n\n MapFeatureInfoTool.register(MapLayersFormats.localizationNamespace);\n MapLayersFormats._googleMapsOpts = config?.googleMapsOpts;\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return MapLayersFormats._defaultNs;\n }\n\n public static get googleMapsOpts() {\n return MapLayersFormats._googleMapsOpts;\n }\n\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/map-layers-formats",
3
- "version": "5.0.0-dev.111",
3
+ "version": "5.0.0-dev.113",
4
4
  "description": "Enables additional map-layers formats in iTwin.js",
5
5
  "main": "lib/cjs/map-layers-formats.js",
6
6
  "module": "lib/esm/map-layers-formats.js",
@@ -52,20 +52,20 @@
52
52
  "typemoq": "^2.1.0",
53
53
  "typescript": "~5.6.2",
54
54
  "fetch-mock": "~11.1.3",
55
- "@itwin/appui-abstract": "5.0.0-dev.111",
56
- "@itwin/core-bentley": "5.0.0-dev.111",
57
- "@itwin/build-tools": "5.0.0-dev.111",
58
- "@itwin/core-common": "5.0.0-dev.111",
59
- "@itwin/core-frontend": "5.0.0-dev.111",
60
- "@itwin/core-geometry": "5.0.0-dev.111",
61
- "internal-tools": "3.0.0-dev.69"
55
+ "@itwin/appui-abstract": "5.0.0-dev.113",
56
+ "@itwin/core-common": "5.0.0-dev.113",
57
+ "@itwin/build-tools": "5.0.0-dev.113",
58
+ "@itwin/core-bentley": "5.0.0-dev.113",
59
+ "@itwin/core-geometry": "5.0.0-dev.113",
60
+ "internal-tools": "3.0.0-dev.69",
61
+ "@itwin/core-frontend": "5.0.0-dev.113"
62
62
  },
63
63
  "peerDependencies": {
64
- "@itwin/appui-abstract": "5.0.0-dev.111",
65
- "@itwin/core-common": "5.0.0-dev.111",
66
- "@itwin/core-frontend": "5.0.0-dev.111",
67
- "@itwin/core-bentley": "5.0.0-dev.111",
68
- "@itwin/core-geometry": "5.0.0-dev.111"
64
+ "@itwin/appui-abstract": "5.0.0-dev.113",
65
+ "@itwin/core-common": "5.0.0-dev.113",
66
+ "@itwin/core-bentley": "5.0.0-dev.113",
67
+ "@itwin/core-frontend": "5.0.0-dev.113",
68
+ "@itwin/core-geometry": "5.0.0-dev.113"
69
69
  },
70
70
  "dependencies": {
71
71
  "google-protobuf": "~3.20.1",