@itwin/map-layers-formats 5.1.0-dev.9 → 5.1.1
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 +80 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/cjs/ArcGisFeature/EsriSymbology.js.map +1 -1
- package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- package/lib/cjs/Feature/DefaultMarkerIcon.js +9 -9
- package/lib/cjs/Feature/DefaultMarkerIcon.js.map +1 -1
- package/lib/cjs/Feature/FeatureCanvasRenderer.js.map +1 -1
- package/lib/cjs/Feature/FeatureInfoReader.js.map +1 -1
- package/lib/cjs/Feature/FeatureSymbology.js.map +1 -1
- package/lib/cjs/Feature/RandomMapColor.js.map +1 -1
- package/lib/cjs/GeoJSON/GeoJSONGeometry.js.map +1 -1
- package/lib/cjs/GeoJSON/GeoJSONGeometryReader.js.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMaps.d.ts +8 -125
- package/lib/cjs/GoogleMaps/GoogleMaps.d.ts.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMaps.js +10 -3
- package/lib/cjs/GoogleMaps/GoogleMaps.js.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.d.ts +8 -0
- package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.d.ts.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.js +10 -1
- package/lib/cjs/GoogleMaps/GoogleMapsImageryFormat.js.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.d.ts +10 -7
- package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.d.ts.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.js +65 -68
- package/lib/cjs/GoogleMaps/GoogleMapsImageryProvider.js.map +1 -1
- package/lib/cjs/GoogleMaps/GoogleMapsSession.d.ts +152 -0
- package/lib/cjs/GoogleMaps/GoogleMapsSession.d.ts.map +1 -0
- package/lib/cjs/GoogleMaps/GoogleMapsSession.js +33 -0
- package/lib/cjs/GoogleMaps/GoogleMapsSession.js.map +1 -0
- package/lib/cjs/Icons/MapInfoIcon.js.map +1 -1
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesFormat.js.map +1 -1
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesProvider.js.map +1 -1
- package/lib/cjs/OgcApiFeatures/OgcApiFeaturesReader.js.map +1 -1
- package/lib/cjs/Tools/GeometryTerrainDraper.js.map +1 -1
- package/lib/cjs/Tools/MapFeatureInfoDecorator.js.map +1 -1
- package/lib/cjs/Tools/MapFeatureInfoTool.js.map +1 -1
- package/lib/cjs/internal/GoogleMapsUtils.d.ts +9 -16
- package/lib/cjs/internal/GoogleMapsUtils.d.ts.map +1 -1
- package/lib/cjs/internal/GoogleMapsUtils.js +36 -40
- package/lib/cjs/internal/GoogleMapsUtils.js.map +1 -1
- package/lib/cjs/internal/NativeGoogleMapsSession.d.ts +29 -0
- package/lib/cjs/internal/NativeGoogleMapsSession.d.ts.map +1 -0
- package/lib/cjs/internal/NativeGoogleMapsSession.js +83 -0
- package/lib/cjs/internal/NativeGoogleMapsSession.js.map +1 -0
- package/lib/cjs/map-layers-formats.d.ts +2 -0
- package/lib/cjs/map-layers-formats.d.ts.map +1 -1
- package/lib/cjs/map-layers-formats.js +2 -0
- package/lib/cjs/map-layers-formats.js.map +1 -1
- package/lib/cjs/mapLayersFormats.d.ts +10 -0
- package/lib/cjs/mapLayersFormats.d.ts.map +1 -1
- package/lib/cjs/mapLayersFormats.js +5 -0
- package/lib/cjs/mapLayersFormats.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisJsonFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisPbfFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -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.js +9 -9
- package/lib/esm/Feature/DefaultMarkerIcon.js.map +1 -1
- package/lib/esm/Feature/FeatureCanvasRenderer.js.map +1 -1
- package/lib/esm/Feature/FeatureInfoReader.js.map +1 -1
- package/lib/esm/Feature/FeatureSymbology.js.map +1 -1
- package/lib/esm/Feature/RandomMapColor.js.map +1 -1
- package/lib/esm/GeoJSON/GeoJSONGeometry.js.map +1 -1
- package/lib/esm/GeoJSON/GeoJSONGeometryReader.js.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMaps.d.ts +8 -125
- package/lib/esm/GoogleMaps/GoogleMaps.d.ts.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMaps.js +10 -3
- package/lib/esm/GoogleMaps/GoogleMaps.js.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.d.ts +8 -0
- package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.d.ts.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.js +10 -1
- package/lib/esm/GoogleMaps/GoogleMapsImageryFormat.js.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.d.ts +10 -7
- package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.d.ts.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.js +65 -68
- package/lib/esm/GoogleMaps/GoogleMapsImageryProvider.js.map +1 -1
- package/lib/esm/GoogleMaps/GoogleMapsSession.d.ts +152 -0
- package/lib/esm/GoogleMaps/GoogleMapsSession.d.ts.map +1 -0
- package/lib/esm/GoogleMaps/GoogleMapsSession.js +28 -0
- package/lib/esm/GoogleMaps/GoogleMapsSession.js.map +1 -0
- package/lib/esm/Icons/MapInfoIcon.js.map +1 -1
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesFormat.js.map +1 -1
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesProvider.js.map +1 -1
- package/lib/esm/OgcApiFeatures/OgcApiFeaturesReader.js.map +1 -1
- package/lib/esm/Tools/GeometryTerrainDraper.js.map +1 -1
- package/lib/esm/Tools/MapFeatureInfoDecorator.js.map +1 -1
- package/lib/esm/Tools/MapFeatureInfoTool.js.map +1 -1
- package/lib/esm/internal/GoogleMapsUtils.d.ts +9 -16
- package/lib/esm/internal/GoogleMapsUtils.d.ts.map +1 -1
- package/lib/esm/internal/GoogleMapsUtils.js +36 -40
- package/lib/esm/internal/GoogleMapsUtils.js.map +1 -1
- package/lib/esm/internal/NativeGoogleMapsSession.d.ts +29 -0
- package/lib/esm/internal/NativeGoogleMapsSession.d.ts.map +1 -0
- package/lib/esm/internal/NativeGoogleMapsSession.js +78 -0
- package/lib/esm/internal/NativeGoogleMapsSession.js.map +1 -0
- package/lib/esm/map-layers-formats.d.ts +2 -0
- package/lib/esm/map-layers-formats.d.ts.map +1 -1
- package/lib/esm/map-layers-formats.js +2 -0
- package/lib/esm/map-layers-formats.js.map +1 -1
- package/lib/esm/mapLayersFormats.d.ts +10 -0
- package/lib/esm/mapLayersFormats.d.ts.map +1 -1
- package/lib/esm/mapLayersFormats.js +5 -0
- package/lib/esm/mapLayersFormats.js.map +1 -1
- package/lib/public/locales/en/mapLayersFormats.json +18 -18
- package/package.json +17 -15
- package/lib/cjs/GoogleMaps/GoogleMapDecorator.d.ts +0 -36
- package/lib/cjs/GoogleMaps/GoogleMapDecorator.d.ts.map +0 -1
- package/lib/cjs/GoogleMaps/GoogleMapDecorator.js +0 -87
- package/lib/cjs/GoogleMaps/GoogleMapDecorator.js.map +0 -1
- package/lib/esm/GoogleMaps/GoogleMapDecorator.d.ts +0 -36
- package/lib/esm/GoogleMaps/GoogleMapDecorator.d.ts.map +0 -1
- package/lib/esm/GoogleMaps/GoogleMapDecorator.js +0 -82
- package/lib/esm/GoogleMaps/GoogleMapDecorator.js.map +0 -1
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import { ImageMapLayerProps, MapLayerProviderProperties } from "@itwin/core-common";
|
|
2
|
-
import { GoogleMapsCreateSessionOptions
|
|
1
|
+
import { ImageMapLayerProps, ImageMapLayerSettings, MapLayerProviderProperties } from "@itwin/core-common";
|
|
2
|
+
import { GoogleMapsCreateSessionOptions } from "../map-layers-formats.js";
|
|
3
3
|
/** @internal */
|
|
4
4
|
export declare const GoogleMapsUtils: {
|
|
5
|
-
/**
|
|
6
|
-
* Creates a Google Maps session.
|
|
7
|
-
* @param apiKey Google Cloud API key
|
|
8
|
-
* @param opts Options to create the session
|
|
9
|
-
* @internal
|
|
10
|
-
*/
|
|
11
|
-
createSession: (apiKey: string, opts: GoogleMapsCreateSessionOptions) => Promise<GoogleMapsSession>;
|
|
12
5
|
/**
|
|
13
6
|
* Register the google maps format if it is not already registered.
|
|
14
7
|
* @internal
|
|
@@ -22,17 +15,17 @@ export declare const GoogleMapsUtils: {
|
|
|
22
15
|
*/
|
|
23
16
|
createMapLayerProps: (name?: string, opts?: GoogleMapsCreateSessionOptions) => ImageMapLayerProps;
|
|
24
17
|
/**
|
|
25
|
-
* Retrieves the maximum zoom level available within a bounding rectangle.
|
|
26
|
-
* @param rectangle The bounding rectangle
|
|
27
|
-
* @returns The maximum zoom level available within the bounding rectangle.
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
getViewportInfo: (params: ViewportInfoRequestParams) => Promise<ViewportInfo | undefined>;
|
|
31
|
-
/**
|
|
32
18
|
* Converts the session options to provider properties
|
|
33
19
|
* @param opts Options to create the session
|
|
34
20
|
* @internal
|
|
35
21
|
*/
|
|
36
22
|
createPropertiesFromSessionOptions: (opts: GoogleMapsCreateSessionOptions) => MapLayerProviderProperties;
|
|
23
|
+
/**
|
|
24
|
+
* Read the session options from the map layer settings.
|
|
25
|
+
* @param settings Map layer settings
|
|
26
|
+
* ```
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
getSessionOptionsFromMapLayer: (settings: ImageMapLayerSettings) => GoogleMapsCreateSessionOptions;
|
|
37
30
|
};
|
|
38
31
|
//# sourceMappingURL=GoogleMapsUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleMapsUtils.d.ts","sourceRoot":"","sources":["../../../src/internal/GoogleMapsUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GoogleMapsUtils.d.ts","sourceRoot":"","sources":["../../../src/internal/GoogleMapsUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAG3G,OAAO,EAAE,8BAA8B,EAAoE,MAAM,0BAA0B,CAAC;AAK5I,gBAAgB;AAEhB,eAAO,MAAM,eAAe;IAE1B;;;MAGE;;IAOF;;;;;IAKA;iCAC4B,MAAM,SAAwB,8BAA8B,KAAG,kBAAkB;IAW3G;;;;IAIA;+CACyC,8BAA8B,KAAG,0BAA0B;IA0BtG;;;;;MAKE;8CACwC,qBAAqB,KAAG,8BAA8B;CAkCjG,CAAA"}
|
|
@@ -5,30 +5,13 @@
|
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.GoogleMapsUtils = void 0;
|
|
8
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
9
8
|
const core_frontend_1 = require("@itwin/core-frontend");
|
|
10
|
-
const core_geometry_1 = require("@itwin/core-geometry");
|
|
11
9
|
const GoogleMapsImageryFormat_js_1 = require("../GoogleMaps/GoogleMapsImageryFormat.js");
|
|
10
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
11
|
const loggerCategory = "MapLayersFormats.GoogleMaps";
|
|
13
12
|
/** @internal */
|
|
14
13
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
15
14
|
exports.GoogleMapsUtils = {
|
|
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
|
-
createSession: async (apiKey, opts) => {
|
|
23
|
-
const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;
|
|
24
|
-
const request = new Request(url, { method: "POST", body: JSON.stringify(opts) });
|
|
25
|
-
const response = await fetch(request);
|
|
26
|
-
if (!response.ok) {
|
|
27
|
-
throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);
|
|
28
|
-
}
|
|
29
|
-
core_bentley_1.Logger.logInfo(loggerCategory, `Session created successfully`);
|
|
30
|
-
return response.json();
|
|
31
|
-
},
|
|
32
15
|
/**
|
|
33
16
|
* Register the google maps format if it is not already registered.
|
|
34
17
|
* @internal
|
|
@@ -54,28 +37,6 @@ exports.GoogleMapsUtils = {
|
|
|
54
37
|
};
|
|
55
38
|
},
|
|
56
39
|
/**
|
|
57
|
-
* Retrieves the maximum zoom level available within a bounding rectangle.
|
|
58
|
-
* @param rectangle The bounding rectangle
|
|
59
|
-
* @returns The maximum zoom level available within the bounding rectangle.
|
|
60
|
-
* @internal
|
|
61
|
-
*/
|
|
62
|
-
getViewportInfo: async (params) => {
|
|
63
|
-
const { rectangle, session, key, zoom } = params;
|
|
64
|
-
const north = core_geometry_1.Angle.radiansToDegrees(rectangle.north);
|
|
65
|
-
const south = core_geometry_1.Angle.radiansToDegrees(rectangle.south);
|
|
66
|
-
const east = core_geometry_1.Angle.radiansToDegrees(rectangle.east);
|
|
67
|
-
const west = core_geometry_1.Angle.radiansToDegrees(rectangle.west);
|
|
68
|
-
const url = `https://tile.googleapis.com/tile/v1/viewport?session=${session}&key=${key}&zoom=${zoom}&north=${north}&south=${south}&east=${east}&west=${west}`;
|
|
69
|
-
const request = new Request(url, { method: "GET" });
|
|
70
|
-
const response = await fetch(request);
|
|
71
|
-
if (!response.ok) {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
const json = await response.json();
|
|
75
|
-
return json;
|
|
76
|
-
;
|
|
77
|
-
},
|
|
78
|
-
/**
|
|
79
40
|
* Converts the session options to provider properties
|
|
80
41
|
* @param opts Options to create the session
|
|
81
42
|
* @internal
|
|
@@ -100,5 +61,40 @@ exports.GoogleMapsUtils = {
|
|
|
100
61
|
}
|
|
101
62
|
return properties;
|
|
102
63
|
},
|
|
64
|
+
/**
|
|
65
|
+
* Read the session options from the map layer settings.
|
|
66
|
+
* @param settings Map layer settings
|
|
67
|
+
* ```
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
getSessionOptionsFromMapLayer: (settings) => {
|
|
71
|
+
const layerPropertyKeys = settings.properties ? Object.keys(settings.properties) : undefined;
|
|
72
|
+
if (layerPropertyKeys === undefined ||
|
|
73
|
+
!layerPropertyKeys.includes("mapType") ||
|
|
74
|
+
!layerPropertyKeys.includes("language") ||
|
|
75
|
+
!layerPropertyKeys.includes("region")) {
|
|
76
|
+
const msg = "Missing session options";
|
|
77
|
+
core_bentley_1.Logger.logError(loggerCategory, msg);
|
|
78
|
+
throw new core_bentley_1.BentleyError(core_bentley_1.BentleyStatus.ERROR, msg);
|
|
79
|
+
}
|
|
80
|
+
const createSessionOptions = {
|
|
81
|
+
mapType: settings.properties.mapType,
|
|
82
|
+
region: settings.properties.region,
|
|
83
|
+
language: settings.properties.language,
|
|
84
|
+
};
|
|
85
|
+
if (Array.isArray(settings.properties?.layerTypes) && settings.properties.layerTypes.length > 0) {
|
|
86
|
+
createSessionOptions.layerTypes = settings.properties.layerTypes;
|
|
87
|
+
}
|
|
88
|
+
if (settings.properties?.scale !== undefined) {
|
|
89
|
+
createSessionOptions.scale = settings.properties.scale;
|
|
90
|
+
}
|
|
91
|
+
if (settings.properties?.overlay !== undefined) {
|
|
92
|
+
createSessionOptions.overlay = settings.properties.overlay;
|
|
93
|
+
}
|
|
94
|
+
if (settings.properties?.apiOptions !== undefined) {
|
|
95
|
+
createSessionOptions.apiOptions = settings.properties.apiOptions;
|
|
96
|
+
}
|
|
97
|
+
return createSessionOptions;
|
|
98
|
+
}
|
|
103
99
|
};
|
|
104
100
|
//# sourceMappingURL=GoogleMapsUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleMapsUtils.js","sourceRoot":"","sources":["../../../src/internal/GoogleMapsUtils.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;
|
|
1
|
+
{"version":3,"file":"GoogleMapsUtils.js","sourceRoot":"","sources":["../../../src/internal/GoogleMapsUtils.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 { ImageMapLayerProps, ImageMapLayerSettings, MapLayerProviderProperties } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { GoogleMapsMapLayerFormat } from \"../GoogleMaps/GoogleMapsImageryFormat.js\";\r\nimport { GoogleMapsCreateSessionOptions, GoogleMapsLayerTypes, GoogleMapsMapTypes, GoogleMapsScaleFactors } from \"../map-layers-formats.js\";\r\nimport { BentleyError, BentleyStatus, Logger } from \"@itwin/core-bentley\";\r\n\r\nconst loggerCategory = \"MapLayersFormats.GoogleMaps\";\r\n\r\n/** @internal */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const GoogleMapsUtils = {\r\n\r\n /**\r\n * Register the google maps format if it is not already registered.\r\n * @internal\r\n */\r\n checkFormatRegistered: () => {\r\n if (!IModelApp.mapLayerFormatRegistry.isRegistered(GoogleMapsMapLayerFormat.formatId)) {\r\n throw new Error(`GoogleMaps format is not registered`);\r\n }\r\n },\r\n\r\n /**\r\n * Creates a Google Maps layer props.\r\n * @param name Name of the layer (Defaults to \"GoogleMaps\")\r\n * @param opts Options to create the session (Defaults to satellite map type, English language, US region, and roadmap layer type)\r\n * @internal\r\n*/\r\n createMapLayerProps: (name: string = \"GoogleMaps\", opts?: GoogleMapsCreateSessionOptions): ImageMapLayerProps => {\r\n GoogleMapsUtils.checkFormatRegistered();\r\n\r\n return {\r\n formatId: GoogleMapsMapLayerFormat.formatId,\r\n url: \"\",\r\n name,\r\n properties: GoogleMapsUtils.createPropertiesFromSessionOptions(opts ?? {mapType: \"satellite\", language: \"en-US\", region: \"US:\", layerTypes: [\"layerRoadmap\"]}),\r\n };\r\n },\r\n\r\n /**\r\n * Converts the session options to provider properties\r\n * @param opts Options to create the session\r\n * @internal\r\n */\r\n createPropertiesFromSessionOptions: (opts: GoogleMapsCreateSessionOptions): MapLayerProviderProperties => {\r\n const properties: MapLayerProviderProperties = {\r\n mapType: opts.mapType,\r\n language: opts.language,\r\n region: opts.region,\r\n }\r\n\r\n if (opts.layerTypes !== undefined) {\r\n properties.layerTypes = [...opts.layerTypes];\r\n }\r\n\r\n if (opts.scale !== undefined) {\r\n properties.scale = opts.scale;\r\n }\r\n\r\n if (opts.overlay !== undefined) {\r\n properties.overlay = opts.overlay;\r\n }\r\n\r\n if (opts.apiOptions !== undefined) {\r\n properties.apiOptions = [...opts.apiOptions];\r\n }\r\n\r\n return properties;\r\n },\r\n\r\n /**\r\n * Read the session options from the map layer settings.\r\n * @param settings Map layer settings\r\n * ```\r\n * @internal\r\n */\r\n getSessionOptionsFromMapLayer: (settings: ImageMapLayerSettings): GoogleMapsCreateSessionOptions => {\r\n const layerPropertyKeys = settings.properties ? Object.keys(settings.properties) : undefined;\r\n if (layerPropertyKeys === undefined ||\r\n !layerPropertyKeys.includes(\"mapType\") ||\r\n !layerPropertyKeys.includes(\"language\") ||\r\n !layerPropertyKeys.includes(\"region\")) {\r\n const msg = \"Missing session options\";\r\n Logger.logError(loggerCategory, msg);\r\n throw new BentleyError(BentleyStatus.ERROR, msg);\r\n }\r\n\r\n const createSessionOptions: GoogleMapsCreateSessionOptions = {\r\n mapType: settings.properties!.mapType as GoogleMapsMapTypes,\r\n region: settings.properties!.region as string,\r\n language: settings.properties!.language as string,\r\n }\r\n\r\n if (Array.isArray(settings.properties?.layerTypes) && settings.properties.layerTypes.length > 0) {\r\n createSessionOptions.layerTypes = settings.properties.layerTypes as GoogleMapsLayerTypes[];\r\n }\r\n\r\n if (settings.properties?.scale !== undefined) {\r\n createSessionOptions.scale = settings.properties.scale as GoogleMapsScaleFactors;\r\n }\r\n\r\n if (settings.properties?.overlay !== undefined) {\r\n createSessionOptions.overlay = settings.properties.overlay as boolean;\r\n }\r\n\r\n if (settings.properties?.apiOptions !== undefined) {\r\n createSessionOptions.apiOptions = settings.properties.apiOptions as string[];\r\n }\r\n return createSessionOptions;\r\n }\r\n}\r\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,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module MapLayersFormats
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.NativeGoogleMapsSessionManager = exports.NativeGoogleMapsSession = void 0;
|
|
11
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
+
const GoogleMapsSession_js_1 = require("../GoogleMaps/GoogleMapsSession.js");
|
|
13
|
+
const loggerCategory = "MapLayersFormats.GoogleMaps";
|
|
14
|
+
/*
|
|
15
|
+
* Google Maps session
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
class NativeGoogleMapsSession extends GoogleMapsSession_js_1.BaseGoogleMapsSession {
|
|
19
|
+
static getTileApiBaseUrl = "https://tile.googleapis.com/v1/2dtiles";
|
|
20
|
+
static viewportApiBaseUrl = `https://tile.googleapis.com/tile/v1/viewport`;
|
|
21
|
+
json;
|
|
22
|
+
apiKey;
|
|
23
|
+
constructor(json, apiKey) {
|
|
24
|
+
super();
|
|
25
|
+
this.json = json;
|
|
26
|
+
this.apiKey = apiKey;
|
|
27
|
+
}
|
|
28
|
+
getTileApiBaseUrl() {
|
|
29
|
+
return NativeGoogleMapsSession.getTileApiBaseUrl;
|
|
30
|
+
}
|
|
31
|
+
getTileSize() {
|
|
32
|
+
return this.json.tileWidth;
|
|
33
|
+
}
|
|
34
|
+
getTileRequest(position) {
|
|
35
|
+
const url = this.getTilePositionUrl(position);
|
|
36
|
+
url.searchParams.append("key", this.apiKey);
|
|
37
|
+
url.searchParams.append("session", this.json.session);
|
|
38
|
+
return { url };
|
|
39
|
+
}
|
|
40
|
+
getViewportInfoRequest(rectangle, zoomLevel) {
|
|
41
|
+
const degrees = rectangle.toDegrees();
|
|
42
|
+
const url = new URL(`${this.getTileApiBaseUrl()}\
|
|
43
|
+
zoom=${zoomLevel}\
|
|
44
|
+
&north=${degrees.north}&south=${degrees.south}&east=${degrees.east}&west=${degrees.west}`);
|
|
45
|
+
url.searchParams.append("key", this.apiKey);
|
|
46
|
+
url.searchParams.append("session", this.json.session);
|
|
47
|
+
return { url };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Creates a Google Maps session.
|
|
51
|
+
* @param apiKey Google Cloud API key
|
|
52
|
+
* @param opts Options to create the session
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
static async create(apiKey, opts) {
|
|
56
|
+
const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;
|
|
57
|
+
const request = new Request(url, { method: "POST", body: JSON.stringify(opts) });
|
|
58
|
+
const response = await fetch(request);
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);
|
|
61
|
+
}
|
|
62
|
+
core_bentley_1.Logger.logInfo(loggerCategory, `Session created successfully`);
|
|
63
|
+
return response.json();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.NativeGoogleMapsSession = NativeGoogleMapsSession;
|
|
67
|
+
/*
|
|
68
|
+
* Google Maps session manager that uses standard API key to create a session.
|
|
69
|
+
* @beta
|
|
70
|
+
*/
|
|
71
|
+
class NativeGoogleMapsSessionManager extends GoogleMapsSession_js_1.GoogleMapsSessionManager {
|
|
72
|
+
apiKey;
|
|
73
|
+
constructor(apiKey) {
|
|
74
|
+
super();
|
|
75
|
+
this.apiKey = apiKey;
|
|
76
|
+
}
|
|
77
|
+
async createSession(sessionOptions) {
|
|
78
|
+
const json = await NativeGoogleMapsSession.create(this.apiKey, sessionOptions);
|
|
79
|
+
return new NativeGoogleMapsSession(json, this.apiKey);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.NativeGoogleMapsSessionManager = NativeGoogleMapsSessionManager;
|
|
83
|
+
//# 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":["/*---------------------------------------------------------------------------------------------\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/** @packageDocumentation\r\n * @module MapLayersFormats\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { MapCartoRectangle, QuadIdProps } from \"@itwin/core-frontend\";\r\nimport { BaseGoogleMapsSession, GoogleMapsCreateSessionOptions, GoogleMapsRequest, GoogleMapsSession, GoogleMapsSessionData, GoogleMapsSessionManager } from \"../GoogleMaps/GoogleMapsSession.js\";\r\n\r\n\r\nconst loggerCategory = \"MapLayersFormats.GoogleMaps\";\r\n\r\n/*\r\n* Google Maps session\r\n* @internal\r\n*/\r\nexport class NativeGoogleMapsSession extends BaseGoogleMapsSession {\r\n public static getTileApiBaseUrl = \"https://tile.googleapis.com/v1/2dtiles\";\r\n public static viewportApiBaseUrl = `https://tile.googleapis.com/tile/v1/viewport`\r\n public readonly json: GoogleMapsSessionData;\r\n public readonly apiKey: string;\r\n\r\n public constructor(json: GoogleMapsSessionData, apiKey: string) {\r\n super();\r\n this.json = json;\r\n this.apiKey = apiKey;\r\n }\r\n\r\n protected getTileApiBaseUrl() {\r\n return NativeGoogleMapsSession.getTileApiBaseUrl;\r\n }\r\n\r\n public getTileSize(): number {\r\n return this.json.tileWidth;\r\n }\r\n\r\n public getTileRequest(position: QuadIdProps): GoogleMapsRequest {\r\n const url = this.getTilePositionUrl(position);\r\n url.searchParams.append(\"key\", this.apiKey);\r\n url.searchParams.append(\"session\", this.json.session);\r\n return {url};\r\n }\r\n\r\n public getViewportInfoRequest (rectangle: MapCartoRectangle, zoomLevel: number): GoogleMapsRequest {\r\n const degrees = rectangle.toDegrees();\r\n const url = new URL(\r\n `${this.getTileApiBaseUrl()}\\\r\n zoom=${zoomLevel}\\\r\n &north=${degrees.north}&south=${degrees.south}&east=${degrees.east}&west=${degrees.west}`\r\n );\r\n url.searchParams.append(\"key\", this.apiKey);\r\n url.searchParams.append(\"session\", this.json.session);\r\n return {url};\r\n }\r\n\r\n /**\r\n * Creates a Google Maps session.\r\n * @param apiKey Google Cloud API key\r\n * @param opts Options to create the session\r\n * @internal\r\n */\r\n public static async create (apiKey: string, opts: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSessionData> {\r\n const url = `https://tile.googleapis.com/v1/createSession?key=${apiKey}`;\r\n const request = new Request(url, {method: \"POST\", body: JSON.stringify(opts)});\r\n const response = await fetch (request);\r\n if (!response.ok) {\r\n throw new Error(`CreateSession request failed: ${response.status} - ${response.statusText}`);\r\n }\r\n Logger.logInfo(loggerCategory, `Session created successfully`);\r\n return response.json();\r\n }\r\n}\r\n\r\n/*\r\n* Google Maps session manager that uses standard API key to create a session.\r\n* @beta\r\n*/\r\nexport class NativeGoogleMapsSessionManager extends GoogleMapsSessionManager {\r\n public readonly apiKey: string;\r\n\r\n constructor(apiKey: string) {\r\n super();\r\n this.apiKey = apiKey;\r\n }\r\n\r\n public async createSession(sessionOptions: GoogleMapsCreateSessionOptions): Promise<GoogleMapsSession> {\r\n const json = await NativeGoogleMapsSession.create(this.apiKey, sessionOptions);\r\n return new NativeGoogleMapsSession(json, this.apiKey);\r\n }\r\n\r\n}\r\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"}
|
|
@@ -20,6 +20,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
__exportStar(require("./ArcGisFeature/ArcGisFeatureProvider.js"), exports);
|
|
22
22
|
__exportStar(require("./GoogleMaps/GoogleMaps.js"), exports);
|
|
23
|
+
__exportStar(require("./GoogleMaps/GoogleMapsSession.js"), exports);
|
|
24
|
+
__exportStar(require("./GoogleMaps/GoogleMapsImageryFormat.js"), exports);
|
|
23
25
|
__exportStar(require("./mapLayersFormats.js"), exports);
|
|
24
26
|
__exportStar(require("./Tools/MapFeatureInfoTool.js"), exports);
|
|
25
27
|
/** @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,2EAAyD;AACzD,6DAA2C;AAC3C,wDAAsC;AACtC,gEAA8C;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,2EAAyD;AACzD,6DAA2C;AAC3C,oEAAkD;AAClD,0EAAuD;AACvD,wDAAsC;AACtC,gEAA8C;AAE9C;;GAEG;AAEH;;GAEG","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\nexport * from \"./ArcGisFeature/ArcGisFeatureProvider.js\";\r\nexport * from \"./GoogleMaps/GoogleMaps.js\";\r\nexport * from \"./GoogleMaps/GoogleMapsSession.js\";\r\nexport * from \"./GoogleMaps/GoogleMapsImageryFormat.js\"\r\nexport * from \"./mapLayersFormats.js\";\r\nexport * from \"./Tools/MapFeatureInfoTool.js\";\r\n\r\n/** @docs-package-description\r\n * This package provides support for additional map layer formats that are not included in the @itwin/core-frontend package.\r\n */\r\n\r\n/** @docs-group-description MapLayersFormats\r\n * APIs for working with the map layer formats provided by this package.\r\n */\r\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;
|
|
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"}
|
|
@@ -20,6 +20,7 @@ const MapFeatureInfoTool_js_1 = require("./Tools/MapFeatureInfoTool.js");
|
|
|
20
20
|
class MapLayersFormats {
|
|
21
21
|
static _defaultNs = "mapLayersFormats";
|
|
22
22
|
static localization;
|
|
23
|
+
static _googleMapsOpts;
|
|
23
24
|
/** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).
|
|
24
25
|
* Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).
|
|
25
26
|
* This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).
|
|
@@ -35,11 +36,15 @@ class MapLayersFormats {
|
|
|
35
36
|
MapLayersFormats.localization = config?.localization ?? core_frontend_1.IModelApp.localization;
|
|
36
37
|
await MapLayersFormats.localization.registerNamespace(MapLayersFormats.localizationNamespace);
|
|
37
38
|
MapFeatureInfoTool_js_1.MapFeatureInfoTool.register(MapLayersFormats.localizationNamespace);
|
|
39
|
+
MapLayersFormats._googleMapsOpts = config?.googleMapsOpts;
|
|
38
40
|
}
|
|
39
41
|
/** The internationalization service namespace. */
|
|
40
42
|
static get localizationNamespace() {
|
|
41
43
|
return MapLayersFormats._defaultNs;
|
|
42
44
|
}
|
|
45
|
+
static get googleMapsOpts() {
|
|
46
|
+
return MapLayersFormats._googleMapsOpts;
|
|
47
|
+
}
|
|
43
48
|
}
|
|
44
49
|
exports.MapLayersFormats = MapLayersFormats;
|
|
45
50
|
//# 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,sDAA6C;AAE7C,wDAAiD;AACjD,mFAAqF;AACrF,wFAAmF;AACnF,sFAAwF;AACxF,yEAAmE;
|
|
1
|
+
{"version":3,"file":"mapLayersFormats.js","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,sDAA6C;AAE7C,wDAAiD;AACjD,mFAAqF;AACrF,wFAAmF;AACnF,sFAAwF;AACxF,yEAAmE;AAkBnE;;GAEG;AACH,MAAa,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,IAAA,qBAAM,EAAC,yBAAS,CAAC,WAAW,EAAE,kGAAkG,CAAC,CAAC;QAClI,IAAI,yBAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,yBAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,oDAA2B,CAAC,CAAC;YACvE,yBAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,sDAA4B,CAAC,CAAC;YACxE,yBAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,qDAAwB,CAAC,CAAC;QACtE,CAAC;QAED,mEAAmE;QACnE,gBAAgB,CAAC,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,yBAAS,CAAC,YAAY,CAAC;QAC/E,MAAM,gBAAgB,CAAC,YAAY,CAAC,iBAAiB,CACnD,gBAAgB,CAAC,qBAAqB,CACvC,CAAC;QAEF,0CAAkB,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;;AApCH,4CAsCC","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\n/** @packageDocumentation\r\n * @module MapLayersFormats\r\n */\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { ArcGisFeatureMapLayerFormat } from \"./ArcGisFeature/ArcGisFeatureFormat.js\";\r\nimport { GoogleMapsMapLayerFormat } from \"./GoogleMaps/GoogleMapsImageryFormat.js\";\r\nimport { OgcApiFeaturesMapLayerFormat } from \"./OgcApiFeatures/OgcApiFeaturesFormat.js\";\r\nimport { MapFeatureInfoTool } from \"./Tools/MapFeatureInfoTool.js\";\r\nimport { GoogleMapsSessionManager } from \"./map-layers-formats.js\";\r\n\r\n/** Configuration options.\r\n * @beta\r\n */\r\nexport interface MapLayersFormatsConfig {\r\n localization?: Localization;\r\n googleMapsOpts?: GoogleMapsOptions;\r\n}\r\n\r\n/** Google Maps options.\r\n * @beta\r\n */\r\nexport interface GoogleMapsOptions {\r\n sessionManager?: GoogleMapsSessionManager\r\n}\r\n\r\n/** The primary API for the `@itwin/map-layers-formats` package. It allows the package's features to be [[initialize]]d.\r\n * @beta\r\n */\r\nexport class MapLayersFormats {\r\n\r\n private static _defaultNs = \"mapLayersFormats\";\r\n public static localization: Localization;\r\n\r\n private static _googleMapsOpts?: GoogleMapsOptions;\r\n\r\n /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).\r\n * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).\r\n * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).\r\n */\r\n public static async initialize(config?: MapLayersFormatsConfig): Promise<void> {\r\n assert(IModelApp.initialized, \"MapLayersFormats.initialize must be called after IModelApp.startup and before IModelApp.shutdown\");\r\n if (IModelApp.initialized) {\r\n IModelApp.mapLayerFormatRegistry.register(ArcGisFeatureMapLayerFormat);\r\n IModelApp.mapLayerFormatRegistry.register(OgcApiFeaturesMapLayerFormat);\r\n IModelApp.mapLayerFormatRegistry.register(GoogleMapsMapLayerFormat);\r\n }\r\n\r\n // register namespace containing localized strings for this package\r\n MapLayersFormats.localization = config?.localization ?? IModelApp.localization;\r\n await MapLayersFormats.localization.registerNamespace(\r\n MapLayersFormats.localizationNamespace,\r\n );\r\n\r\n MapFeatureInfoTool.register(MapLayersFormats.localizationNamespace);\r\n MapLayersFormats._googleMapsOpts = config?.googleMapsOpts;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return MapLayersFormats._defaultNs;\r\n }\r\n\r\n public static get googleMapsOpts() {\r\n return MapLayersFormats._googleMapsOpts;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureFormat.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureFormat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAA2B,cAAc,EAAE,oBAAoB,EAAgD,MAAM,sBAAsB,CAAC;AAC3L,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,gBAAgB;AAChB,MAAM,OAAO,2BAA4B,SAAQ,qBAAqB;IAC7D,MAAM,CAAU,QAAQ,GAAG,eAAe,CAAC;IAC3C,MAAM,CAAU,qBAAqB,CAAC,QAA+B,IAAyC,OAAO,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3J,MAAM,CAAU,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,QAAiB,EAAE,QAAiB,EAAE,WAAqB;QAClH,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACxE,IAAI,aAAa,KAAK,oBAAoB,CAAC,KAAK;YAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM;YACT,OAAO,EAAC,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE3B,OAAO,eAAe,CAAC,cAAc,CAAC,EAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAC,CAAC,CAAC;IAC9F,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,QAAQ,CAAC,IAAwB;QAE5D,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACpF,IAAI,aAAa,KAAK,oBAAoB,CAAC,KAAK;YAC9C,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,CAAC;QAEjC,gHAAgH;QAChH,OAAO,eAAe,CAAC,cAAc,CAAC,EAAC,GAAG,IAAI,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;IAClF,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*--------------------------------------------------------------------------------------------*/\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { ArcGisUtilities, ImageryMapLayerFormat, MapLayerImageryProvider, MapLayerSource, MapLayerSourceStatus, MapLayerSourceValidation, ValidateSourceArgs } from \"@itwin/core-frontend\";\nimport { ArcGisFeatureProvider } from \"./ArcGisFeatureProvider.js\";\n\n/** @internal */\nexport class ArcGisFeatureMapLayerFormat extends ImageryMapLayerFormat {\n public static override formatId = \"ArcGISFeature\";\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined { return new ArcGisFeatureProvider(settings); }\n public static override async validateSource(url: string, userName?: string, password?: string, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\n const urlValidation = ArcGisUtilities.validateUrl(url, \"FeatureServer\");\n if (urlValidation !== MapLayerSourceStatus.Valid)\n return { status: urlValidation };\n\n const source = MapLayerSource.fromJSON({name: \"\", url, formatId: this.formatId});\n if (!source)\n return {status: MapLayerSourceStatus.InvalidFormat};\n source.userName = userName;\n source.password = password;\n\n return ArcGisUtilities.validateSource({source, capabilitiesFilter: [\"query\"], ignoreCache});\n }\n\n public static override async validate(args: ValidateSourceArgs): Promise<MapLayerSourceValidation> {\n\n const urlValidation = ArcGisUtilities.validateUrl(args.source.url, \"FeatureServer\");\n if (urlValidation !== MapLayerSourceStatus.Valid)\n return {status: urlValidation};\n\n // Some Map service supporting only tiles don't include the 'Map' capabilities, thus we can't make it mandatory.\n return ArcGisUtilities.validateSource({...args, capabilitiesFilter: [\"query\"]});\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisFeatureFormat.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureFormat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAA2B,cAAc,EAAE,oBAAoB,EAAgD,MAAM,sBAAsB,CAAC;AAC3L,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,gBAAgB;AAChB,MAAM,OAAO,2BAA4B,SAAQ,qBAAqB;IAC7D,MAAM,CAAU,QAAQ,GAAG,eAAe,CAAC;IAC3C,MAAM,CAAU,qBAAqB,CAAC,QAA+B,IAAyC,OAAO,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3J,MAAM,CAAU,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,QAAiB,EAAE,QAAiB,EAAE,WAAqB;QAClH,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACxE,IAAI,aAAa,KAAK,oBAAoB,CAAC,KAAK;YAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM;YACT,OAAO,EAAC,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE3B,OAAO,eAAe,CAAC,cAAc,CAAC,EAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAC,CAAC,CAAC;IAC9F,CAAC;IAEM,MAAM,CAAU,KAAK,CAAC,QAAQ,CAAC,IAAwB;QAE5D,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACpF,IAAI,aAAa,KAAK,oBAAoB,CAAC,KAAK;YAC9C,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,CAAC;QAEjC,gHAAgH;QAChH,OAAO,eAAe,CAAC,cAAc,CAAC,EAAC,GAAG,IAAI,EAAE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;IAClF,CAAC","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 { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { ArcGisUtilities, ImageryMapLayerFormat, MapLayerImageryProvider, MapLayerSource, MapLayerSourceStatus, MapLayerSourceValidation, ValidateSourceArgs } from \"@itwin/core-frontend\";\r\nimport { ArcGisFeatureProvider } from \"./ArcGisFeatureProvider.js\";\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"ArcGISFeature\";\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined { return new ArcGisFeatureProvider(settings); }\r\n public static override async validateSource(url: string, userName?: string, password?: string, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n const urlValidation = ArcGisUtilities.validateUrl(url, \"FeatureServer\");\r\n if (urlValidation !== MapLayerSourceStatus.Valid)\r\n return { status: urlValidation };\r\n\r\n const source = MapLayerSource.fromJSON({name: \"\", url, formatId: this.formatId});\r\n if (!source)\r\n return {status: MapLayerSourceStatus.InvalidFormat};\r\n source.userName = userName;\r\n source.password = password;\r\n\r\n return ArcGisUtilities.validateSource({source, capabilitiesFilter: [\"query\"], ignoreCache});\r\n }\r\n\r\n public static override async validate(args: ValidateSourceArgs): Promise<MapLayerSourceValidation> {\r\n\r\n const urlValidation = ArcGisUtilities.validateUrl(args.source.url, \"FeatureServer\");\r\n if (urlValidation !== MapLayerSourceStatus.Valid)\r\n return {status: urlValidation};\r\n\r\n // Some Map service supporting only tiles don't include the 'Map' capabilities, thus we can't make it mandatory.\r\n return ArcGisUtilities.validateSource({...args, capabilitiesFilter: [\"query\"]});\r\n }\r\n}\r\n"]}
|