@nextgis/ngw-map 1.13.7 → 1.15.0
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/lib/index.d.ts +1 -6
- package/lib/ngw-map.cjs.js +30 -18
- package/lib/ngw-map.cjs.js.map +1 -1
- package/lib/ngw-map.cjs.prod.js +1 -1
- package/lib/ngw-map.cjs.prod.js.map +1 -1
- package/lib/ngw-map.esm-browser.js +163 -155
- package/lib/ngw-map.esm-browser.js.map +1 -1
- package/lib/ngw-map.esm-browser.prod.js +1 -15
- package/lib/ngw-map.esm-browser.prod.js.map +1 -1
- package/lib/ngw-map.esm-bundler.js +30 -18
- package/lib/ngw-map.esm-bundler.js.map +1 -1
- package/lib/ngw-map.esm-bundler.prod.js +1 -15
- package/lib/ngw-map.esm-bundler.prod.js.map +1 -1
- package/lib/ngw-map.global.js +163 -155
- package/lib/ngw-map.global.js.map +1 -1
- package/lib/ngw-map.global.prod.js +1 -15
- package/lib/ngw-map.global.prod.js.map +1 -1
- package/package.json +9 -9
package/lib/index.d.ts
CHANGED
|
@@ -166,6 +166,7 @@ export declare class NgwMap<M = unknown, L = unknown, C = unknown, O extends Ngw
|
|
|
166
166
|
private _selectFromNgwVector;
|
|
167
167
|
private _selectFromNgwRaster;
|
|
168
168
|
private _prepareToIdentify;
|
|
169
|
+
private _getSelectListenersCount;
|
|
169
170
|
private _whiteLabel;
|
|
170
171
|
}
|
|
171
172
|
|
|
@@ -269,9 +270,3 @@ declare type PromiseGroup = 'select' | 'identify';
|
|
|
269
270
|
export * from "@nextgis/webmap";
|
|
270
271
|
|
|
271
272
|
export { }
|
|
272
|
-
|
|
273
|
-
import { GeoJsonObject } from 'geojson';
|
|
274
|
-
|
|
275
|
-
export function detectCrs(geojson: GeoJsonObject, projs: any): any;
|
|
276
|
-
export function reproject(geojson: GeoJsonObject, from: any, to: any, projs: any): GeoJsonObject;
|
|
277
|
-
export function reverse(geojson: GeoJsonObject): GeoJsonObject;
|
package/lib/ngw-map.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Bundle of @nextgis/ngw-map; version: 1.
|
|
1
|
+
/** Bundle of @nextgis/ngw-map; version: 1.15.0; author: NextGIS */
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -17,7 +17,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
17
17
|
var CancelablePromise__default = /*#__PURE__*/_interopDefaultLegacy(CancelablePromise);
|
|
18
18
|
var NgwConnector__default = /*#__PURE__*/_interopDefaultLegacy(NgwConnector);
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
/******************************************************************************
|
|
21
21
|
Copyright (c) Microsoft Corporation.
|
|
22
22
|
|
|
23
23
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -512,13 +512,14 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
512
512
|
var _this = this;
|
|
513
513
|
if (!this.$$selectFromNgwRaster) {
|
|
514
514
|
this.$$selectFromNgwRaster = function (ev) {
|
|
515
|
-
var count = _this.
|
|
515
|
+
var count = _this._getSelectListenersCount();
|
|
516
516
|
if (count) {
|
|
517
517
|
_this._selectFromNgwRaster(ev);
|
|
518
518
|
}
|
|
519
519
|
};
|
|
520
520
|
this.$$selectFromNgwVector = function (ev) {
|
|
521
|
-
|
|
521
|
+
var count = _this._getSelectListenersCount();
|
|
522
|
+
if (count) {
|
|
522
523
|
_this._selectFromNgwVector(ev);
|
|
523
524
|
}
|
|
524
525
|
};
|
|
@@ -529,8 +530,10 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
529
530
|
NgwMap.prototype.disableSelection = function () {
|
|
530
531
|
if (this.$$selectFromNgwRaster) {
|
|
531
532
|
this.emitter.removeListener('click', this.$$selectFromNgwRaster);
|
|
532
|
-
this.emitter.removeListener('click', this._selectFromNgwVector);
|
|
533
533
|
this.$$selectFromNgwRaster = undefined;
|
|
534
|
+
}
|
|
535
|
+
if (this.$$selectFromNgwVector) {
|
|
536
|
+
this.emitter.removeListener('layer:click', this.$$selectFromNgwVector);
|
|
534
537
|
this.$$selectFromNgwVector = undefined;
|
|
535
538
|
}
|
|
536
539
|
};
|
|
@@ -686,7 +689,11 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
686
689
|
NgwMap.prototype._selectFromNgwVector = function (ev) {
|
|
687
690
|
var _a;
|
|
688
691
|
var layer = ev.layer;
|
|
689
|
-
|
|
692
|
+
var selectable = layer.options.selectable && this.isLayerVisible(layer);
|
|
693
|
+
if (!selectable) {
|
|
694
|
+
return undefined;
|
|
695
|
+
}
|
|
696
|
+
// Item property means layer is NgwResource
|
|
690
697
|
var id = layer.item && layer.item.resource.id;
|
|
691
698
|
var feature = ev.feature;
|
|
692
699
|
if (id !== undefined && feature) {
|
|
@@ -716,10 +723,10 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
716
723
|
};
|
|
717
724
|
NgwMap.prototype._selectFromNgwRaster = function (ev) {
|
|
718
725
|
return __awaiter(this, void 0, void 0, function () {
|
|
719
|
-
var promises, layers, getIdsPromise, getIds, ids, pixelRadius, center, zoom, radius, selectPromise;
|
|
726
|
+
var promises, layers, _i, layers_1, l, layer, identFunc, getIdsPromise, getIds, ids, _a, getIds_1, x, pixelRadius, center, zoom, radius, selectPromise;
|
|
720
727
|
var _this = this;
|
|
721
|
-
return __generator(this, function (
|
|
722
|
-
switch (
|
|
728
|
+
return __generator(this, function (_b) {
|
|
729
|
+
switch (_b.label) {
|
|
723
730
|
case 0:
|
|
724
731
|
this._emitStatusEvent('ngw:preselect');
|
|
725
732
|
promises = [];
|
|
@@ -730,25 +737,27 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
730
737
|
}
|
|
731
738
|
return 1;
|
|
732
739
|
});
|
|
733
|
-
layers.
|
|
734
|
-
|
|
735
|
-
|
|
740
|
+
for (_i = 0, layers_1 = layers; _i < layers_1.length; _i++) {
|
|
741
|
+
l = layers_1[_i];
|
|
742
|
+
layer = l.layer;
|
|
743
|
+
identFunc = typeof layer.getIdentificationIds === 'function'
|
|
736
744
|
? layer.getIdentificationIds
|
|
737
745
|
: false;
|
|
738
|
-
if (identFunc && layer.options.selectable &&
|
|
746
|
+
if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {
|
|
739
747
|
promises.push(identFunc.call(layer));
|
|
740
748
|
}
|
|
741
|
-
}
|
|
749
|
+
}
|
|
742
750
|
getIdsPromise = Promise.all(promises);
|
|
743
751
|
return [4 /*yield*/, getIdsPromise];
|
|
744
752
|
case 1:
|
|
745
|
-
getIds =
|
|
753
|
+
getIds = _b.sent();
|
|
746
754
|
ids = [];
|
|
747
|
-
getIds.
|
|
755
|
+
for (_a = 0, getIds_1 = getIds; _a < getIds_1.length; _a++) {
|
|
756
|
+
x = getIds_1[_a];
|
|
748
757
|
if (x) {
|
|
749
|
-
|
|
758
|
+
ids.push.apply(ids, x);
|
|
750
759
|
}
|
|
751
|
-
}
|
|
760
|
+
}
|
|
752
761
|
if (!ids.length) {
|
|
753
762
|
this._emitStatusEvent('ngw:select', null);
|
|
754
763
|
return [2 /*return*/];
|
|
@@ -788,6 +797,9 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
788
797
|
};
|
|
789
798
|
return __assign(__assign({}, identify), { getIdentifyItems: getIdentifyItems_ });
|
|
790
799
|
};
|
|
800
|
+
NgwMap.prototype._getSelectListenersCount = function () {
|
|
801
|
+
return this.emitter.listenerCount('ngw:select');
|
|
802
|
+
};
|
|
791
803
|
NgwMap.prototype._whiteLabel = function () {
|
|
792
804
|
return __awaiter(this, void 0, void 0, function () {
|
|
793
805
|
var container, logo;
|
package/lib/ngw-map.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngw-map.cjs.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/utils/getIentifyRadius.ts","../src/NgwMap.ts","../src/index.ts"],"sourcesContent":["import type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type { NgwResourceDefinition } from '../interfaces';\n\nexport function appendNgwResources(\n options: NgwLayerOptions[],\n resource?: NgwResourceDefinition,\n defOptions?: Partial<NgwLayerOptions>,\n overwriteOptions?: Partial<NgwLayerOptions>,\n): void {\n if (typeof resource === 'number' || typeof resource === 'string') {\n resource = Number(resource);\n options.push({\n ...defOptions,\n resource,\n });\n } else if (Array.isArray(resource)) {\n const [resourceId, id] = resource;\n options.push({\n ...defOptions,\n resource: resourceId,\n id,\n ...overwriteOptions,\n });\n } else if (typeof resource === 'object') {\n options.push({ ...defOptions, ...resource, ...overwriteOptions });\n }\n}\n","import { deepmerge } from '@nextgis/utils';\nimport { StarterKit, MapOptions } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\nimport { QmsKit } from '@nextgis/qms-kit';\nimport { NgwKit } from '@nextgis/ngw-kit';\n\nimport { NgwMapOptions } from '../interfaces';\n\nexport const OPTIONS: NgwMapOptions = {\n target: 'map',\n baseUrl: '',\n whitlabel: false,\n controls: ['ZOOM', 'ATTRIBUTION'],\n controlsOptions: {\n ZOOM: { position: 'top-left' },\n ATTRIBUTION: {\n position: 'bottom-right',\n customAttribution: [\n '<a href=\"https://nextgis.com\" target=\"_blank\">©NextGIS</a>',\n ],\n },\n },\n pixelRadius: 10,\n};\n\nexport function prepareWebMapOptions(options: NgwMapOptions): MapOptions {\n const kits: StarterKit[] = [new QmsKit()];\n if (options.starterKits) {\n options.starterKits.forEach((x) => {\n kits.push(x);\n });\n }\n\n if (!options.connector) {\n options.connector = new NgwConnector({\n baseUrl: options.baseUrl || '',\n auth: options.auth,\n });\n } else if (options.connector) {\n options.baseUrl = options.connector.options.baseUrl;\n }\n options = deepmerge(OPTIONS, options);\n\n if (!options.center && !options.bounds) {\n options.bounds = [-179, -90, 180, 90];\n // options.maxBounds = options.bounds;\n }\n\n if (options.connector) {\n kits.push(\n new NgwKit({\n connector: options.connector,\n auth: options.auth,\n }),\n );\n }\n options = {\n ...options,\n starterKits: kits,\n create: false,\n };\n return options;\n}\n","import { LngLatArray } from '@nextgis/utils';\n\nexport function getIdentifyRadius(\n center: LngLatArray,\n zoom: number,\n pixelRadius: number,\n): number {\n pixelRadius = pixelRadius ?? 10;\n const metresPerPixel =\n (40075016.686 * Math.abs(Math.cos((center[1] * 180) / Math.PI))) /\n Math.pow(2, zoom + 8);\n const radius = pixelRadius * metresPerPixel * 0.0005;\n return radius;\n}\n","import StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport CancelablePromise from '@nextgis/cancelable-promise';\nimport { defined, isObject } from '@nextgis/utils';\nimport { AdapterOptions, WebMap } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\n\nimport {\n fetchNgwLayerFeatureCollection,\n fetchNgwResourceExtent,\n createNgwLayerAdapter,\n fetchNgwLayerFeature,\n fetchIdentifyGeoJson,\n sendIdentifyRequest,\n createIdentifyItem,\n fetchNgwLayerItems,\n fetchIdentifyItem,\n fetchNgwLayerItem,\n getIdentifyItems,\n getCompanyLogo,\n} from '@nextgis/ngw-kit';\nimport { deprecatedWarn } from '@nextgis/utils';\nimport { getIcon } from '@nextgis/icons';\n\nimport { appendNgwResources } from './utils/appendNgwResources';\nimport { prepareWebMapOptions } from './utils/prepareWebMapOptions';\n\nimport type { JsonMap, FeatureProperties } from '@nextgis/utils';\nimport type {\n FeatureItem,\n LayerFeature,\n ResourceItem,\n FeatureLayersIdentify,\n FeatureLayersIdentifyItems,\n} from '@nextgis/ngw-connector';\nimport type {\n OnLayerMouseOptions,\n ControlPosition,\n MapClickEvent,\n LayerAdapter,\n WebMapEvents,\n MapControls,\n FitOptions,\n LayerDef,\n} from '@nextgis/webmap';\nimport type {\n NgwIdentify,\n NgwWebmapItem,\n ResourceAdapter,\n FetchNgwItemsOptions,\n NgwFeatureItemResponse,\n NgwFeatureRequestOptions,\n} from '@nextgis/ngw-kit';\nimport type { Geometry, Feature, FeatureCollection } from 'geojson';\nimport type { QmsAdapterOptions } from '@nextgis/qms-kit';\nimport type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type {\n NgwIdentifyEvent,\n NgwMapOptions,\n NgwMapEvents,\n NgwLayers,\n} from './interfaces';\nimport type { FetchNgwItemOptions } from '@nextgis/ngw-kit';\nimport { getIdentifyRadius } from './utils/getIentifyRadius';\n\ntype PromiseGroup = 'select' | 'identify';\n\n/**\n * Base class containing the logic of interaction WebMap with NextGIS services.\n *\n * @example\n * ```javascript\n * import { NgwMap } from '@nextgis/ngw-map';\n * import MapAdapter from '@nextgis/leaflet-map-adapter';\n * // styles are not included in the leaflet-map-adapter\n * import 'leaflet/dist/leaflet.css';\n *\n * const ngwMap = new NgwMap({\n * mapAdapter: new MapAdapter(),\n * target: 'map',\n * qmsId: 448,\n * baseUrl: 'https://demo.nextgis.com',\n * webmapId: 3985\n * });\n * ```\n */\nexport class NgwMap<\n M = unknown,\n L = unknown,\n C = unknown,\n O extends NgwMapOptions<M, C> = NgwMapOptions<M, C>,\n> extends WebMap<M, L, C, NgwMapEvents, O> {\n static getIcon = getIcon;\n\n readonly emitter: StrictEventEmitter<EventEmitter, NgwMapEvents> =\n new EventEmitter();\n connector!: NgwConnector;\n\n protected _ngwLayers: NgwLayers = {};\n private $$selectFromNgwRaster?: (ev: MapClickEvent) => void;\n private $$selectFromNgwVector?: (ev: OnLayerMouseOptions) => void;\n private _promises: Record<PromiseGroup, CancelablePromise[]> = {\n select: [],\n identify: [],\n };\n\n constructor(options: O) {\n super(prepareWebMapOptions(options) as O);\n if (options.connector) {\n this.connector = options.connector;\n }\n this._createWebMap().then(() => {\n const container = this.getContainer();\n if (container) {\n container.classList.add('ngw-map-container');\n }\n if (this.options.whitlabel) {\n this._whiteLabel();\n }\n });\n }\n\n /**\n * Organized addition to the map design and controls elements,\n * calling `control.onAdd(this.webMap.mapAdapter)`\n * @param control - object with onAdd and onRemove methods\n * or a string value indicating the name of the control installed in the map adapter\n * @param position - position relative to the map angles\n * @param options - initialization parameters if the control is set as a string value\n *\n * @example\n * ```javascript\n * ngwMap.addControl(new CustomControl(), 'bottom-left');\n * ngwMap.addControl('ZOOM', 'top-right')\n * ```\n */\n async addControl<K extends keyof MapControls>(\n controlDef: K | C,\n position: ControlPosition,\n options?: MapControls[K],\n ): Promise<any> {\n await this.onLoad('controls:create');\n return super.addControl(controlDef, position, options);\n }\n\n /**\n * Add any (style, vector, webmap) NGW layer by resource definition.\n * @param options - set layer identification parameters and render method.\n *\n * @example\n * ```javascript\n * // Add raster layer resourceId is the style of 4004 layer\n * ngwMap.addNgwLayer({ resource: 4005 });\n * // Add vector data from layer GEOJSON source\n * ngwMap.addNgwLayer({\n * resource: 4038,\n * adapter: 'GEOJSON',\n * adapterOptions: { paint: { color: 'red' } }\n * });\n * ```\n */\n async addNgwLayer(\n options: NgwLayerOptions,\n ): Promise<ResourceAdapter | undefined> {\n await this.onMapLoad();\n // @ts-ignore for backward compatibility\n const { keyname, resourceId } = options;\n\n if (keyname || resourceId !== undefined) {\n deprecatedWarn(\n 'set `resource` options instead of `keyname` or `resourceId`',\n );\n }\n\n const resource = options.resource;\n if (!keyname && !resourceId && !resource) {\n throw new Error(\n 'resource, resourceId or keyname is required parameter to add NGW layer',\n );\n }\n if (defined(this.options.baseUrl)) {\n try {\n if (defined(this.options.setViewDelay)) {\n options.adapterOptions = options.adapterOptions || {};\n if (!defined(options.adapterOptions.setViewDelay)) {\n options.adapterOptions.setViewDelay = this.options.setViewDelay;\n }\n }\n const adapter = createNgwLayerAdapter(options, this, this.connector);\n const adapterOpts = {\n visibility: true,\n // TODO: do not merge options, use only `adapterOptions`\n ...options,\n ...options.adapterOptions,\n } as AdapterOptions;\n const layer = (await this.addLayer(\n adapter,\n adapterOpts,\n )) as ResourceAdapter<M, L, AdapterOptions>;\n const id = layer && this.getLayerId(layer);\n if (layer && id) {\n this._ngwLayers[id] = { layer, resourceId: layer.resourceId };\n layer.options.name =\n layer.options.name ||\n (layer.item && layer.item.resource.display_name);\n if (layer.options.baselayer) {\n const visibleLayerBaseLayer = this.getActiveBaseLayer();\n if (visibleLayerBaseLayer) {\n return layer;\n }\n }\n }\n return layer;\n } catch (er) {\n const resId =\n isObject(resource) && 'id' in resource\n ? resource.id\n : keyname || resourceId || resource;\n console.error(`Can't add NGW layer ${resId}.`, er);\n }\n }\n }\n\n /**\n * Pans and zooms the map to the initial position specified in the options\n */\n fit(): void {\n const { center, zoom, bounds } = this.options;\n if (center) {\n this.setCenter(center);\n if (zoom) {\n this.setZoom(zoom);\n }\n } else if (bounds) {\n this.fitBounds(bounds);\n }\n }\n\n fetchNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return fetchNgwLayerItem<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return fetchNgwLayerItems<G, F>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return fetchNgwLayerFeature<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemsOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return fetchNgwLayerFeatureCollection({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchIdentifyItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n identify: NgwIdentify,\n requestOptions?: NgwFeatureRequestOptions,\n // multiple = false\n ): CancelablePromise<NgwFeatureItemResponse<P, G> | undefined> {\n const promise = fetchIdentifyItem<G, P>({\n identify,\n connector: this.connector,\n requestOptions,\n // multiple,\n });\n\n this._addPromise('identify', promise);\n return promise;\n }\n\n fetchIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n const promise = fetchIdentifyGeoJson({\n identify,\n connector: this.connector,\n multiple,\n });\n if (promise && 'then' in promise) {\n this._addPromise('identify', promise);\n return promise;\n } else {\n return CancelablePromise.resolve(promise);\n }\n }\n\n /**\n * @deprecated use {@link fetchIdentifyGeoJson} instead\n */\n getIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n return this.fetchIdentifyGeoJson(identify, multiple);\n }\n\n async getNgwLayers(): Promise<NgwLayers> {\n await this.onLoad();\n return this._ngwLayers;\n }\n\n async getNgwLayerByResourceId(id: number): Promise<LayerAdapter | undefined> {\n for (const n in this._ngwLayers) {\n const mem = this._ngwLayers[n];\n if (mem.resourceId === id) {\n return mem && mem.layer;\n } else if (mem.layer.getIdentificationIds) {\n const ids = await mem.layer.getIdentificationIds();\n if (ids && ids.some((x) => x === id)) {\n return mem.layer;\n }\n }\n if (mem.layer.getDependLayers) {\n const dependLayers = mem.layer.getDependLayers() as NgwWebmapItem[];\n const dependFit = dependLayers.find((x) => {\n return x.item && x.item.parentId === id;\n });\n if (dependFit) {\n return dependFit.layer;\n }\n }\n }\n }\n\n /**\n * Move map to layer. If the layer is NGW resource, extent will be received from the server\n *\n * @example\n * ```javascript\n * const ngwLayer = ngwMap.addNgwLayer({ id: 'ngw_layer_name', resource: 4005 });\n * ngwMap.fitLayer(ngwLayer);\n * ngwMap.fitLayer('ngw_layer_name');\n * ```\n */\n async fitLayer(layerDef: LayerDef, options?: FitOptions): Promise<void> {\n let id: string | undefined;\n if (typeof layerDef === 'string' || typeof layerDef === 'number') {\n id = String(id);\n } else {\n id = layerDef.id;\n }\n const ngwLayer = id && this._ngwLayers[id];\n if (ngwLayer) {\n if (ngwLayer.layer.getBounds) {\n const bounds = await ngwLayer.layer.getBounds();\n if (bounds) {\n this.fitBounds(bounds, options);\n }\n } else {\n let item: ResourceItem | undefined;\n if (ngwLayer.layer.item) {\n item = ngwLayer.layer.item;\n } else {\n const resourceId = ngwLayer.resourceId;\n item = await this.connector.getResource(resourceId);\n }\n if (item) {\n fetchNgwResourceExtent(item, this.connector).then((extent) => {\n if (extent) {\n this.fitBounds(extent, options);\n }\n });\n }\n }\n } else {\n super.fitLayer(layerDef, options);\n }\n }\n\n /** @deprecated use {@link NgwMap.fitLayer} instead */\n async zoomToLayer(layerDef: string | ResourceAdapter): Promise<void> {\n return this.fitLayer(layerDef);\n }\n\n onLoad(event: keyof NgwMapEvents = 'ngw-map:create'): Promise<this> {\n return super.onLoad(event as keyof WebMapEvents);\n }\n\n removeLayer(layerDef: LayerDef): void {\n const layer = this.getLayer(layerDef);\n if (layer) {\n const layerId = this.getLayerId(layer);\n if (layerId) {\n delete this._ngwLayers[layerId];\n }\n super.removeLayer(layer);\n }\n }\n\n enableSelection(): void {\n if (!this.$$selectFromNgwRaster) {\n this.$$selectFromNgwRaster = (ev: MapClickEvent) => {\n const count = this.emitter.listenerCount('ngw:select');\n if (count) {\n this._selectFromNgwRaster(ev);\n }\n };\n this.$$selectFromNgwVector = (ev: OnLayerMouseOptions) => {\n if (this.emitter.listenerCount('ngw:select')) {\n this._selectFromNgwVector(ev);\n }\n };\n this.emitter.on('click', this.$$selectFromNgwRaster);\n this.emitter.on('layer:click', this.$$selectFromNgwVector);\n }\n }\n\n disableSelection(): void {\n if (this.$$selectFromNgwRaster) {\n this.emitter.removeListener('click', this.$$selectFromNgwRaster);\n this.emitter.removeListener('click', this._selectFromNgwVector);\n this.$$selectFromNgwRaster = undefined;\n this.$$selectFromNgwVector = undefined;\n }\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItem} instead\n */\n getNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return this.fetchNgwLayerItem<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItems} instead\n */\n getNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return this.fetchNgwLayerItems<F, G>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeature} instead\n */\n getNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return this.fetchNgwLayerFeature<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeatures} instead\n */\n getNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends JsonMap = JsonMap,\n >(\n options: FetchNgwItemsOptions<P>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return this.fetchNgwLayerFeatures(options);\n }\n\n /** @deprecated use {@link NgwMap.cancelPromises} instead */\n cancelPromise(...args: PromiseGroup[]): void {\n this.cancelPromises(...args);\n }\n\n cancelPromises(...args: PromiseGroup[]): void {\n if (!args.length) {\n args = Object.keys(this._promises) as PromiseGroup[];\n }\n args.forEach((name) => {\n const group = this._promises[name];\n if (group) {\n group.forEach((x) => x.cancel());\n this._promises[name] = [];\n }\n });\n }\n\n private _addPromise(groupName: PromiseGroup, promise: CancelablePromise) {\n const group = this._promises[groupName];\n if (group && group.indexOf(promise) === -1) {\n const removeFromGroup = () => {\n const index = group.indexOf(promise);\n if (index !== -1) {\n group.splice(index, 1);\n }\n };\n promise.then(removeFromGroup);\n promise.catch(removeFromGroup);\n group.push(promise);\n }\n }\n\n private _isFitFromResource() {\n const params = this._initMapState;\n if (params.zoom && params.center) {\n return false;\n }\n return true;\n }\n\n private async _createWebMap() {\n await this.create();\n if (this.options.qmsId) {\n this._addQmsBaseLayer();\n }\n if (this.options.osm) {\n this._addOsmBaseLayer();\n }\n\n const resources: NgwLayerOptions[] = [];\n const layerFitAllowed = this._isFitFromResource();\n if (this.options.webmapId) {\n appendNgwResources(resources, this.options.webmapId, {\n fit: layerFitAllowed,\n });\n }\n if (this.options.resources && Array.isArray(this.options.resources)) {\n for (const x of this.options.resources) {\n const overwriteOptions: Partial<NgwLayerOptions> = {};\n if (!layerFitAllowed) {\n overwriteOptions.fit = false;\n }\n appendNgwResources(resources, x, {}, overwriteOptions);\n }\n }\n for (const r of resources) {\n try {\n await this.addNgwLayer(r);\n } catch (er) {\n console.warn(er);\n }\n }\n this._emitStatusEvent('ngw-map:create', this);\n this.enableSelection();\n }\n\n private _addOsmBaseLayer() {\n this.addBaseLayer('OSM');\n }\n\n private _addQmsBaseLayer() {\n let qmsId: number;\n let qmsLayerName: string | undefined;\n if (Array.isArray(this.options.qmsId)) {\n qmsId = this.options.qmsId[0];\n qmsLayerName = this.options.qmsId[1];\n } else {\n qmsId = Number(this.options.qmsId);\n }\n const qmsLayerOptions: Partial<QmsAdapterOptions> = {\n qmsId,\n };\n if (qmsLayerName) {\n qmsLayerOptions.id = qmsLayerName;\n }\n\n this.addBaseLayer('QMS', qmsLayerOptions);\n }\n\n private _selectFromNgwVector(\n ev: OnLayerMouseOptions,\n ): FeatureLayersIdentify | undefined {\n const layer: ResourceAdapter = ev.layer as ResourceAdapter;\n // item property means layer is NgwResource\n const id = layer.item && layer.item.resource.id;\n const feature = ev.feature;\n\n if (id !== undefined && feature) {\n const featureId = feature.id;\n if (featureId) {\n const identifyFeature: LayerFeature = {\n id: Number(featureId),\n fields: feature.properties || {},\n label: `#${id}`,\n layerId: Number(id),\n parent: '',\n geom: feature.geometry,\n };\n const items: FeatureLayersIdentifyItems = {\n featureCount: 1,\n features: [identifyFeature],\n };\n const identify: FeatureLayersIdentify = {\n featureCount: 1,\n [id]: items,\n };\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...identify,\n resources: [id],\n sourceType: 'vector',\n } as NgwIdentify),\n );\n return identify;\n }\n }\n }\n\n private async _selectFromNgwRaster(ev: MapClickEvent) {\n this._emitStatusEvent('ngw:preselect');\n\n const promises: Promise<number[] | undefined>[] = [];\n const layers = Object.values(this._ngwLayers);\n layers.sort((a, b) => {\n if (a.layer.order && b.layer.order) {\n return b.layer.order - a.layer.order;\n }\n return 1;\n });\n layers.forEach((l) => {\n const layer = l.layer;\n const identFunc =\n typeof layer.getIdentificationIds === 'function'\n ? layer.getIdentificationIds\n : false;\n if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {\n promises.push(identFunc.call(layer));\n }\n });\n const getIdsPromise = Promise.all(promises);\n const getIds = await getIdsPromise;\n const ids: number[] = [];\n getIds.forEach((x) => {\n if (x) {\n x.forEach((y) => ids.push(y));\n }\n });\n\n if (!ids.length) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n\n const pixelRadius = this.options.pixelRadius || 10;\n const center = this.getCenter();\n let zoom = this.getZoom();\n zoom = zoom !== undefined ? zoom : 20;\n if (!center || !zoom) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n const radius = getIdentifyRadius(center, zoom, pixelRadius);\n\n const selectPromise = sendIdentifyRequest(ev, {\n layers: ids,\n connector: this.connector,\n radius,\n }).then((resp) => {\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...resp,\n resources: ids,\n sourceType: 'raster',\n event: ev,\n }),\n );\n return resp;\n });\n this._addPromise('select', selectPromise);\n return selectPromise;\n }\n\n private _prepareToIdentify<\n F = FeatureProperties,\n G extends Geometry = Geometry,\n >(identify: NgwIdentify): NgwIdentifyEvent {\n const getIdentifyItems_ = () => {\n return getIdentifyItems(identify, true).map((x) => {\n return createIdentifyItem<F, G>({\n feature: x.feature,\n connector: this.connector,\n });\n });\n };\n return {\n ...identify,\n getIdentifyItems: getIdentifyItems_,\n };\n }\n\n private async _whiteLabel() {\n const container = this.getContainer();\n if (container) {\n const logo = await getCompanyLogo(\n this.connector,\n this.options.companyLogoOptions,\n );\n if (logo) {\n container.appendChild(logo);\n }\n }\n }\n}\n","/**\n * @module ngw-map\n */\n\nimport { NgwMap } from './NgwMap';\nimport type { NgwMapOptions } from './interfaces';\n\nexport * from '@nextgis/webmap';\n\nexport * from './interfaces';\n\nexport { NgwMap };\n\nexport async function createNgwMap(options: NgwMapOptions): Promise<NgwMap> {\n const ngwMap = new NgwMap(options);\n return ngwMap.onLoad();\n}\n"],"names":["QmsKit","NgwConnector","deepmerge","NgwKit","EventEmitter","deprecatedWarn","defined","createNgwLayerAdapter","isObject","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatureCollection","fetchIdentifyItem","fetchIdentifyGeoJson","CancelablePromise","fetchNgwResourceExtent","sendIdentifyRequest","getIdentifyItems","createIdentifyItem","getCompanyLogo","getIcon","WebMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngw-map.cjs.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/utils/getIentifyRadius.ts","../src/NgwMap.ts","../src/index.ts"],"sourcesContent":["import type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type { NgwResourceDefinition } from '../interfaces';\n\nexport function appendNgwResources(\n options: NgwLayerOptions[],\n resource?: NgwResourceDefinition,\n defOptions?: Partial<NgwLayerOptions>,\n overwriteOptions?: Partial<NgwLayerOptions>,\n): void {\n if (typeof resource === 'number' || typeof resource === 'string') {\n resource = Number(resource);\n options.push({\n ...defOptions,\n resource,\n });\n } else if (Array.isArray(resource)) {\n const [resourceId, id] = resource;\n options.push({\n ...defOptions,\n resource: resourceId,\n id,\n ...overwriteOptions,\n });\n } else if (typeof resource === 'object') {\n options.push({ ...defOptions, ...resource, ...overwriteOptions });\n }\n}\n","import { deepmerge } from '@nextgis/utils';\nimport { StarterKit, MapOptions } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\nimport { QmsKit } from '@nextgis/qms-kit';\nimport { NgwKit } from '@nextgis/ngw-kit';\n\nimport { NgwMapOptions } from '../interfaces';\n\nexport const OPTIONS: NgwMapOptions = {\n target: 'map',\n baseUrl: '',\n whitlabel: false,\n controls: ['ZOOM', 'ATTRIBUTION'],\n controlsOptions: {\n ZOOM: { position: 'top-left' },\n ATTRIBUTION: {\n position: 'bottom-right',\n customAttribution: [\n '<a href=\"https://nextgis.com\" target=\"_blank\">©NextGIS</a>',\n ],\n },\n },\n pixelRadius: 10,\n};\n\nexport function prepareWebMapOptions(options: NgwMapOptions): MapOptions {\n const kits: StarterKit[] = [new QmsKit()];\n if (options.starterKits) {\n options.starterKits.forEach((x) => {\n kits.push(x);\n });\n }\n\n if (!options.connector) {\n options.connector = new NgwConnector({\n baseUrl: options.baseUrl || '',\n auth: options.auth,\n });\n } else if (options.connector) {\n options.baseUrl = options.connector.options.baseUrl;\n }\n options = deepmerge(OPTIONS, options);\n\n if (!options.center && !options.bounds) {\n options.bounds = [-179, -90, 180, 90];\n // options.maxBounds = options.bounds;\n }\n\n if (options.connector) {\n kits.push(\n new NgwKit({\n connector: options.connector,\n auth: options.auth,\n }),\n );\n }\n options = {\n ...options,\n starterKits: kits,\n create: false,\n };\n return options;\n}\n","import { LngLatArray } from '@nextgis/utils';\n\nexport function getIdentifyRadius(\n center: LngLatArray,\n zoom: number,\n pixelRadius: number,\n): number {\n pixelRadius = pixelRadius ?? 10;\n const metresPerPixel =\n (40075016.686 * Math.abs(Math.cos((center[1] * 180) / Math.PI))) /\n Math.pow(2, zoom + 8);\n const radius = pixelRadius * metresPerPixel * 0.0005;\n return radius;\n}\n","import StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport CancelablePromise from '@nextgis/cancelable-promise';\nimport { defined, isObject } from '@nextgis/utils';\nimport { AdapterOptions, WebMap } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\n\nimport {\n fetchNgwLayerFeatureCollection,\n fetchNgwResourceExtent,\n createNgwLayerAdapter,\n fetchNgwLayerFeature,\n fetchIdentifyGeoJson,\n sendIdentifyRequest,\n createIdentifyItem,\n fetchNgwLayerItems,\n fetchIdentifyItem,\n fetchNgwLayerItem,\n getIdentifyItems,\n getCompanyLogo,\n} from '@nextgis/ngw-kit';\nimport { deprecatedWarn } from '@nextgis/utils';\nimport { getIcon } from '@nextgis/icons';\n\nimport { appendNgwResources } from './utils/appendNgwResources';\nimport { prepareWebMapOptions } from './utils/prepareWebMapOptions';\n\nimport type { JsonMap, FeatureProperties } from '@nextgis/utils';\nimport type {\n FeatureItem,\n LayerFeature,\n ResourceItem,\n FeatureLayersIdentify,\n FeatureLayersIdentifyItems,\n} from '@nextgis/ngw-connector';\nimport type {\n OnLayerMouseOptions,\n ControlPosition,\n MapClickEvent,\n LayerAdapter,\n WebMapEvents,\n MapControls,\n FitOptions,\n LayerDef,\n} from '@nextgis/webmap';\nimport type {\n NgwIdentify,\n NgwWebmapItem,\n ResourceAdapter,\n FetchNgwItemsOptions,\n NgwFeatureItemResponse,\n NgwFeatureRequestOptions,\n} from '@nextgis/ngw-kit';\nimport type { Geometry, Feature, FeatureCollection } from 'geojson';\nimport type { QmsAdapterOptions } from '@nextgis/qms-kit';\nimport type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type {\n NgwIdentifyEvent,\n NgwMapOptions,\n NgwMapEvents,\n NgwLayers,\n} from './interfaces';\nimport type { FetchNgwItemOptions } from '@nextgis/ngw-kit';\nimport { getIdentifyRadius } from './utils/getIentifyRadius';\n\ntype PromiseGroup = 'select' | 'identify';\n\n/**\n * Base class containing the logic of interaction WebMap with NextGIS services.\n *\n * @example\n * ```javascript\n * import { NgwMap } from '@nextgis/ngw-map';\n * import MapAdapter from '@nextgis/leaflet-map-adapter';\n * // styles are not included in the leaflet-map-adapter\n * import 'leaflet/dist/leaflet.css';\n *\n * const ngwMap = new NgwMap({\n * mapAdapter: new MapAdapter(),\n * target: 'map',\n * qmsId: 448,\n * baseUrl: 'https://demo.nextgis.com',\n * webmapId: 3985\n * });\n * ```\n */\nexport class NgwMap<\n M = unknown,\n L = unknown,\n C = unknown,\n O extends NgwMapOptions<M, C> = NgwMapOptions<M, C>,\n> extends WebMap<M, L, C, NgwMapEvents, O> {\n static getIcon = getIcon;\n\n readonly emitter: StrictEventEmitter<EventEmitter, NgwMapEvents> =\n new EventEmitter();\n connector!: NgwConnector;\n\n protected _ngwLayers: NgwLayers = {};\n private $$selectFromNgwRaster?: (ev: MapClickEvent) => void;\n private $$selectFromNgwVector?: (ev: OnLayerMouseOptions) => void;\n private _promises: Record<PromiseGroup, CancelablePromise[]> = {\n select: [],\n identify: [],\n };\n\n constructor(options: O) {\n super(prepareWebMapOptions(options) as O);\n if (options.connector) {\n this.connector = options.connector;\n }\n this._createWebMap().then(() => {\n const container = this.getContainer();\n if (container) {\n container.classList.add('ngw-map-container');\n }\n if (this.options.whitlabel) {\n this._whiteLabel();\n }\n });\n }\n\n /**\n * Organized addition to the map design and controls elements,\n * calling `control.onAdd(this.webMap.mapAdapter)`\n * @param control - object with onAdd and onRemove methods\n * or a string value indicating the name of the control installed in the map adapter\n * @param position - position relative to the map angles\n * @param options - initialization parameters if the control is set as a string value\n *\n * @example\n * ```javascript\n * ngwMap.addControl(new CustomControl(), 'bottom-left');\n * ngwMap.addControl('ZOOM', 'top-right')\n * ```\n */\n async addControl<K extends keyof MapControls>(\n controlDef: K | C,\n position: ControlPosition,\n options?: MapControls[K],\n ): Promise<any> {\n await this.onLoad('controls:create');\n return super.addControl(controlDef, position, options);\n }\n\n /**\n * Add any (style, vector, webmap) NGW layer by resource definition.\n * @param options - set layer identification parameters and render method.\n *\n * @example\n * ```javascript\n * // Add raster layer resourceId is the style of 4004 layer\n * ngwMap.addNgwLayer({ resource: 4005 });\n * // Add vector data from layer GEOJSON source\n * ngwMap.addNgwLayer({\n * resource: 4038,\n * adapter: 'GEOJSON',\n * adapterOptions: { paint: { color: 'red' } }\n * });\n * ```\n */\n async addNgwLayer(\n options: NgwLayerOptions,\n ): Promise<ResourceAdapter | undefined> {\n await this.onMapLoad();\n // @ts-ignore for backward compatibility\n const { keyname, resourceId } = options;\n\n if (keyname || resourceId !== undefined) {\n deprecatedWarn(\n 'set `resource` options instead of `keyname` or `resourceId`',\n );\n }\n\n const resource = options.resource;\n if (!keyname && !resourceId && !resource) {\n throw new Error(\n 'resource, resourceId or keyname is required parameter to add NGW layer',\n );\n }\n if (defined(this.options.baseUrl)) {\n try {\n if (defined(this.options.setViewDelay)) {\n options.adapterOptions = options.adapterOptions || {};\n if (!defined(options.adapterOptions.setViewDelay)) {\n options.adapterOptions.setViewDelay = this.options.setViewDelay;\n }\n }\n const adapter = createNgwLayerAdapter(options, this, this.connector);\n const adapterOpts = {\n visibility: true,\n // TODO: do not merge options, use only `adapterOptions`\n ...options,\n ...options.adapterOptions,\n } as AdapterOptions;\n const layer = (await this.addLayer(\n adapter,\n adapterOpts,\n )) as ResourceAdapter<M, L, AdapterOptions>;\n const id = layer && this.getLayerId(layer);\n if (layer && id) {\n this._ngwLayers[id] = { layer, resourceId: layer.resourceId };\n layer.options.name =\n layer.options.name ||\n (layer.item && layer.item.resource.display_name);\n if (layer.options.baselayer) {\n const visibleLayerBaseLayer = this.getActiveBaseLayer();\n if (visibleLayerBaseLayer) {\n return layer;\n }\n }\n }\n return layer;\n } catch (er) {\n const resId =\n isObject(resource) && 'id' in resource\n ? resource.id\n : keyname || resourceId || resource;\n console.error(`Can't add NGW layer ${resId}.`, er);\n }\n }\n }\n\n /**\n * Pans and zooms the map to the initial position specified in the options\n */\n fit(): void {\n const { center, zoom, bounds } = this.options;\n if (center) {\n this.setCenter(center);\n if (zoom) {\n this.setZoom(zoom);\n }\n } else if (bounds) {\n this.fitBounds(bounds);\n }\n }\n\n fetchNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return fetchNgwLayerItem<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return fetchNgwLayerItems<G, F>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return fetchNgwLayerFeature<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemsOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return fetchNgwLayerFeatureCollection({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchIdentifyItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n identify: NgwIdentify,\n requestOptions?: NgwFeatureRequestOptions,\n // multiple = false\n ): CancelablePromise<NgwFeatureItemResponse<P, G> | undefined> {\n const promise = fetchIdentifyItem<G, P>({\n identify,\n connector: this.connector,\n requestOptions,\n // multiple,\n });\n\n this._addPromise('identify', promise);\n return promise;\n }\n\n fetchIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n const promise = fetchIdentifyGeoJson({\n identify,\n connector: this.connector,\n multiple,\n });\n if (promise && 'then' in promise) {\n this._addPromise('identify', promise);\n return promise;\n } else {\n return CancelablePromise.resolve(promise);\n }\n }\n\n /**\n * @deprecated use {@link fetchIdentifyGeoJson} instead\n */\n getIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n return this.fetchIdentifyGeoJson(identify, multiple);\n }\n\n async getNgwLayers(): Promise<NgwLayers> {\n await this.onLoad();\n return this._ngwLayers;\n }\n\n async getNgwLayerByResourceId(id: number): Promise<LayerAdapter | undefined> {\n for (const n in this._ngwLayers) {\n const mem = this._ngwLayers[n];\n if (mem.resourceId === id) {\n return mem && mem.layer;\n } else if (mem.layer.getIdentificationIds) {\n const ids = await mem.layer.getIdentificationIds();\n if (ids && ids.some((x) => x === id)) {\n return mem.layer;\n }\n }\n if (mem.layer.getDependLayers) {\n const dependLayers = mem.layer.getDependLayers() as NgwWebmapItem[];\n const dependFit = dependLayers.find((x) => {\n return x.item && x.item.parentId === id;\n });\n if (dependFit) {\n return dependFit.layer;\n }\n }\n }\n }\n\n /**\n * Move map to layer. If the layer is NGW resource, extent will be received from the server\n *\n * @example\n * ```javascript\n * const ngwLayer = ngwMap.addNgwLayer({ id: 'ngw_layer_name', resource: 4005 });\n * ngwMap.fitLayer(ngwLayer);\n * ngwMap.fitLayer('ngw_layer_name');\n * ```\n */\n async fitLayer(layerDef: LayerDef, options?: FitOptions): Promise<void> {\n let id: string | undefined;\n if (typeof layerDef === 'string' || typeof layerDef === 'number') {\n id = String(id);\n } else {\n id = layerDef.id;\n }\n const ngwLayer = id && this._ngwLayers[id];\n if (ngwLayer) {\n if (ngwLayer.layer.getBounds) {\n const bounds = await ngwLayer.layer.getBounds();\n if (bounds) {\n this.fitBounds(bounds, options);\n }\n } else {\n let item: ResourceItem | undefined;\n if (ngwLayer.layer.item) {\n item = ngwLayer.layer.item;\n } else {\n const resourceId = ngwLayer.resourceId;\n item = await this.connector.getResource(resourceId);\n }\n if (item) {\n fetchNgwResourceExtent(item, this.connector).then((extent) => {\n if (extent) {\n this.fitBounds(extent, options);\n }\n });\n }\n }\n } else {\n super.fitLayer(layerDef, options);\n }\n }\n\n /** @deprecated use {@link NgwMap.fitLayer} instead */\n async zoomToLayer(layerDef: string | ResourceAdapter): Promise<void> {\n return this.fitLayer(layerDef);\n }\n\n onLoad(event: keyof NgwMapEvents = 'ngw-map:create'): Promise<this> {\n return super.onLoad(event as keyof WebMapEvents);\n }\n\n removeLayer(layerDef: LayerDef): void {\n const layer = this.getLayer(layerDef);\n if (layer) {\n const layerId = this.getLayerId(layer);\n if (layerId) {\n delete this._ngwLayers[layerId];\n }\n super.removeLayer(layer);\n }\n }\n\n enableSelection(): void {\n if (!this.$$selectFromNgwRaster) {\n this.$$selectFromNgwRaster = (ev: MapClickEvent) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this._selectFromNgwRaster(ev);\n }\n };\n this.$$selectFromNgwVector = (ev: OnLayerMouseOptions) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this._selectFromNgwVector(ev);\n }\n };\n this.emitter.on('click', this.$$selectFromNgwRaster);\n this.emitter.on('layer:click', this.$$selectFromNgwVector);\n }\n }\n\n disableSelection(): void {\n if (this.$$selectFromNgwRaster) {\n this.emitter.removeListener('click', this.$$selectFromNgwRaster);\n this.$$selectFromNgwRaster = undefined;\n }\n if (this.$$selectFromNgwVector) {\n this.emitter.removeListener('layer:click', this.$$selectFromNgwVector);\n\n this.$$selectFromNgwVector = undefined;\n }\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItem} instead\n */\n getNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return this.fetchNgwLayerItem<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItems} instead\n */\n getNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return this.fetchNgwLayerItems<F, G>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeature} instead\n */\n getNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return this.fetchNgwLayerFeature<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeatures} instead\n */\n getNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends JsonMap = JsonMap,\n >(\n options: FetchNgwItemsOptions<P>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return this.fetchNgwLayerFeatures(options);\n }\n\n /** @deprecated use {@link NgwMap.cancelPromises} instead */\n cancelPromise(...args: PromiseGroup[]): void {\n this.cancelPromises(...args);\n }\n\n cancelPromises(...args: PromiseGroup[]): void {\n if (!args.length) {\n args = Object.keys(this._promises) as PromiseGroup[];\n }\n args.forEach((name) => {\n const group = this._promises[name];\n if (group) {\n group.forEach((x) => x.cancel());\n this._promises[name] = [];\n }\n });\n }\n\n private _addPromise(groupName: PromiseGroup, promise: CancelablePromise) {\n const group = this._promises[groupName];\n if (group && group.indexOf(promise) === -1) {\n const removeFromGroup = () => {\n const index = group.indexOf(promise);\n if (index !== -1) {\n group.splice(index, 1);\n }\n };\n promise.then(removeFromGroup);\n promise.catch(removeFromGroup);\n group.push(promise);\n }\n }\n\n private _isFitFromResource() {\n const params = this._initMapState;\n if (params.zoom && params.center) {\n return false;\n }\n return true;\n }\n\n private async _createWebMap() {\n await this.create();\n if (this.options.qmsId) {\n this._addQmsBaseLayer();\n }\n if (this.options.osm) {\n this._addOsmBaseLayer();\n }\n\n const resources: NgwLayerOptions[] = [];\n const layerFitAllowed = this._isFitFromResource();\n if (this.options.webmapId) {\n appendNgwResources(resources, this.options.webmapId, {\n fit: layerFitAllowed,\n });\n }\n if (this.options.resources && Array.isArray(this.options.resources)) {\n for (const x of this.options.resources) {\n const overwriteOptions: Partial<NgwLayerOptions> = {};\n if (!layerFitAllowed) {\n overwriteOptions.fit = false;\n }\n appendNgwResources(resources, x, {}, overwriteOptions);\n }\n }\n for (const r of resources) {\n try {\n await this.addNgwLayer(r);\n } catch (er) {\n console.warn(er);\n }\n }\n this._emitStatusEvent('ngw-map:create', this);\n this.enableSelection();\n }\n\n private _addOsmBaseLayer() {\n this.addBaseLayer('OSM');\n }\n\n private _addQmsBaseLayer() {\n let qmsId: number;\n let qmsLayerName: string | undefined;\n if (Array.isArray(this.options.qmsId)) {\n qmsId = this.options.qmsId[0];\n qmsLayerName = this.options.qmsId[1];\n } else {\n qmsId = Number(this.options.qmsId);\n }\n const qmsLayerOptions: Partial<QmsAdapterOptions> = {\n qmsId,\n };\n if (qmsLayerName) {\n qmsLayerOptions.id = qmsLayerName;\n }\n\n this.addBaseLayer('QMS', qmsLayerOptions);\n }\n\n private _selectFromNgwVector(\n ev: OnLayerMouseOptions,\n ): FeatureLayersIdentify | undefined {\n const layer: ResourceAdapter = ev.layer as ResourceAdapter;\n const selectable = layer.options.selectable && this.isLayerVisible(layer);\n if (!selectable) {\n return undefined;\n }\n // Item property means layer is NgwResource\n const id = layer.item && layer.item.resource.id;\n const feature = ev.feature;\n\n if (id !== undefined && feature) {\n const featureId = feature.id;\n if (featureId) {\n const identifyFeature: LayerFeature = {\n id: Number(featureId),\n fields: feature.properties || {},\n label: `#${id}`,\n layerId: Number(id),\n parent: '',\n geom: feature.geometry,\n };\n const items: FeatureLayersIdentifyItems = {\n featureCount: 1,\n features: [identifyFeature],\n };\n const identify: FeatureLayersIdentify = {\n featureCount: 1,\n [id]: items,\n };\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...identify,\n resources: [id],\n sourceType: 'vector',\n } as NgwIdentify),\n );\n return identify;\n }\n }\n }\n\n private async _selectFromNgwRaster(ev: MapClickEvent) {\n this._emitStatusEvent('ngw:preselect');\n\n const promises: Promise<number[] | undefined>[] = [];\n const layers = Object.values(this._ngwLayers);\n layers.sort((a, b) => {\n if (a.layer.order && b.layer.order) {\n return b.layer.order - a.layer.order;\n }\n return 1;\n });\n for (const l of layers) {\n const layer = l.layer;\n const identFunc =\n typeof layer.getIdentificationIds === 'function'\n ? layer.getIdentificationIds\n : false;\n if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {\n promises.push(identFunc.call(layer));\n }\n }\n const getIdsPromise = Promise.all(promises);\n const getIds = await getIdsPromise;\n const ids: number[] = [];\n for (const x of getIds) {\n if (x) {\n ids.push(...x);\n }\n }\n\n if (!ids.length) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n\n const pixelRadius = this.options.pixelRadius || 10;\n const center = this.getCenter();\n let zoom = this.getZoom();\n zoom = zoom !== undefined ? zoom : 20;\n if (!center || !zoom) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n const radius = getIdentifyRadius(center, zoom, pixelRadius);\n\n const selectPromise = sendIdentifyRequest(ev, {\n layers: ids,\n connector: this.connector,\n radius,\n }).then((resp) => {\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...resp,\n resources: ids,\n sourceType: 'raster',\n event: ev,\n }),\n );\n return resp;\n });\n this._addPromise('select', selectPromise);\n return selectPromise;\n }\n\n private _prepareToIdentify<\n F = FeatureProperties,\n G extends Geometry = Geometry,\n >(identify: NgwIdentify): NgwIdentifyEvent {\n const getIdentifyItems_ = () => {\n return getIdentifyItems(identify, true).map((x) => {\n return createIdentifyItem<F, G>({\n feature: x.feature,\n connector: this.connector,\n });\n });\n };\n return {\n ...identify,\n getIdentifyItems: getIdentifyItems_,\n };\n }\n\n private _getSelectListenersCount() {\n return this.emitter.listenerCount('ngw:select');\n }\n\n private async _whiteLabel() {\n const container = this.getContainer();\n if (container) {\n const logo = await getCompanyLogo(\n this.connector,\n this.options.companyLogoOptions,\n );\n if (logo) {\n container.appendChild(logo);\n }\n }\n }\n}\n","/**\n * @module ngw-map\n */\n\nimport { NgwMap } from './NgwMap';\nimport type { NgwMapOptions } from './interfaces';\n\nexport * from '@nextgis/webmap';\n\nexport * from './interfaces';\n\nexport { NgwMap };\n\nexport async function createNgwMap(options: NgwMapOptions): Promise<NgwMap> {\n const ngwMap = new NgwMap(options);\n return ngwMap.onLoad();\n}\n"],"names":["QmsKit","NgwConnector","deepmerge","NgwKit","EventEmitter","deprecatedWarn","defined","createNgwLayerAdapter","isObject","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatureCollection","fetchIdentifyItem","fetchIdentifyGeoJson","CancelablePromise","fetchNgwResourceExtent","sendIdentifyRequest","getIdentifyItems","createIdentifyItem","getCompanyLogo","getIcon","WebMap"],"mappings":"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"}
|
package/lib/ngw-map.cjs.prod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("events"),t=require("@nextgis/cancelable-promise"),r=require("@nextgis/utils"),n=require("@nextgis/webmap"),o=require("@nextgis/ngw-kit"),i=require("@nextgis/icons"),s=require("@nextgis/ngw-connector"),a=require("@nextgis/qms-kit");function c(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var u=c(t),l=c(s),p=function(e,t){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};var h=function(){return(h=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function f(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(t){i(t)}}function a(e){try{c(n.throw(e))}catch(t){i(t)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function y(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(a){i=[6,a],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function d(e,t,r,n){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(h(h({},r),{resource:t}));else if(Array.isArray(t)){var o=t[0],i=t[1];e.push(h(h(h({},r),{resource:o,id:i}),n))}else"object"==typeof t&&e.push(h(h(h({},r),t),n))}var m={target:"map",baseUrl:"",whitlabel:!1,controls:["ZOOM","ATTRIBUTION"],controlsOptions:{ZOOM:{position:"top-left"},ATTRIBUTION:{position:"bottom-right",customAttribution:['<a href="https://nextgis.com" target="_blank">©NextGIS</a>']}},pixelRadius:10};var g=function(t){function n(n){var i=t.call(this,function(e){var t=[new a.QmsKit];return e.starterKits&&e.starterKits.forEach((function(e){t.push(e)})),e.connector?e.connector&&(e.baseUrl=e.connector.options.baseUrl):e.connector=new l({baseUrl:e.baseUrl||"",auth:e.auth}),(e=r.deepmerge(m,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new o.NgwKit({connector:e.connector,auth:e.auth})),h(h({},e),{starterKits:t,create:!1})}(n))||this;return i.emitter=new e.EventEmitter,i._ngwLayers={},i._promises={select:[],identify:[]},n.connector&&(i.connector=n.connector),i._createWebMap().then((function(){var e=i.getContainer();e&&e.classList.add("ngw-map-container"),i.options.whitlabel&&i._whiteLabel()})),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(n,t),n.prototype.addControl=function(e,r,n){return f(this,void 0,void 0,(function(){return y(this,(function(o){switch(o.label){case 0:return[4,this.onLoad("controls:create")];case 1:return o.sent(),[2,t.prototype.addControl.call(this,e,r,n)]}}))}))},n.prototype.addNgwLayer=function(e){return f(this,void 0,void 0,(function(){var t,n,i,s,a,c,u,l,p;return y(this,(function(f){switch(f.label){case 0:return[4,this.onMapLoad()];case 1:if(f.sent(),n=e.resourceId,((t=e.keyname)||void 0!==n)&&r.deprecatedWarn("set `resource` options instead of `keyname` or `resourceId`"),i=e.resource,!t&&!n&&!i)throw new Error("resource, resourceId or keyname is required parameter to add NGW layer");if(!r.defined(this.options.baseUrl))return[3,5];f.label=2;case 2:return f.trys.push([2,4,,5]),r.defined(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},r.defined(e.adapterOptions.setViewDelay)||(e.adapterOptions.setViewDelay=this.options.setViewDelay)),s=o.createNgwLayerAdapter(e,this,this.connector),a=h(h({visibility:!0},e),e.adapterOptions),[4,this.addLayer(s,a)];case 3:return c=f.sent(),u=c&&this.getLayerId(c),c&&u&&(this._ngwLayers[u]={layer:c,resourceId:c.resourceId},c.options.name=c.options.name||c.item&&c.item.resource.display_name,c.options.baselayer&&this.getActiveBaseLayer()),[2,c];case 4:return l=f.sent(),p=r.isObject(i)&&"id"in i?i.id:t||n||i,console.error("Can't add NGW layer ".concat(p,"."),l),[3,5];case 5:return[2]}}))}))},n.prototype.fit=function(){var e=this.options,t=e.center,r=e.zoom,n=e.bounds;t?(this.setCenter(t),r&&this.setZoom(r)):n&&this.fitBounds(n)},n.prototype.fetchNgwLayerItem=function(e){return o.fetchNgwLayerItem(h({connector:this.connector},e))},n.prototype.fetchNgwLayerItems=function(e){return o.fetchNgwLayerItems(h({connector:this.connector},e))},n.prototype.fetchNgwLayerFeature=function(e){return o.fetchNgwLayerFeature(h({connector:this.connector},e))},n.prototype.fetchNgwLayerFeatures=function(e){return o.fetchNgwLayerFeatureCollection(h({connector:this.connector},e))},n.prototype.fetchIdentifyItem=function(e,t){var r=o.fetchIdentifyItem({identify:e,connector:this.connector,requestOptions:t});return this._addPromise("identify",r),r},n.prototype.fetchIdentifyGeoJson=function(e,t){void 0===t&&(t=!1);var r=o.fetchIdentifyGeoJson({identify:e,connector:this.connector,multiple:t});return r&&"then"in r?(this._addPromise("identify",r),r):u.resolve(r)},n.prototype.getIdentifyGeoJson=function(e,t){return void 0===t&&(t=!1),this.fetchIdentifyGeoJson(e,t)},n.prototype.getNgwLayers=function(){return f(this,void 0,void 0,(function(){return y(this,(function(e){switch(e.label){case 0:return[4,this.onLoad()];case 1:return e.sent(),[2,this._ngwLayers]}}))}))},n.prototype.getNgwLayerByResourceId=function(e){return f(this,void 0,void 0,(function(){var t,r,n,o,i,s,a;return y(this,(function(c){switch(c.label){case 0:for(r in t=[],this._ngwLayers)t.push(r);n=0,c.label=1;case 1:return n<t.length?(o=this._ngwLayers[t[n]]).resourceId!==e?[3,2]:[2,o&&o.layer]:[3,6];case 2:return o.layer.getIdentificationIds?[4,o.layer.getIdentificationIds()]:[3,4];case 3:if((i=c.sent())&&i.some((function(t){return t===e})))return[2,o.layer];c.label=4;case 4:if(o.layer.getDependLayers&&(s=o.layer.getDependLayers(),a=s.find((function(t){return t.item&&t.item.parentId===e}))))return[2,a.layer];c.label=5;case 5:return n++,[3,1];case 6:return[2]}}))}))},n.prototype.fitLayer=function(e,r){return f(this,void 0,void 0,(function(){var n,i,s,a,c=this;return y(this,(function(u){switch(u.label){case 0:return n="string"==typeof e||"number"==typeof e?String(n):e.id,(i=n&&this._ngwLayers[n])?i.layer.getBounds?[4,i.layer.getBounds()]:[3,2]:[3,7];case 1:return(s=u.sent())&&this.fitBounds(s,r),[3,6];case 2:return a=void 0,i.layer.item?(a=i.layer.item,[3,5]):[3,3];case 3:return[4,this.connector.getResource(i.resourceId)];case 4:a=u.sent(),u.label=5;case 5:a&&o.fetchNgwResourceExtent(a,this.connector).then((function(e){e&&c.fitBounds(e,r)})),u.label=6;case 6:return[3,8];case 7:t.prototype.fitLayer.call(this,e,r),u.label=8;case 8:return[2]}}))}))},n.prototype.zoomToLayer=function(e){return f(this,void 0,void 0,(function(){return y(this,(function(t){return[2,this.fitLayer(e)]}))}))},n.prototype.onLoad=function(e){return void 0===e&&(e="ngw-map:create"),t.prototype.onLoad.call(this,e)},n.prototype.removeLayer=function(e){var r=this.getLayer(e);if(r){var n=this.getLayerId(r);n&&delete this._ngwLayers[n],t.prototype.removeLayer.call(this,r)}},n.prototype.enableSelection=function(){var e=this;this.$$selectFromNgwRaster||(this.$$selectFromNgwRaster=function(t){e.emitter.listenerCount("ngw:select")&&e._selectFromNgwRaster(t)},this.$$selectFromNgwVector=function(t){e.emitter.listenerCount("ngw:select")&&e._selectFromNgwVector(t)},this.emitter.on("click",this.$$selectFromNgwRaster),this.emitter.on("layer:click",this.$$selectFromNgwVector))},n.prototype.disableSelection=function(){this.$$selectFromNgwRaster&&(this.emitter.removeListener("click",this.$$selectFromNgwRaster),this.emitter.removeListener("click",this._selectFromNgwVector),this.$$selectFromNgwRaster=void 0,this.$$selectFromNgwVector=void 0)},n.prototype.getNgwLayerItem=function(e){return this.fetchNgwLayerItem(e)},n.prototype.getNgwLayerItems=function(e){return this.fetchNgwLayerItems(e)},n.prototype.getNgwLayerFeature=function(e){return this.fetchNgwLayerFeature(e)},n.prototype.getNgwLayerFeatures=function(e){return this.fetchNgwLayerFeatures(e)},n.prototype.cancelPromise=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.cancelPromises.apply(this,e)},n.prototype.cancelPromises=function(){for(var e=this,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];t.length||(t=Object.keys(this._promises)),t.forEach((function(t){var r=e._promises[t];r&&(r.forEach((function(e){return e.cancel()})),e._promises[t]=[])}))},n.prototype._addPromise=function(e,t){var r=this._promises[e];if(r&&-1===r.indexOf(t)){var n=function(){var e=r.indexOf(t);-1!==e&&r.splice(e,1)};t.then(n),t.catch(n),r.push(t)}},n.prototype._isFitFromResource=function(){var e=this._initMapState;return!e.zoom||!e.center},n.prototype._createWebMap=function(){return f(this,void 0,void 0,(function(){var e,t,r,n,o,i,s,a,c,u;return y(this,(function(l){switch(l.label){case 0:return[4,this.create()];case 1:if(l.sent(),this.options.qmsId&&this._addQmsBaseLayer(),this.options.osm&&this._addOsmBaseLayer(),e=[],t=this._isFitFromResource(),this.options.webmapId&&d(e,this.options.webmapId,{fit:t}),this.options.resources&&Array.isArray(this.options.resources))for(r=0,n=this.options.resources;r<n.length;r++)o=n[r],i={},t||(i.fit=!1),d(e,o,{},i);s=0,a=e,l.label=2;case 2:if(!(s<a.length))return[3,7];c=a[s],l.label=3;case 3:return l.trys.push([3,5,,6]),[4,this.addNgwLayer(c)];case 4:return l.sent(),[3,6];case 5:return u=l.sent(),console.warn(u),[3,6];case 6:return s++,[3,2];case 7:return this._emitStatusEvent("ngw-map:create",this),this.enableSelection(),[2]}}))}))},n.prototype._addOsmBaseLayer=function(){this.addBaseLayer("OSM")},n.prototype._addQmsBaseLayer=function(){var e,t;Array.isArray(this.options.qmsId)?(e=this.options.qmsId[0],t=this.options.qmsId[1]):e=Number(this.options.qmsId);var r={qmsId:e};t&&(r.id=t),this.addBaseLayer("QMS",r)},n.prototype._selectFromNgwVector=function(e){var t,r=e.layer,n=r.item&&r.item.resource.id,o=e.feature;if(void 0!==n&&o){var i=o.id;if(i){var s={id:Number(i),fields:o.properties||{},label:"#".concat(n),layerId:Number(n),parent:"",geom:o.geometry},a=((t={featureCount:1})[n]={featureCount:1,features:[s]},t);return this._emitStatusEvent("ngw:select",this._prepareToIdentify(h(h({},a),{resources:[n],sourceType:"vector"}))),a}}},n.prototype._selectFromNgwRaster=function(e){return f(this,void 0,void 0,(function(){var t,r,n,i,s,a,c,u,l,p=this;return y(this,(function(f){switch(f.label){case 0:return this._emitStatusEvent("ngw:preselect"),t=[],(r=Object.values(this._ngwLayers)).sort((function(e,t){return e.layer.order&&t.layer.order?t.layer.order-e.layer.order:1})),r.forEach((function(e){var r=e.layer,n="function"==typeof r.getIdentificationIds&&r.getIdentificationIds;n&&r.options.selectable&&p.isLayerVisible(r)&&t.push(n.call(r))})),[4,Promise.all(t)];case 1:return n=f.sent(),i=[],n.forEach((function(e){e&&e.forEach((function(e){return i.push(e)}))})),i.length?(s=this.options.pixelRadius||10,a=this.getCenter(),c=void 0!==(c=this.getZoom())?c:20,a&&c?(u=function(e,t,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*e[1]/Math.PI))/Math.pow(2,t+8))*5e-4}(a,c,s),l=o.sendIdentifyRequest(e,{layers:i,connector:this.connector,radius:u}).then((function(t){return p._emitStatusEvent("ngw:select",p._prepareToIdentify(h(h({},t),{resources:i,sourceType:"raster",event:e}))),t})),this._addPromise("select",l),[2,l]):(this._emitStatusEvent("ngw:select",null),[2])):(this._emitStatusEvent("ngw:select",null),[2])}}))}))},n.prototype._prepareToIdentify=function(e){var t=this;return h(h({},e),{getIdentifyItems:function(){return o.getIdentifyItems(e,!0).map((function(e){return o.createIdentifyItem({feature:e.feature,connector:t.connector})}))}})},n.prototype._whiteLabel=function(){return f(this,void 0,void 0,(function(){var e,t;return y(this,(function(r){switch(r.label){case 0:return(e=this.getContainer())?[4,o.getCompanyLogo(this.connector,this.options.companyLogoOptions)]:[3,2];case 1:(t=r.sent())&&e.appendChild(t),r.label=2;case 2:return[2]}}))}))},n.getIcon=i.getIcon,n}(n.WebMap);for(var w in exports.NgwMap=g,exports.createNgwMap=function(e){return f(this,void 0,void 0,(function(){return y(this,(function(t){return[2,new g(e).onLoad()]}))}))},n)"default"===w||exports.hasOwnProperty(w)||(exports[w]=n[w]);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("events"),t=require("@nextgis/cancelable-promise"),r=require("@nextgis/utils"),n=require("@nextgis/webmap"),o=require("@nextgis/ngw-kit"),i=require("@nextgis/icons"),s=require("@nextgis/ngw-connector"),a=require("@nextgis/qms-kit");function c(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var u=c(t),l=c(s),p=function(e,t){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},p(e,t)};var h=function(){return h=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},h.apply(this,arguments)};function f(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(t){i(t)}}function a(e){try{c(n.throw(e))}catch(t){i(t)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function y(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(a){i=[6,a],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function d(e,t,r,n){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(h(h({},r),{resource:t}));else if(Array.isArray(t)){var o=t[0],i=t[1];e.push(h(h(h({},r),{resource:o,id:i}),n))}else"object"==typeof t&&e.push(h(h(h({},r),t),n))}var g={target:"map",baseUrl:"",whitlabel:!1,controls:["ZOOM","ATTRIBUTION"],controlsOptions:{ZOOM:{position:"top-left"},ATTRIBUTION:{position:"bottom-right",customAttribution:['<a href="https://nextgis.com" target="_blank">©NextGIS</a>']}},pixelRadius:10};var m=function(t){function n(n){var i=t.call(this,function(e){var t=[new a.QmsKit];return e.starterKits&&e.starterKits.forEach((function(e){t.push(e)})),e.connector?e.connector&&(e.baseUrl=e.connector.options.baseUrl):e.connector=new l({baseUrl:e.baseUrl||"",auth:e.auth}),(e=r.deepmerge(g,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new o.NgwKit({connector:e.connector,auth:e.auth})),h(h({},e),{starterKits:t,create:!1})}(n))||this;return i.emitter=new e.EventEmitter,i._ngwLayers={},i._promises={select:[],identify:[]},n.connector&&(i.connector=n.connector),i._createWebMap().then((function(){var e=i.getContainer();e&&e.classList.add("ngw-map-container"),i.options.whitlabel&&i._whiteLabel()})),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(n,t),n.prototype.addControl=function(e,r,n){return f(this,void 0,void 0,(function(){return y(this,(function(o){switch(o.label){case 0:return[4,this.onLoad("controls:create")];case 1:return o.sent(),[2,t.prototype.addControl.call(this,e,r,n)]}}))}))},n.prototype.addNgwLayer=function(e){return f(this,void 0,void 0,(function(){var t,n,i,s,a,c,u,l,p;return y(this,(function(f){switch(f.label){case 0:return[4,this.onMapLoad()];case 1:if(f.sent(),n=e.resourceId,((t=e.keyname)||void 0!==n)&&r.deprecatedWarn("set `resource` options instead of `keyname` or `resourceId`"),i=e.resource,!t&&!n&&!i)throw new Error("resource, resourceId or keyname is required parameter to add NGW layer");if(!r.defined(this.options.baseUrl))return[3,5];f.label=2;case 2:return f.trys.push([2,4,,5]),r.defined(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},r.defined(e.adapterOptions.setViewDelay)||(e.adapterOptions.setViewDelay=this.options.setViewDelay)),s=o.createNgwLayerAdapter(e,this,this.connector),a=h(h({visibility:!0},e),e.adapterOptions),[4,this.addLayer(s,a)];case 3:return c=f.sent(),u=c&&this.getLayerId(c),c&&u&&(this._ngwLayers[u]={layer:c,resourceId:c.resourceId},c.options.name=c.options.name||c.item&&c.item.resource.display_name,c.options.baselayer&&this.getActiveBaseLayer()),[2,c];case 4:return l=f.sent(),p=r.isObject(i)&&"id"in i?i.id:t||n||i,console.error("Can't add NGW layer ".concat(p,"."),l),[3,5];case 5:return[2]}}))}))},n.prototype.fit=function(){var e=this.options,t=e.center,r=e.zoom,n=e.bounds;t?(this.setCenter(t),r&&this.setZoom(r)):n&&this.fitBounds(n)},n.prototype.fetchNgwLayerItem=function(e){return o.fetchNgwLayerItem(h({connector:this.connector},e))},n.prototype.fetchNgwLayerItems=function(e){return o.fetchNgwLayerItems(h({connector:this.connector},e))},n.prototype.fetchNgwLayerFeature=function(e){return o.fetchNgwLayerFeature(h({connector:this.connector},e))},n.prototype.fetchNgwLayerFeatures=function(e){return o.fetchNgwLayerFeatureCollection(h({connector:this.connector},e))},n.prototype.fetchIdentifyItem=function(e,t){var r=o.fetchIdentifyItem({identify:e,connector:this.connector,requestOptions:t});return this._addPromise("identify",r),r},n.prototype.fetchIdentifyGeoJson=function(e,t){void 0===t&&(t=!1);var r=o.fetchIdentifyGeoJson({identify:e,connector:this.connector,multiple:t});return r&&"then"in r?(this._addPromise("identify",r),r):u.resolve(r)},n.prototype.getIdentifyGeoJson=function(e,t){return void 0===t&&(t=!1),this.fetchIdentifyGeoJson(e,t)},n.prototype.getNgwLayers=function(){return f(this,void 0,void 0,(function(){return y(this,(function(e){switch(e.label){case 0:return[4,this.onLoad()];case 1:return e.sent(),[2,this._ngwLayers]}}))}))},n.prototype.getNgwLayerByResourceId=function(e){return f(this,void 0,void 0,(function(){var t,r,n,o,i,s,a;return y(this,(function(c){switch(c.label){case 0:for(r in t=[],this._ngwLayers)t.push(r);n=0,c.label=1;case 1:return n<t.length?(o=this._ngwLayers[t[n]]).resourceId!==e?[3,2]:[2,o&&o.layer]:[3,6];case 2:return o.layer.getIdentificationIds?[4,o.layer.getIdentificationIds()]:[3,4];case 3:if((i=c.sent())&&i.some((function(t){return t===e})))return[2,o.layer];c.label=4;case 4:if(o.layer.getDependLayers&&(s=o.layer.getDependLayers(),a=s.find((function(t){return t.item&&t.item.parentId===e}))))return[2,a.layer];c.label=5;case 5:return n++,[3,1];case 6:return[2]}}))}))},n.prototype.fitLayer=function(e,r){return f(this,void 0,void 0,(function(){var n,i,s,a,c=this;return y(this,(function(u){switch(u.label){case 0:return n="string"==typeof e||"number"==typeof e?String(n):e.id,(i=n&&this._ngwLayers[n])?i.layer.getBounds?[4,i.layer.getBounds()]:[3,2]:[3,7];case 1:return(s=u.sent())&&this.fitBounds(s,r),[3,6];case 2:return a=void 0,i.layer.item?(a=i.layer.item,[3,5]):[3,3];case 3:return[4,this.connector.getResource(i.resourceId)];case 4:a=u.sent(),u.label=5;case 5:a&&o.fetchNgwResourceExtent(a,this.connector).then((function(e){e&&c.fitBounds(e,r)})),u.label=6;case 6:return[3,8];case 7:t.prototype.fitLayer.call(this,e,r),u.label=8;case 8:return[2]}}))}))},n.prototype.zoomToLayer=function(e){return f(this,void 0,void 0,(function(){return y(this,(function(t){return[2,this.fitLayer(e)]}))}))},n.prototype.onLoad=function(e){return void 0===e&&(e="ngw-map:create"),t.prototype.onLoad.call(this,e)},n.prototype.removeLayer=function(e){var r=this.getLayer(e);if(r){var n=this.getLayerId(r);n&&delete this._ngwLayers[n],t.prototype.removeLayer.call(this,r)}},n.prototype.enableSelection=function(){var e=this;this.$$selectFromNgwRaster||(this.$$selectFromNgwRaster=function(t){e._getSelectListenersCount()&&e._selectFromNgwRaster(t)},this.$$selectFromNgwVector=function(t){e._getSelectListenersCount()&&e._selectFromNgwVector(t)},this.emitter.on("click",this.$$selectFromNgwRaster),this.emitter.on("layer:click",this.$$selectFromNgwVector))},n.prototype.disableSelection=function(){this.$$selectFromNgwRaster&&(this.emitter.removeListener("click",this.$$selectFromNgwRaster),this.$$selectFromNgwRaster=void 0),this.$$selectFromNgwVector&&(this.emitter.removeListener("layer:click",this.$$selectFromNgwVector),this.$$selectFromNgwVector=void 0)},n.prototype.getNgwLayerItem=function(e){return this.fetchNgwLayerItem(e)},n.prototype.getNgwLayerItems=function(e){return this.fetchNgwLayerItems(e)},n.prototype.getNgwLayerFeature=function(e){return this.fetchNgwLayerFeature(e)},n.prototype.getNgwLayerFeatures=function(e){return this.fetchNgwLayerFeatures(e)},n.prototype.cancelPromise=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.cancelPromises.apply(this,e)},n.prototype.cancelPromises=function(){for(var e=this,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];t.length||(t=Object.keys(this._promises)),t.forEach((function(t){var r=e._promises[t];r&&(r.forEach((function(e){return e.cancel()})),e._promises[t]=[])}))},n.prototype._addPromise=function(e,t){var r=this._promises[e];if(r&&-1===r.indexOf(t)){var n=function(){var e=r.indexOf(t);-1!==e&&r.splice(e,1)};t.then(n),t.catch(n),r.push(t)}},n.prototype._isFitFromResource=function(){var e=this._initMapState;return!e.zoom||!e.center},n.prototype._createWebMap=function(){return f(this,void 0,void 0,(function(){var e,t,r,n,o,i,s,a,c,u;return y(this,(function(l){switch(l.label){case 0:return[4,this.create()];case 1:if(l.sent(),this.options.qmsId&&this._addQmsBaseLayer(),this.options.osm&&this._addOsmBaseLayer(),e=[],t=this._isFitFromResource(),this.options.webmapId&&d(e,this.options.webmapId,{fit:t}),this.options.resources&&Array.isArray(this.options.resources))for(r=0,n=this.options.resources;r<n.length;r++)o=n[r],i={},t||(i.fit=!1),d(e,o,{},i);s=0,a=e,l.label=2;case 2:if(!(s<a.length))return[3,7];c=a[s],l.label=3;case 3:return l.trys.push([3,5,,6]),[4,this.addNgwLayer(c)];case 4:return l.sent(),[3,6];case 5:return u=l.sent(),console.warn(u),[3,6];case 6:return s++,[3,2];case 7:return this._emitStatusEvent("ngw-map:create",this),this.enableSelection(),[2]}}))}))},n.prototype._addOsmBaseLayer=function(){this.addBaseLayer("OSM")},n.prototype._addQmsBaseLayer=function(){var e,t;Array.isArray(this.options.qmsId)?(e=this.options.qmsId[0],t=this.options.qmsId[1]):e=Number(this.options.qmsId);var r={qmsId:e};t&&(r.id=t),this.addBaseLayer("QMS",r)},n.prototype._selectFromNgwVector=function(e){var t,r=e.layer;if(r.options.selectable&&this.isLayerVisible(r)){var n=r.item&&r.item.resource.id,o=e.feature;if(void 0!==n&&o){var i=o.id;if(i){var s={id:Number(i),fields:o.properties||{},label:"#".concat(n),layerId:Number(n),parent:"",geom:o.geometry},a=((t={featureCount:1})[n]={featureCount:1,features:[s]},t);return this._emitStatusEvent("ngw:select",this._prepareToIdentify(h(h({},a),{resources:[n],sourceType:"vector"}))),a}}}},n.prototype._selectFromNgwRaster=function(e){return f(this,void 0,void 0,(function(){var t,r,n,i,s,a,c,u,l,p,f,d,g,m,w,v,b=this;return y(this,(function(y){switch(y.label){case 0:for(this._emitStatusEvent("ngw:preselect"),t=[],(r=Object.values(this._ngwLayers)).sort((function(e,t){return e.layer.order&&t.layer.order?t.layer.order-e.layer.order:1})),n=0,i=r;n<i.length;n++)(a="function"==typeof(s=i[n].layer).getIdentificationIds&&s.getIdentificationIds)&&s.options.selectable&&this.isLayerVisible(s)&&t.push(a.call(s));return[4,Promise.all(t)];case 1:for(c=y.sent(),u=[],l=0,p=c;l<p.length;l++)(f=p[l])&&u.push.apply(u,f);return u.length?(d=this.options.pixelRadius||10,g=this.getCenter(),m=void 0!==(m=this.getZoom())?m:20,g&&m?(w=function(e,t,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*e[1]/Math.PI))/Math.pow(2,t+8))*5e-4}(g,m,d),v=o.sendIdentifyRequest(e,{layers:u,connector:this.connector,radius:w}).then((function(t){return b._emitStatusEvent("ngw:select",b._prepareToIdentify(h(h({},t),{resources:u,sourceType:"raster",event:e}))),t})),this._addPromise("select",v),[2,v]):(this._emitStatusEvent("ngw:select",null),[2])):(this._emitStatusEvent("ngw:select",null),[2])}}))}))},n.prototype._prepareToIdentify=function(e){var t=this;return h(h({},e),{getIdentifyItems:function(){return o.getIdentifyItems(e,!0).map((function(e){return o.createIdentifyItem({feature:e.feature,connector:t.connector})}))}})},n.prototype._getSelectListenersCount=function(){return this.emitter.listenerCount("ngw:select")},n.prototype._whiteLabel=function(){return f(this,void 0,void 0,(function(){var e,t;return y(this,(function(r){switch(r.label){case 0:return(e=this.getContainer())?[4,o.getCompanyLogo(this.connector,this.options.companyLogoOptions)]:[3,2];case 1:(t=r.sent())&&e.appendChild(t),r.label=2;case 2:return[2]}}))}))},n.getIcon=i.getIcon,n}(n.WebMap);for(var w in exports.NgwMap=m,exports.createNgwMap=function(e){return f(this,void 0,void 0,(function(){return y(this,(function(t){return[2,new m(e).onLoad()]}))}))},n)"default"===w||exports.hasOwnProperty(w)||(exports[w]=n[w]);
|
|
2
2
|
//# sourceMappingURL=ngw-map.cjs.prod.js.map
|