@nextgis/ngw-map 1.14.0 → 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 +0 -6
- package/lib/ngw-map.cjs.js +2 -2
- 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 +26 -28
- 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 +2 -2
- 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 +26 -28
- 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
|
@@ -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
|
import { EventEmitter } from 'events';
|
|
3
3
|
import CancelablePromise from '@nextgis/cancelable-promise';
|
|
4
4
|
import { deepmerge, isObject, defined, deprecatedWarn } from '@nextgis/utils';
|
|
@@ -9,7 +9,7 @@ import { getIcon } from '@nextgis/icons';
|
|
|
9
9
|
import NgwConnector from '@nextgis/ngw-connector';
|
|
10
10
|
import { QmsKit } from '@nextgis/qms-kit';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/******************************************************************************
|
|
13
13
|
Copyright (c) Microsoft Corporation.
|
|
14
14
|
|
|
15
15
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngw-map.esm-bundler.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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngw-map.esm-bundler.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":[],"mappings":"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"}
|
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
import{EventEmitter as t}from"events";import e from"@nextgis/cancelable-promise";import{deepmerge as r,isObject as n,defined as o,deprecatedWarn as i}from"@nextgis/utils";import{WebMap as s}from"@nextgis/webmap";export*from"@nextgis/webmap";import{NgwKit as a,fetchNgwLayerItem as c,fetchNgwLayerItems as u,fetchNgwLayerFeature as l,fetchNgwLayerFeatureCollection as p,fetchIdentifyItem as h,fetchIdentifyGeoJson as f,getIdentifyItems as y,createIdentifyItem as d,createNgwLayerAdapter as m,sendIdentifyRequest as g,getCompanyLogo as w,fetchNgwResourceExtent as v}from"@nextgis/ngw-kit";import{getIcon as b}from"@nextgis/icons";import L from"@nextgis/ngw-connector";import{QmsKit as _}from"@nextgis/qms-kit";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */var I=function(t,e){return(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(t,e)};var N=function(){return(N=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function O(t,e,r,n){return new(r||(r=Promise))((function(o,i){function s(t){try{c(n.next(t))}catch(e){i(e)}}function a(t){try{c(n.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}c((n=n.apply(t,e||[])).next())}))}function F(t,e){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=e.call(t,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 x(t,e,r,n){if("number"==typeof e||"string"==typeof e)e=Number(e),t.push(N(N({},r),{resource:e}));else if(Array.isArray(e)){var o=e[0],i=e[1];t.push(N(N(N({},r),{resource:o,id:i}),n))}else"object"==typeof e&&t.push(N(N(N({},r),e),n))}var $={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 S=function(s){function S(e){var n=s.call(this,function(t){var e=[new _];return t.starterKits&&t.starterKits.forEach((function(t){e.push(t)})),t.connector?t.connector&&(t.baseUrl=t.connector.options.baseUrl):t.connector=new L({baseUrl:t.baseUrl||"",auth:t.auth}),(t=r($,t)).center||t.bounds||(t.bounds=[-179,-90,180,90]),t.connector&&e.push(new a({connector:t.connector,auth:t.auth})),N(N({},t),{starterKits:e,create:!1})}(e))||this;return n.emitter=new t,n._ngwLayers={},n._promises={select:[],identify:[]},e.connector&&(n.connector=e.connector),n._createWebMap().then((function(){var t=n.getContainer();t&&t.classList.add("ngw-map-container"),n.options.whitlabel&&n._whiteLabel()})),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}I(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}(S,s),S.prototype.addControl=function(t,e,r){return O(this,void 0,void 0,(function(){return F(this,(function(n){switch(n.label){case 0:return[4,this.onLoad("controls:create")];case 1:return n.sent(),[2,s.prototype.addControl.call(this,t,e,r)]}}))}))},S.prototype.addNgwLayer=function(t){return O(this,void 0,void 0,(function(){var e,r,s,a,c,u,l,p,h;return F(this,(function(f){switch(f.label){case 0:return[4,this.onMapLoad()];case 1:if(f.sent(),r=t.resourceId,((e=t.keyname)||void 0!==r)&&i("set `resource` options instead of `keyname` or `resourceId`"),s=t.resource,!e&&!r&&!s)throw new Error("resource, resourceId or keyname is required parameter to add NGW layer");if(!o(this.options.baseUrl))return[3,5];f.label=2;case 2:return f.trys.push([2,4,,5]),o(this.options.setViewDelay)&&(t.adapterOptions=t.adapterOptions||{},o(t.adapterOptions.setViewDelay)||(t.adapterOptions.setViewDelay=this.options.setViewDelay)),a=m(t,this,this.connector),c=N(N({visibility:!0},t),t.adapterOptions),[4,this.addLayer(a,c)];case 3:return u=f.sent(),l=u&&this.getLayerId(u),u&&l&&(this._ngwLayers[l]={layer:u,resourceId:u.resourceId},u.options.name=u.options.name||u.item&&u.item.resource.display_name,u.options.baselayer&&this.getActiveBaseLayer()),[2,u];case 4:return p=f.sent(),h=n(s)&&"id"in s?s.id:e||r||s,console.error("Can't add NGW layer ".concat(h,"."),p),[3,5];case 5:return[2]}}))}))},S.prototype.fit=function(){var t=this.options,e=t.center,r=t.zoom,n=t.bounds;e?(this.setCenter(e),r&&this.setZoom(r)):n&&this.fitBounds(n)},S.prototype.fetchNgwLayerItem=function(t){return c(N({connector:this.connector},t))},S.prototype.fetchNgwLayerItems=function(t){return u(N({connector:this.connector},t))},S.prototype.fetchNgwLayerFeature=function(t){return l(N({connector:this.connector},t))},S.prototype.fetchNgwLayerFeatures=function(t){return p(N({connector:this.connector},t))},S.prototype.fetchIdentifyItem=function(t,e){var r=h({identify:t,connector:this.connector,requestOptions:e});return this._addPromise("identify",r),r},S.prototype.fetchIdentifyGeoJson=function(t,r){void 0===r&&(r=!1);var n=f({identify:t,connector:this.connector,multiple:r});return n&&"then"in n?(this._addPromise("identify",n),n):e.resolve(n)},S.prototype.getIdentifyGeoJson=function(t,e){return void 0===e&&(e=!1),this.fetchIdentifyGeoJson(t,e)},S.prototype.getNgwLayers=function(){return O(this,void 0,void 0,(function(){return F(this,(function(t){switch(t.label){case 0:return[4,this.onLoad()];case 1:return t.sent(),[2,this._ngwLayers]}}))}))},S.prototype.getNgwLayerByResourceId=function(t){return O(this,void 0,void 0,(function(){var e,r,n,o,i,s,a;return F(this,(function(c){switch(c.label){case 0:for(r in e=[],this._ngwLayers)e.push(r);n=0,c.label=1;case 1:return n<e.length?(o=this._ngwLayers[e[n]]).resourceId!==t?[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(e){return e===t})))return[2,o.layer];c.label=4;case 4:if(o.layer.getDependLayers&&(s=o.layer.getDependLayers(),a=s.find((function(e){return e.item&&e.item.parentId===t}))))return[2,a.layer];c.label=5;case 5:return n++,[3,1];case 6:return[2]}}))}))},S.prototype.fitLayer=function(t,e){return O(this,void 0,void 0,(function(){var r,n,o,i,a=this;return F(this,(function(c){switch(c.label){case 0:return r="string"==typeof t||"number"==typeof t?String(r):t.id,(n=r&&this._ngwLayers[r])?n.layer.getBounds?[4,n.layer.getBounds()]:[3,2]:[3,7];case 1:return(o=c.sent())&&this.fitBounds(o,e),[3,6];case 2:return i=void 0,n.layer.item?(i=n.layer.item,[3,5]):[3,3];case 3:return[4,this.connector.getResource(n.resourceId)];case 4:i=c.sent(),c.label=5;case 5:i&&v(i,this.connector).then((function(t){t&&a.fitBounds(t,e)})),c.label=6;case 6:return[3,8];case 7:s.prototype.fitLayer.call(this,t,e),c.label=8;case 8:return[2]}}))}))},S.prototype.zoomToLayer=function(t){return O(this,void 0,void 0,(function(){return F(this,(function(e){return[2,this.fitLayer(t)]}))}))},S.prototype.onLoad=function(t){return void 0===t&&(t="ngw-map:create"),s.prototype.onLoad.call(this,t)},S.prototype.removeLayer=function(t){var e=this.getLayer(t);if(e){var r=this.getLayerId(e);r&&delete this._ngwLayers[r],s.prototype.removeLayer.call(this,e)}},S.prototype.enableSelection=function(){var t=this;this.$$selectFromNgwRaster||(this.$$selectFromNgwRaster=function(e){t._getSelectListenersCount()&&t._selectFromNgwRaster(e)},this.$$selectFromNgwVector=function(e){t._getSelectListenersCount()&&t._selectFromNgwVector(e)},this.emitter.on("click",this.$$selectFromNgwRaster),this.emitter.on("layer:click",this.$$selectFromNgwVector))},S.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)},S.prototype.getNgwLayerItem=function(t){return this.fetchNgwLayerItem(t)},S.prototype.getNgwLayerItems=function(t){return this.fetchNgwLayerItems(t)},S.prototype.getNgwLayerFeature=function(t){return this.fetchNgwLayerFeature(t)},S.prototype.getNgwLayerFeatures=function(t){return this.fetchNgwLayerFeatures(t)},S.prototype.cancelPromise=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.cancelPromises.apply(this,t)},S.prototype.cancelPromises=function(){for(var t=this,e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];e.length||(e=Object.keys(this._promises)),e.forEach((function(e){var r=t._promises[e];r&&(r.forEach((function(t){return t.cancel()})),t._promises[e]=[])}))},S.prototype._addPromise=function(t,e){var r=this._promises[t];if(r&&-1===r.indexOf(e)){var n=function(){var t=r.indexOf(e);-1!==t&&r.splice(t,1)};e.then(n),e.catch(n),r.push(e)}},S.prototype._isFitFromResource=function(){var t=this._initMapState;return!t.zoom||!t.center},S.prototype._createWebMap=function(){return O(this,void 0,void 0,(function(){var t,e,r,n,o,i,s,a,c,u;return F(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(),t=[],e=this._isFitFromResource(),this.options.webmapId&&x(t,this.options.webmapId,{fit:e}),this.options.resources&&Array.isArray(this.options.resources))for(r=0,n=this.options.resources;r<n.length;r++)o=n[r],i={},e||(i.fit=!1),x(t,o,{},i);s=0,a=t,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]}}))}))},S.prototype._addOsmBaseLayer=function(){this.addBaseLayer("OSM")},S.prototype._addQmsBaseLayer=function(){var t,e;Array.isArray(this.options.qmsId)?(t=this.options.qmsId[0],e=this.options.qmsId[1]):t=Number(this.options.qmsId);var r={qmsId:t};e&&(r.id=e),this.addBaseLayer("QMS",r)},S.prototype._selectFromNgwVector=function(t){var e,r=t.layer;if(r.options.selectable&&this.isLayerVisible(r)){var n=r.item&&r.item.resource.id,o=t.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=((e={featureCount:1})[n]={featureCount:1,features:[s]},e);return this._emitStatusEvent("ngw:select",this._prepareToIdentify(N(N({},a),{resources:[n],sourceType:"vector"}))),a}}}},S.prototype._selectFromNgwRaster=function(t){return O(this,void 0,void 0,(function(){var e,r,n,o,i,s,a,c,u,l,p,h,f,y,d,m,w=this;return F(this,(function(v){switch(v.label){case 0:for(this._emitStatusEvent("ngw:preselect"),e=[],(r=Object.values(this._ngwLayers)).sort((function(t,e){return t.layer.order&&e.layer.order?e.layer.order-t.layer.order:1})),n=0,o=r;n<o.length;n++)(s="function"==typeof(i=o[n].layer).getIdentificationIds&&i.getIdentificationIds)&&i.options.selectable&&this.isLayerVisible(i)&&e.push(s.call(i));return[4,Promise.all(e)];case 1:for(a=v.sent(),c=[],u=0,l=a;u<l.length;u++)(p=l[u])&&c.push.apply(c,p);return c.length?(h=this.options.pixelRadius||10,f=this.getCenter(),y=void 0!==(y=this.getZoom())?y:20,f&&y?(d=function(t,e,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*t[1]/Math.PI))/Math.pow(2,e+8))*5e-4}(f,y,h),m=g(t,{layers:c,connector:this.connector,radius:d}).then((function(e){return w._emitStatusEvent("ngw:select",w._prepareToIdentify(N(N({},e),{resources:c,sourceType:"raster",event:t}))),e})),this._addPromise("select",m),[2,m]):(this._emitStatusEvent("ngw:select",null),[2])):(this._emitStatusEvent("ngw:select",null),[2])}}))}))},S.prototype._prepareToIdentify=function(t){var e=this;return N(N({},t),{getIdentifyItems:function(){return y(t,!0).map((function(t){return d({feature:t.feature,connector:e.connector})}))}})},S.prototype._getSelectListenersCount=function(){return this.emitter.listenerCount("ngw:select")},S.prototype._whiteLabel=function(){return O(this,void 0,void 0,(function(){var t,e;return F(this,(function(r){switch(r.label){case 0:return(t=this.getContainer())?[4,w(this.connector,this.options.companyLogoOptions)]:[3,2];case 1:(e=r.sent())&&t.appendChild(e),r.label=2;case 2:return[2]}}))}))},S.getIcon=b,S}(s);function R(t){return O(this,void 0,void 0,(function(){return F(this,(function(e){return[2,new S(t).onLoad()]}))}))}export{S as NgwMap,R as createNgwMap};
|
|
1
|
+
import{EventEmitter as t}from"events";import e from"@nextgis/cancelable-promise";import{deepmerge as r,isObject as n,defined as o,deprecatedWarn as i}from"@nextgis/utils";import{WebMap as s}from"@nextgis/webmap";export*from"@nextgis/webmap";import{NgwKit as a,fetchNgwLayerItem as c,fetchNgwLayerItems as u,fetchNgwLayerFeature as l,fetchNgwLayerFeatureCollection as p,fetchIdentifyItem as h,fetchIdentifyGeoJson as f,getIdentifyItems as y,createIdentifyItem as d,createNgwLayerAdapter as m,sendIdentifyRequest as g,getCompanyLogo as w,fetchNgwResourceExtent as v}from"@nextgis/ngw-kit";import{getIcon as b}from"@nextgis/icons";import L from"@nextgis/ngw-connector";import{QmsKit as _}from"@nextgis/qms-kit";var I=function(t,e){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},I(t,e)};var N=function(){return N=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},N.apply(this,arguments)};function O(t,e,r,n){return new(r||(r=Promise))((function(o,i){function s(t){try{c(n.next(t))}catch(e){i(e)}}function a(t){try{c(n.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}c((n=n.apply(t,e||[])).next())}))}function F(t,e){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=e.call(t,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 x(t,e,r,n){if("number"==typeof e||"string"==typeof e)e=Number(e),t.push(N(N({},r),{resource:e}));else if(Array.isArray(e)){var o=e[0],i=e[1];t.push(N(N(N({},r),{resource:o,id:i}),n))}else"object"==typeof e&&t.push(N(N(N({},r),e),n))}var $={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 S=function(s){function S(e){var n=s.call(this,function(t){var e=[new _];return t.starterKits&&t.starterKits.forEach((function(t){e.push(t)})),t.connector?t.connector&&(t.baseUrl=t.connector.options.baseUrl):t.connector=new L({baseUrl:t.baseUrl||"",auth:t.auth}),(t=r($,t)).center||t.bounds||(t.bounds=[-179,-90,180,90]),t.connector&&e.push(new a({connector:t.connector,auth:t.auth})),N(N({},t),{starterKits:e,create:!1})}(e))||this;return n.emitter=new t,n._ngwLayers={},n._promises={select:[],identify:[]},e.connector&&(n.connector=e.connector),n._createWebMap().then((function(){var t=n.getContainer();t&&t.classList.add("ngw-map-container"),n.options.whitlabel&&n._whiteLabel()})),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}I(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}(S,s),S.prototype.addControl=function(t,e,r){return O(this,void 0,void 0,(function(){return F(this,(function(n){switch(n.label){case 0:return[4,this.onLoad("controls:create")];case 1:return n.sent(),[2,s.prototype.addControl.call(this,t,e,r)]}}))}))},S.prototype.addNgwLayer=function(t){return O(this,void 0,void 0,(function(){var e,r,s,a,c,u,l,p,h;return F(this,(function(f){switch(f.label){case 0:return[4,this.onMapLoad()];case 1:if(f.sent(),r=t.resourceId,((e=t.keyname)||void 0!==r)&&i("set `resource` options instead of `keyname` or `resourceId`"),s=t.resource,!e&&!r&&!s)throw new Error("resource, resourceId or keyname is required parameter to add NGW layer");if(!o(this.options.baseUrl))return[3,5];f.label=2;case 2:return f.trys.push([2,4,,5]),o(this.options.setViewDelay)&&(t.adapterOptions=t.adapterOptions||{},o(t.adapterOptions.setViewDelay)||(t.adapterOptions.setViewDelay=this.options.setViewDelay)),a=m(t,this,this.connector),c=N(N({visibility:!0},t),t.adapterOptions),[4,this.addLayer(a,c)];case 3:return u=f.sent(),l=u&&this.getLayerId(u),u&&l&&(this._ngwLayers[l]={layer:u,resourceId:u.resourceId},u.options.name=u.options.name||u.item&&u.item.resource.display_name,u.options.baselayer&&this.getActiveBaseLayer()),[2,u];case 4:return p=f.sent(),h=n(s)&&"id"in s?s.id:e||r||s,console.error("Can't add NGW layer ".concat(h,"."),p),[3,5];case 5:return[2]}}))}))},S.prototype.fit=function(){var t=this.options,e=t.center,r=t.zoom,n=t.bounds;e?(this.setCenter(e),r&&this.setZoom(r)):n&&this.fitBounds(n)},S.prototype.fetchNgwLayerItem=function(t){return c(N({connector:this.connector},t))},S.prototype.fetchNgwLayerItems=function(t){return u(N({connector:this.connector},t))},S.prototype.fetchNgwLayerFeature=function(t){return l(N({connector:this.connector},t))},S.prototype.fetchNgwLayerFeatures=function(t){return p(N({connector:this.connector},t))},S.prototype.fetchIdentifyItem=function(t,e){var r=h({identify:t,connector:this.connector,requestOptions:e});return this._addPromise("identify",r),r},S.prototype.fetchIdentifyGeoJson=function(t,r){void 0===r&&(r=!1);var n=f({identify:t,connector:this.connector,multiple:r});return n&&"then"in n?(this._addPromise("identify",n),n):e.resolve(n)},S.prototype.getIdentifyGeoJson=function(t,e){return void 0===e&&(e=!1),this.fetchIdentifyGeoJson(t,e)},S.prototype.getNgwLayers=function(){return O(this,void 0,void 0,(function(){return F(this,(function(t){switch(t.label){case 0:return[4,this.onLoad()];case 1:return t.sent(),[2,this._ngwLayers]}}))}))},S.prototype.getNgwLayerByResourceId=function(t){return O(this,void 0,void 0,(function(){var e,r,n,o,i,s,a;return F(this,(function(c){switch(c.label){case 0:for(r in e=[],this._ngwLayers)e.push(r);n=0,c.label=1;case 1:return n<e.length?(o=this._ngwLayers[e[n]]).resourceId!==t?[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(e){return e===t})))return[2,o.layer];c.label=4;case 4:if(o.layer.getDependLayers&&(s=o.layer.getDependLayers(),a=s.find((function(e){return e.item&&e.item.parentId===t}))))return[2,a.layer];c.label=5;case 5:return n++,[3,1];case 6:return[2]}}))}))},S.prototype.fitLayer=function(t,e){return O(this,void 0,void 0,(function(){var r,n,o,i,a=this;return F(this,(function(c){switch(c.label){case 0:return r="string"==typeof t||"number"==typeof t?String(r):t.id,(n=r&&this._ngwLayers[r])?n.layer.getBounds?[4,n.layer.getBounds()]:[3,2]:[3,7];case 1:return(o=c.sent())&&this.fitBounds(o,e),[3,6];case 2:return i=void 0,n.layer.item?(i=n.layer.item,[3,5]):[3,3];case 3:return[4,this.connector.getResource(n.resourceId)];case 4:i=c.sent(),c.label=5;case 5:i&&v(i,this.connector).then((function(t){t&&a.fitBounds(t,e)})),c.label=6;case 6:return[3,8];case 7:s.prototype.fitLayer.call(this,t,e),c.label=8;case 8:return[2]}}))}))},S.prototype.zoomToLayer=function(t){return O(this,void 0,void 0,(function(){return F(this,(function(e){return[2,this.fitLayer(t)]}))}))},S.prototype.onLoad=function(t){return void 0===t&&(t="ngw-map:create"),s.prototype.onLoad.call(this,t)},S.prototype.removeLayer=function(t){var e=this.getLayer(t);if(e){var r=this.getLayerId(e);r&&delete this._ngwLayers[r],s.prototype.removeLayer.call(this,e)}},S.prototype.enableSelection=function(){var t=this;this.$$selectFromNgwRaster||(this.$$selectFromNgwRaster=function(e){t._getSelectListenersCount()&&t._selectFromNgwRaster(e)},this.$$selectFromNgwVector=function(e){t._getSelectListenersCount()&&t._selectFromNgwVector(e)},this.emitter.on("click",this.$$selectFromNgwRaster),this.emitter.on("layer:click",this.$$selectFromNgwVector))},S.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)},S.prototype.getNgwLayerItem=function(t){return this.fetchNgwLayerItem(t)},S.prototype.getNgwLayerItems=function(t){return this.fetchNgwLayerItems(t)},S.prototype.getNgwLayerFeature=function(t){return this.fetchNgwLayerFeature(t)},S.prototype.getNgwLayerFeatures=function(t){return this.fetchNgwLayerFeatures(t)},S.prototype.cancelPromise=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.cancelPromises.apply(this,t)},S.prototype.cancelPromises=function(){for(var t=this,e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];e.length||(e=Object.keys(this._promises)),e.forEach((function(e){var r=t._promises[e];r&&(r.forEach((function(t){return t.cancel()})),t._promises[e]=[])}))},S.prototype._addPromise=function(t,e){var r=this._promises[t];if(r&&-1===r.indexOf(e)){var n=function(){var t=r.indexOf(e);-1!==t&&r.splice(t,1)};e.then(n),e.catch(n),r.push(e)}},S.prototype._isFitFromResource=function(){var t=this._initMapState;return!t.zoom||!t.center},S.prototype._createWebMap=function(){return O(this,void 0,void 0,(function(){var t,e,r,n,o,i,s,a,c,u;return F(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(),t=[],e=this._isFitFromResource(),this.options.webmapId&&x(t,this.options.webmapId,{fit:e}),this.options.resources&&Array.isArray(this.options.resources))for(r=0,n=this.options.resources;r<n.length;r++)o=n[r],i={},e||(i.fit=!1),x(t,o,{},i);s=0,a=t,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]}}))}))},S.prototype._addOsmBaseLayer=function(){this.addBaseLayer("OSM")},S.prototype._addQmsBaseLayer=function(){var t,e;Array.isArray(this.options.qmsId)?(t=this.options.qmsId[0],e=this.options.qmsId[1]):t=Number(this.options.qmsId);var r={qmsId:t};e&&(r.id=e),this.addBaseLayer("QMS",r)},S.prototype._selectFromNgwVector=function(t){var e,r=t.layer;if(r.options.selectable&&this.isLayerVisible(r)){var n=r.item&&r.item.resource.id,o=t.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=((e={featureCount:1})[n]={featureCount:1,features:[s]},e);return this._emitStatusEvent("ngw:select",this._prepareToIdentify(N(N({},a),{resources:[n],sourceType:"vector"}))),a}}}},S.prototype._selectFromNgwRaster=function(t){return O(this,void 0,void 0,(function(){var e,r,n,o,i,s,a,c,u,l,p,h,f,y,d,m,w=this;return F(this,(function(v){switch(v.label){case 0:for(this._emitStatusEvent("ngw:preselect"),e=[],(r=Object.values(this._ngwLayers)).sort((function(t,e){return t.layer.order&&e.layer.order?e.layer.order-t.layer.order:1})),n=0,o=r;n<o.length;n++)(s="function"==typeof(i=o[n].layer).getIdentificationIds&&i.getIdentificationIds)&&i.options.selectable&&this.isLayerVisible(i)&&e.push(s.call(i));return[4,Promise.all(e)];case 1:for(a=v.sent(),c=[],u=0,l=a;u<l.length;u++)(p=l[u])&&c.push.apply(c,p);return c.length?(h=this.options.pixelRadius||10,f=this.getCenter(),y=void 0!==(y=this.getZoom())?y:20,f&&y?(d=function(t,e,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*t[1]/Math.PI))/Math.pow(2,e+8))*5e-4}(f,y,h),m=g(t,{layers:c,connector:this.connector,radius:d}).then((function(e){return w._emitStatusEvent("ngw:select",w._prepareToIdentify(N(N({},e),{resources:c,sourceType:"raster",event:t}))),e})),this._addPromise("select",m),[2,m]):(this._emitStatusEvent("ngw:select",null),[2])):(this._emitStatusEvent("ngw:select",null),[2])}}))}))},S.prototype._prepareToIdentify=function(t){var e=this;return N(N({},t),{getIdentifyItems:function(){return y(t,!0).map((function(t){return d({feature:t.feature,connector:e.connector})}))}})},S.prototype._getSelectListenersCount=function(){return this.emitter.listenerCount("ngw:select")},S.prototype._whiteLabel=function(){return O(this,void 0,void 0,(function(){var t,e;return F(this,(function(r){switch(r.label){case 0:return(t=this.getContainer())?[4,w(this.connector,this.options.companyLogoOptions)]:[3,2];case 1:(e=r.sent())&&t.appendChild(e),r.label=2;case 2:return[2]}}))}))},S.getIcon=b,S}(s);function R(t){return O(this,void 0,void 0,(function(){return F(this,(function(e){return[2,new S(t).onLoad()]}))}))}export{S as NgwMap,R as createNgwMap};
|
|
16
2
|
//# sourceMappingURL=ngw-map.esm-bundler.prod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngw-map.esm-bundler.prod.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/NgwMap.ts","../src/utils/getIentifyRadius.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 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","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","/**\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":["appendNgwResources","options","resource","defOptions","overwriteOptions","Number","push","Array","isArray","resourceId","id","OPTIONS","target","baseUrl","whitlabel","controls","controlsOptions","ZOOM","position","ATTRIBUTION","customAttribution","pixelRadius","_super","kits","QmsKit","starterKits","forEach","x","connector","NgwConnector","auth","deepmerge","center","bounds","NgwKit","create","prepareWebMapOptions","_this","EventEmitter","select","identify","_createWebMap","then","container","getContainer","classList","add","_whiteLabel","__extends","NgwMap","controlDef","this","onLoad","_a","addControl","onMapLoad","keyname","undefined","deprecatedWarn","Error","defined","setViewDelay","adapterOptions","adapter","createNgwLayerAdapter","adapterOpts","__assign","visibility","addLayer","layer","getLayerId","_ngwLayers","name","item","display_name","baselayer","getActiveBaseLayer","resId","isObject","console","error","er_1","zoom","setCenter","setZoom","fitBounds","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatureCollection","requestOptions","promise","fetchIdentifyItem","_addPromise","multiple","fetchIdentifyGeoJson","CancelablePromise","resolve","mem","getIdentificationIds","ids","_c","some","getDependLayers","dependLayers","dependFit","find","parentId","layerDef","String","ngwLayer","getBounds","getResource","fetchNgwResourceExtent","extent","fitLayer","event","getLayer","layerId","removeLayer","$$selectFromNgwRaster","ev","_getSelectListenersCount","_selectFromNgwRaster","$$selectFromNgwVector","_selectFromNgwVector","emitter","on","removeListener","fetchNgwLayerFeatures","_i","args","cancelPromises","length","Object","keys","_promises","group","cancel","groupName","indexOf","removeFromGroup","index","splice","catch","params","_initMapState","qmsId","_addQmsBaseLayer","osm","_addOsmBaseLayer","resources","layerFitAllowed","_isFitFromResource","webmapId","fit","resources_1","_b","r","addNgwLayer","warn","er_2","_emitStatusEvent","enableSelection","addBaseLayer","qmsLayerName","qmsLayerOptions","selectable","isLayerVisible","feature","featureId","identifyFeature","fields","properties","label","parent","geom","geometry","featureCount","features","_prepareToIdentify","sourceType","promises","layers","values","sort","a","b","order","layers_1","identFunc","call","Promise","all","getIds","getIds_1","getCenter","getZoom","radius","Math","abs","cos","PI","pow","getIdentifyRadius","selectPromise","sendIdentifyRequest","resp","getIdentifyItems","map","createIdentifyItem","listenerCount","getCompanyLogo","companyLogoOptions","logo","appendChild","getIcon","WebMap","createNgwMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngw-map.esm-bundler.prod.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/NgwMap.ts","../src/utils/getIentifyRadius.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 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","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","/**\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":["appendNgwResources","options","resource","defOptions","overwriteOptions","Number","push","__assign","Array","isArray","resourceId","id","OPTIONS","target","baseUrl","whitlabel","controls","controlsOptions","ZOOM","position","ATTRIBUTION","customAttribution","pixelRadius","NgwMap","_super","_this","kits","QmsKit","starterKits","forEach","x","connector","NgwConnector","auth","deepmerge","center","bounds","NgwKit","create","prepareWebMapOptions","this","emitter","EventEmitter","_ngwLayers","_promises","select","identify","_createWebMap","then","container","getContainer","classList","add","_whiteLabel","__extends","prototype","addControl","controlDef","onLoad","_a","sent","call","addNgwLayer","onMapLoad","keyname","undefined","deprecatedWarn","Error","defined","setViewDelay","adapterOptions","adapter","createNgwLayerAdapter","adapterOpts","visibility","addLayer","layer","getLayerId","name","item","display_name","baselayer","getActiveBaseLayer","resId","isObject","console","error","concat","er_1","fit","zoom","setCenter","setZoom","fitBounds","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatures","fetchNgwLayerFeatureCollection","fetchIdentifyItem","requestOptions","promise","_addPromise","fetchIdentifyGeoJson","multiple","CancelablePromise","resolve","getIdentifyGeoJson","getNgwLayers","getNgwLayerByResourceId","_b","mem","getIdentificationIds","ids","_c","some","getDependLayers","dependLayers","dependFit","find","parentId","fitLayer","layerDef","String","ngwLayer","getBounds","getResource","fetchNgwResourceExtent","extent","zoomToLayer","event","removeLayer","getLayer","layerId","enableSelection","$$selectFromNgwRaster","ev","_getSelectListenersCount","_selectFromNgwRaster","$$selectFromNgwVector","_selectFromNgwVector","on","disableSelection","removeListener","getNgwLayerItem","getNgwLayerItems","getNgwLayerFeature","getNgwLayerFeatures","cancelPromise","args","_i","arguments","length","cancelPromises","apply","Object","keys","group","cancel","groupName","indexOf","removeFromGroup","index","splice","catch","_isFitFromResource","params","_initMapState","qmsId","_addQmsBaseLayer","osm","_addOsmBaseLayer","resources","layerFitAllowed","webmapId","resources_1","r","warn","er_2","_emitStatusEvent","addBaseLayer","qmsLayerName","qmsLayerOptions","selectable","isLayerVisible","feature","featureId","identifyFeature","fields","properties","label","parent","geom","geometry","featureCount","features","_prepareToIdentify","sourceType","promises","layers","values","sort","a","b","order","layers_1","identFunc","Promise","all","getIds","getIds_1","getCenter","getZoom","radius","Math","abs","cos","PI","pow","getIdentifyRadius","selectPromise","sendIdentifyRequest","resp","getIdentifyItems","map","createIdentifyItem","listenerCount","getCompanyLogo","companyLogoOptions","logo","appendChild","getIcon","WebMap","createNgwMap"],"mappings":"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"}
|
package/lib/ngw-map.global.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/** Bundle of @nextgis/ngw-map; version: 1.
|
|
1
|
+
/** Bundle of @nextgis/ngw-map; version: 1.15.0; author: NextGIS */
|
|
2
2
|
var NgwMap = (function (exports) {
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
/******************************************************************************
|
|
6
6
|
Copyright (c) Microsoft Corporation.
|
|
7
7
|
|
|
8
8
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -4440,6 +4440,29 @@ var NgwMap = (function (exports) {
|
|
|
4440
4440
|
return _this._getChildrenOf(parent, requestOptions);
|
|
4441
4441
|
});
|
|
4442
4442
|
};
|
|
4443
|
+
ResourcesControl.prototype.update = function (resource, data) {
|
|
4444
|
+
var _this = this;
|
|
4445
|
+
return this.getId(resource).then(function (id) {
|
|
4446
|
+
if (id !== undefined) {
|
|
4447
|
+
return _this.connector.put('resource.item', { data: data }, { id: id });
|
|
4448
|
+
}
|
|
4449
|
+
});
|
|
4450
|
+
};
|
|
4451
|
+
/**
|
|
4452
|
+
* Fast way to delete resource from NGW and clean cache.
|
|
4453
|
+
* @param resource - Resource definition
|
|
4454
|
+
*/
|
|
4455
|
+
ResourcesControl.prototype.delete = function (resource) {
|
|
4456
|
+
var _this = this;
|
|
4457
|
+
return this.getId(resource).then(function (id) {
|
|
4458
|
+
if (id !== undefined) {
|
|
4459
|
+
return _this.connector.delete('resource.item', null, { id: id }).then(function () {
|
|
4460
|
+
_this._cleanResourceItemCache(id);
|
|
4461
|
+
return undefined;
|
|
4462
|
+
});
|
|
4463
|
+
}
|
|
4464
|
+
});
|
|
4465
|
+
};
|
|
4443
4466
|
ResourcesControl.prototype._getChildrenOf = function (parent, requestOptions, _items) {
|
|
4444
4467
|
var _this = this;
|
|
4445
4468
|
if (_items === void 0) { _items = []; }
|
|
@@ -4467,29 +4490,6 @@ var NgwMap = (function (exports) {
|
|
|
4467
4490
|
return _items;
|
|
4468
4491
|
});
|
|
4469
4492
|
};
|
|
4470
|
-
ResourcesControl.prototype.update = function (resource, data) {
|
|
4471
|
-
var _this = this;
|
|
4472
|
-
return this.getId(resource).then(function (id) {
|
|
4473
|
-
if (id !== undefined) {
|
|
4474
|
-
return _this.connector.put('resource.item', { data: data }, { id: id });
|
|
4475
|
-
}
|
|
4476
|
-
});
|
|
4477
|
-
};
|
|
4478
|
-
/**
|
|
4479
|
-
* Fast way to delete resource from NGW and clean cache.
|
|
4480
|
-
* @param resource - Resource definition
|
|
4481
|
-
*/
|
|
4482
|
-
ResourcesControl.prototype.delete = function (resource) {
|
|
4483
|
-
var _this = this;
|
|
4484
|
-
return this.getId(resource).then(function (id) {
|
|
4485
|
-
if (id !== undefined) {
|
|
4486
|
-
return _this.connector.delete('resource.item', null, { id: id }).then(function () {
|
|
4487
|
-
_this._cleanResourceItemCache(id);
|
|
4488
|
-
return undefined;
|
|
4489
|
-
});
|
|
4490
|
-
}
|
|
4491
|
-
});
|
|
4492
|
-
};
|
|
4493
4493
|
ResourcesControl.prototype._cleanResourceItemCache = function (id) {
|
|
4494
4494
|
return __awaiter(this, void 0, void 0, function () {
|
|
4495
4495
|
var all, toDelete, _i, all_1, c, cid, rid, _a, toDelete_1, d;
|
|
@@ -7787,10 +7787,8 @@ var NgwMap = (function (exports) {
|
|
|
7787
7787
|
var A = /** @class */ (function (_super) {
|
|
7788
7788
|
__extends(A, _super);
|
|
7789
7789
|
function A(map, options) {
|
|
7790
|
-
var _this = this;
|
|
7791
7790
|
options = __assign(__assign({}, opt), options);
|
|
7792
|
-
|
|
7793
|
-
return _this;
|
|
7791
|
+
return _super.call(this, map, options) || this;
|
|
7794
7792
|
}
|
|
7795
7793
|
return A;
|
|
7796
7794
|
}(NgwWebmapLayerAdapter));
|