@nextgis/ngw-map 1.11.8 → 1.12.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/README.md +3 -1
- package/lib/ngw-map.cjs.js +547 -371
- 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 +4302 -3319
- package/lib/ngw-map.esm-browser.js.map +1 -1
- package/lib/ngw-map.esm-browser.prod.js +15 -1
- package/lib/ngw-map.esm-browser.prod.js.map +1 -1
- package/lib/ngw-map.esm-bundler.js +548 -372
- package/lib/ngw-map.esm-bundler.js.map +1 -1
- package/lib/ngw-map.esm-bundler.prod.js +15 -1
- package/lib/ngw-map.esm-bundler.prod.js.map +1 -1
- package/lib/ngw-map.global.js +144 -91
- package/lib/ngw-map.global.js.map +1 -1
- package/lib/ngw-map.global.prod.js +1 -1
- package/lib/ngw-map.global.prod.js.map +1 -1
- package/package.json +9 -9
package/lib/ngw-map.global.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Bundle of @nextgis/ngw-map; version: 1.
|
|
1
|
+
/** Bundle of @nextgis/ngw-map; version: 1.12.0; author: NextGIS */
|
|
2
2
|
var NgwMap = (function (exports) {
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
@@ -2681,6 +2681,9 @@ var NgwMap = (function (exports) {
|
|
|
2681
2681
|
_c.sent();
|
|
2682
2682
|
_c.label = 11;
|
|
2683
2683
|
case 11:
|
|
2684
|
+
if (options.onAdded) {
|
|
2685
|
+
options.onAdded(_adapter);
|
|
2686
|
+
}
|
|
2684
2687
|
this._emitLayerEvent('layer:add', layerId, _adapter);
|
|
2685
2688
|
return [2 /*return*/, _adapter];
|
|
2686
2689
|
case 12: return [2 /*return*/, Promise.reject('No adapter')];
|
|
@@ -2821,8 +2824,15 @@ var NgwMap = (function (exports) {
|
|
|
2821
2824
|
WebMapLayers.prototype.addTileLayer = function (url, options) {
|
|
2822
2825
|
return this.addLayer('TILE', __assign(__assign({}, options), { url: url }));
|
|
2823
2826
|
};
|
|
2824
|
-
|
|
2825
|
-
|
|
2827
|
+
WebMapLayers.prototype.addImageLayer = function (urlOrOptions, options) {
|
|
2828
|
+
var url;
|
|
2829
|
+
if (typeof urlOrOptions === 'string') {
|
|
2830
|
+
url = urlOrOptions;
|
|
2831
|
+
}
|
|
2832
|
+
else {
|
|
2833
|
+
url = urlOrOptions.url;
|
|
2834
|
+
options = urlOrOptions;
|
|
2835
|
+
}
|
|
2826
2836
|
return this.addLayer('IMAGE', __assign(__assign({}, options), { url: url }));
|
|
2827
2837
|
};
|
|
2828
2838
|
/**
|
|
@@ -5167,10 +5177,10 @@ var NgwMap = (function (exports) {
|
|
|
5167
5177
|
function createGeoJsonFeature(item) {
|
|
5168
5178
|
var geometry = item.geom;
|
|
5169
5179
|
var feature = {
|
|
5180
|
+
geometry: geometry,
|
|
5170
5181
|
id: item.id,
|
|
5171
5182
|
type: 'Feature',
|
|
5172
5183
|
properties: item.fields,
|
|
5173
|
-
geometry: geometry,
|
|
5174
5184
|
};
|
|
5175
5185
|
return feature;
|
|
5176
5186
|
}
|
|
@@ -5193,68 +5203,85 @@ var NgwMap = (function (exports) {
|
|
|
5193
5203
|
}
|
|
5194
5204
|
// NGW REST API is not able to filtering by combined queries
|
|
5195
5205
|
// therefore the filter is divided into several requests
|
|
5196
|
-
function createFeatureFieldFilterQueries(opt
|
|
5206
|
+
function createFeatureFieldFilterQueries(opt) {
|
|
5207
|
+
var queries = getQueries(opt);
|
|
5208
|
+
return CancelablePromise.all(queries).then(function (itemsParts) {
|
|
5209
|
+
// this list of ids used for optimization
|
|
5210
|
+
var ids = [];
|
|
5211
|
+
var items = [];
|
|
5212
|
+
for (var _i = 0, itemsParts_1 = itemsParts; _i < itemsParts_1.length; _i++) {
|
|
5213
|
+
var part = itemsParts_1[_i];
|
|
5214
|
+
for (var _a = 0, part_1 = part; _a < part_1.length; _a++) {
|
|
5215
|
+
var item = part_1[_a];
|
|
5216
|
+
if (!ids.includes(item.id)) {
|
|
5217
|
+
items.push(item);
|
|
5218
|
+
ids.push(item.id);
|
|
5219
|
+
}
|
|
5220
|
+
}
|
|
5221
|
+
}
|
|
5222
|
+
var offset = opt.offset !== undefined ? opt.offset : 0;
|
|
5223
|
+
var limit = opt.limit !== undefined ? opt.limit : items.length;
|
|
5224
|
+
if (opt.offset || opt.limit) {
|
|
5225
|
+
return items.splice(offset, limit);
|
|
5226
|
+
}
|
|
5227
|
+
return items;
|
|
5228
|
+
});
|
|
5229
|
+
}
|
|
5230
|
+
function createParam(pf) {
|
|
5231
|
+
var field = pf[0], operation = pf[1], value = pf[2];
|
|
5232
|
+
var isFldStr = field !== 'id' ? 'fld_' : '';
|
|
5233
|
+
var vStart = '';
|
|
5234
|
+
var vEnd = '';
|
|
5235
|
+
var field_ = String(field)
|
|
5236
|
+
.trim()
|
|
5237
|
+
.replace(/^(%?)(.+?)(%?)$/, function (m, a, b, c) {
|
|
5238
|
+
vStart = a;
|
|
5239
|
+
vEnd = c;
|
|
5240
|
+
return b;
|
|
5241
|
+
});
|
|
5242
|
+
var v = vStart + value + vEnd;
|
|
5243
|
+
return ["".concat(isFldStr).concat(field_, "__").concat(operation), v];
|
|
5244
|
+
}
|
|
5245
|
+
function getQueries(opt, _queries, _parentAllParams) {
|
|
5197
5246
|
if (_queries === void 0) { _queries = []; }
|
|
5198
5247
|
if (_parentAllParams === void 0) { _parentAllParams = []; }
|
|
5199
5248
|
var filters = opt.filters;
|
|
5200
5249
|
var logic = typeof filters[0] === 'string' ? filters[0] : 'all';
|
|
5201
5250
|
var filters_ = filters.filter(function (x) { return Array.isArray(x); });
|
|
5202
|
-
var createParam = function (pf) {
|
|
5203
|
-
var field = pf[0], operation = pf[1], value = pf[2];
|
|
5204
|
-
var isFldStr = field !== 'id' ? 'fld_' : '';
|
|
5205
|
-
var vStart = '';
|
|
5206
|
-
var vEnd = '';
|
|
5207
|
-
var field_ = String(field)
|
|
5208
|
-
.trim()
|
|
5209
|
-
.replace(/^(%?)(.+?)(%?)$/, function (m, a, b, c) {
|
|
5210
|
-
vStart = a;
|
|
5211
|
-
vEnd = c;
|
|
5212
|
-
return b;
|
|
5213
|
-
});
|
|
5214
|
-
var v = vStart + value + vEnd;
|
|
5215
|
-
return ["".concat(isFldStr).concat(field_, "__").concat(operation), v];
|
|
5216
|
-
};
|
|
5217
5251
|
if (logic === 'any') {
|
|
5218
|
-
filters_.
|
|
5252
|
+
for (var _i = 0, filters_1 = filters_; _i < filters_1.length; _i++) {
|
|
5253
|
+
var f = filters_1[_i];
|
|
5219
5254
|
if (isPropertyFilter(f)) {
|
|
5220
5255
|
_queries.push(fetchNgwLayerItemsRequest(__assign(__assign({}, opt), { paramList: __spreadArray(__spreadArray([], _parentAllParams, true), [createParam(f)], false) })));
|
|
5221
5256
|
}
|
|
5222
5257
|
else {
|
|
5223
|
-
|
|
5258
|
+
getQueries(__assign(__assign({}, opt), { filters: f }), _queries, __spreadArray([], _parentAllParams, true));
|
|
5224
5259
|
}
|
|
5225
|
-
}
|
|
5260
|
+
}
|
|
5226
5261
|
}
|
|
5227
5262
|
else if (logic === 'all') {
|
|
5228
|
-
var
|
|
5263
|
+
var filters_3 = [];
|
|
5229
5264
|
var propertiesFilterList = [];
|
|
5230
|
-
for (var
|
|
5231
|
-
var f =
|
|
5265
|
+
for (var _a = 0, filters_2 = filters_; _a < filters_2.length; _a++) {
|
|
5266
|
+
var f = filters_2[_a];
|
|
5232
5267
|
if (isPropertyFilter(f)) {
|
|
5233
|
-
|
|
5268
|
+
filters_3.push(createParam(f));
|
|
5234
5269
|
}
|
|
5235
5270
|
else {
|
|
5236
5271
|
propertiesFilterList.push(f);
|
|
5237
5272
|
}
|
|
5238
5273
|
}
|
|
5239
5274
|
if (propertiesFilterList.length) {
|
|
5240
|
-
for (var
|
|
5241
|
-
var x = propertiesFilterList_1[
|
|
5242
|
-
|
|
5275
|
+
for (var _b = 0, propertiesFilterList_1 = propertiesFilterList; _b < propertiesFilterList_1.length; _b++) {
|
|
5276
|
+
var x = propertiesFilterList_1[_b];
|
|
5277
|
+
getQueries(__assign(__assign({}, opt), { filters: x }), _queries, __spreadArray(__spreadArray([], _parentAllParams, true), filters_3, true));
|
|
5243
5278
|
}
|
|
5244
5279
|
}
|
|
5245
5280
|
else {
|
|
5246
|
-
_queries.push(fetchNgwLayerItemsRequest(__assign(__assign({}, opt), { paramList: __spreadArray(__spreadArray([], _parentAllParams, true),
|
|
5281
|
+
_queries.push(fetchNgwLayerItemsRequest(__assign(__assign({}, opt), { paramList: __spreadArray(__spreadArray([], _parentAllParams, true), filters_3, true) })));
|
|
5247
5282
|
}
|
|
5248
5283
|
}
|
|
5249
|
-
return
|
|
5250
|
-
var items = itemsParts.reduce(function (a, b) { return a.concat(b); }, []);
|
|
5251
|
-
var offset = opt.offset !== undefined ? opt.offset : 0;
|
|
5252
|
-
var limit = opt.limit !== undefined ? opt.limit : items.length;
|
|
5253
|
-
if (opt.offset || opt.limit) {
|
|
5254
|
-
return items.splice(offset, limit);
|
|
5255
|
-
}
|
|
5256
|
-
return items;
|
|
5257
|
-
});
|
|
5284
|
+
return _queries;
|
|
5258
5285
|
}
|
|
5259
5286
|
function createWktFromCoordArray(coord) {
|
|
5260
5287
|
var polygon = coord.map(function (_a) {
|
|
@@ -5266,7 +5293,7 @@ var NgwMap = (function (exports) {
|
|
|
5266
5293
|
}
|
|
5267
5294
|
function fetchNgwLayerItemsRequest(options) {
|
|
5268
5295
|
var params = __assign({}, FEATURE_REQUEST_PARAMS);
|
|
5269
|
-
var
|
|
5296
|
+
var limit = options.limit, offset = options.offset, orderBy = options.orderBy, paramList = options.paramList, connector = options.connector, intersects = options.intersects, resourceId = options.resourceId;
|
|
5270
5297
|
if (limit) {
|
|
5271
5298
|
if (limit !== Number.POSITIVE_INFINITY) {
|
|
5272
5299
|
params.limit = limit;
|
|
@@ -5279,7 +5306,6 @@ var NgwMap = (function (exports) {
|
|
|
5279
5306
|
if (offset) {
|
|
5280
5307
|
params.offset = offset;
|
|
5281
5308
|
}
|
|
5282
|
-
// TODO: fix type for options
|
|
5283
5309
|
updateItemRequestParam(params, options);
|
|
5284
5310
|
if (orderBy) {
|
|
5285
5311
|
params.order_by = orderBy.join(',');
|
|
@@ -5331,12 +5357,16 @@ var NgwMap = (function (exports) {
|
|
|
5331
5357
|
var filters = options.filters;
|
|
5332
5358
|
if (filters) {
|
|
5333
5359
|
return createFeatureFieldFilterQueries(__assign(__assign({}, options), { filters: filters })).then(function (data) {
|
|
5360
|
+
var _a;
|
|
5361
|
+
var clientFilterValidate = (_a = options.clientFilterValidate) !== null && _a !== void 0 ? _a : true;
|
|
5334
5362
|
// Additional client-side filter check
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5363
|
+
if (clientFilterValidate) {
|
|
5364
|
+
data = data.filter(function (y) {
|
|
5365
|
+
var fields = prepareNgwFieldsToPropertiesFilter(__assign(__assign({}, y.fields), { id: y.id }));
|
|
5366
|
+
var result = propertiesFilter(fields, filters);
|
|
5367
|
+
return result;
|
|
5368
|
+
});
|
|
5369
|
+
}
|
|
5340
5370
|
return data;
|
|
5341
5371
|
});
|
|
5342
5372
|
}
|
|
@@ -5695,6 +5725,26 @@ var NgwMap = (function (exports) {
|
|
|
5695
5725
|
});
|
|
5696
5726
|
}
|
|
5697
5727
|
|
|
5728
|
+
function getImageAdapterOptions(_a) {
|
|
5729
|
+
var resourceId = _a.resourceId, baseUrl = _a.baseUrl, nd = _a.nd, headers = _a.headers;
|
|
5730
|
+
var url = baseUrl + '/api/component/render/image';
|
|
5731
|
+
var params = { resource: resourceId };
|
|
5732
|
+
if (nd) {
|
|
5733
|
+
params.nd = nd;
|
|
5734
|
+
}
|
|
5735
|
+
return {
|
|
5736
|
+
url: url,
|
|
5737
|
+
resourceId: resourceId,
|
|
5738
|
+
headers: headers,
|
|
5739
|
+
params: params,
|
|
5740
|
+
updateWmsParams: function (params_) {
|
|
5741
|
+
if (nd) {
|
|
5742
|
+
params_.nd = nd;
|
|
5743
|
+
}
|
|
5744
|
+
return updateImageParams(params_, resourceId);
|
|
5745
|
+
},
|
|
5746
|
+
};
|
|
5747
|
+
}
|
|
5698
5748
|
function ngwApiToAdapterOptions(_a) {
|
|
5699
5749
|
var options = _a.options, webMap = _a.webMap, baseUrl = _a.baseUrl;
|
|
5700
5750
|
var adapter = options.adapter || 'IMAGE';
|
|
@@ -5706,16 +5756,12 @@ var NgwMap = (function (exports) {
|
|
|
5706
5756
|
if (typeof resourceId === 'number') {
|
|
5707
5757
|
if (adapter === 'IMAGE') {
|
|
5708
5758
|
if (isImageAllowed) {
|
|
5709
|
-
|
|
5710
|
-
return {
|
|
5711
|
-
url: url,
|
|
5759
|
+
return getImageAdapterOptions({
|
|
5712
5760
|
resourceId: resourceId,
|
|
5713
5761
|
headers: options.headers,
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
},
|
|
5718
|
-
};
|
|
5762
|
+
nd: nd,
|
|
5763
|
+
baseUrl: baseUrl,
|
|
5764
|
+
});
|
|
5719
5765
|
}
|
|
5720
5766
|
else {
|
|
5721
5767
|
adapter = 'TILE';
|
|
@@ -7130,6 +7176,7 @@ var NgwMap = (function (exports) {
|
|
|
7130
7176
|
NgwWebmapLayerAdapter.prototype._setBasemaps = function (baseWebmap) {
|
|
7131
7177
|
var _this = this;
|
|
7132
7178
|
var webMap = this.options.webMap;
|
|
7179
|
+
// to avoid set many basemaps on init
|
|
7133
7180
|
var enabledAlreadySet = false;
|
|
7134
7181
|
var _loop_1 = function (x) {
|
|
7135
7182
|
createOnFirstShowNgwAdapter({
|
|
@@ -7138,9 +7185,11 @@ var NgwMap = (function (exports) {
|
|
|
7138
7185
|
item: x,
|
|
7139
7186
|
adapterOptions: { crossOrigin: this_1.options.crossOrigin },
|
|
7140
7187
|
}).then(function (adapter) {
|
|
7141
|
-
// to avoid set many basemaps on init
|
|
7142
7188
|
var visibility = enabledAlreadySet ? false : x.enabled;
|
|
7143
|
-
|
|
7189
|
+
if (x.enabled) {
|
|
7190
|
+
enabledAlreadySet = true;
|
|
7191
|
+
}
|
|
7192
|
+
return webMap
|
|
7144
7193
|
.addBaseLayer(adapter, {
|
|
7145
7194
|
id: WEBMAP_BASELAYER_ID_PREFIX + x.resource_id,
|
|
7146
7195
|
name: x.display_name,
|
|
@@ -7150,9 +7199,6 @@ var NgwMap = (function (exports) {
|
|
|
7150
7199
|
.then(function (l) {
|
|
7151
7200
|
l.id && _this._webmapBaselayersIds.push(l.id);
|
|
7152
7201
|
});
|
|
7153
|
-
if (x.enabled) {
|
|
7154
|
-
enabledAlreadySet = true;
|
|
7155
|
-
}
|
|
7156
7202
|
});
|
|
7157
7203
|
};
|
|
7158
7204
|
var this_1 = this;
|
|
@@ -7634,7 +7680,7 @@ var NgwMap = (function (exports) {
|
|
|
7634
7680
|
function updateImageParams(params, resourceId) {
|
|
7635
7681
|
var bbox = params.bbox, width = params.width, height = params.height, nd = params.nd;
|
|
7636
7682
|
return {
|
|
7637
|
-
resource: resourceId,
|
|
7683
|
+
resource: Array.isArray(resourceId) ? resourceId.join(',') : resourceId,
|
|
7638
7684
|
extent: bbox,
|
|
7639
7685
|
size: width + ',' + height,
|
|
7640
7686
|
timestamp: Date.now(),
|
|
@@ -7942,38 +7988,45 @@ var NgwMap = (function (exports) {
|
|
|
7942
7988
|
}
|
|
7943
7989
|
return CancelablePromise.resolve(undefined);
|
|
7944
7990
|
}
|
|
7991
|
+
function featureLayerIdentify(options) {
|
|
7992
|
+
var g = options.geom;
|
|
7993
|
+
var geom = [];
|
|
7994
|
+
if (Array.isArray(g)) {
|
|
7995
|
+
geom = g;
|
|
7996
|
+
}
|
|
7997
|
+
else {
|
|
7998
|
+
var polygon = g.type === 'Feature' ? g.geometry : g.type === 'Polygon' ? g : false;
|
|
7999
|
+
if (polygon) {
|
|
8000
|
+
geom = polygon.coordinates[0];
|
|
8001
|
+
}
|
|
8002
|
+
}
|
|
8003
|
+
if (geom) {
|
|
8004
|
+
// create wkt string
|
|
8005
|
+
var polygonStr = [];
|
|
8006
|
+
for (var _i = 0, geom_1 = geom; _i < geom_1.length; _i++) {
|
|
8007
|
+
var _a = geom_1[_i], lng = _a[0], lat = _a[1];
|
|
8008
|
+
var _b = degrees2meters(lng, lat), x = _b[0], y = _b[1];
|
|
8009
|
+
polygonStr.push(x + ' ' + y);
|
|
8010
|
+
}
|
|
8011
|
+
var wkt = "POLYGON((".concat(polygonStr.join(', '), "))");
|
|
8012
|
+
var layers = options.layers;
|
|
8013
|
+
var data = {
|
|
8014
|
+
geom: wkt,
|
|
8015
|
+
srs: 3857,
|
|
8016
|
+
layers: layers,
|
|
8017
|
+
};
|
|
8018
|
+
return options.connector.post('feature_layer.identify', { data: data });
|
|
8019
|
+
}
|
|
8020
|
+
else {
|
|
8021
|
+
throw new Error('Not valid geometry format to make intersection');
|
|
8022
|
+
}
|
|
8023
|
+
}
|
|
7945
8024
|
function sendIdentifyRequest(ev, options) {
|
|
8025
|
+
var _a;
|
|
7946
8026
|
deprecatedMapClick(ev);
|
|
7947
|
-
var
|
|
7948
|
-
var geom =
|
|
7949
|
-
|
|
7950
|
-
var polygon_1 = options.geom.type === 'Feature'
|
|
7951
|
-
? options.geom.geometry
|
|
7952
|
-
: options.geom.type === 'Polygon'
|
|
7953
|
-
? options.geom
|
|
7954
|
-
: false;
|
|
7955
|
-
if (polygon_1) {
|
|
7956
|
-
geom = polygon_1.coordinates[0];
|
|
7957
|
-
}
|
|
7958
|
-
}
|
|
7959
|
-
if (!geom.length) {
|
|
7960
|
-
geom = getCirclePolygonCoordinates(lng, lat, options.radius);
|
|
7961
|
-
}
|
|
7962
|
-
// create wkt string
|
|
7963
|
-
var polygon = [];
|
|
7964
|
-
geom.forEach(function (_a) {
|
|
7965
|
-
var lng = _a[0], lat = _a[1];
|
|
7966
|
-
var _b = degrees2meters(lng, lat), x = _b[0], y = _b[1];
|
|
7967
|
-
polygon.push(x + ' ' + y);
|
|
7968
|
-
});
|
|
7969
|
-
var wkt = "POLYGON((".concat(polygon.join(', '), "))");
|
|
7970
|
-
var layers = options.layers;
|
|
7971
|
-
var data = {
|
|
7972
|
-
geom: wkt,
|
|
7973
|
-
srs: 3857,
|
|
7974
|
-
layers: layers,
|
|
7975
|
-
};
|
|
7976
|
-
return options.connector.post('feature_layer.identify', { data: data });
|
|
8027
|
+
var _b = ev.lngLat, lng = _b[0], lat = _b[1];
|
|
8028
|
+
var geom = (_a = options.geom) !== null && _a !== void 0 ? _a : getCirclePolygonCoordinates(lng, lat, options.radius);
|
|
8029
|
+
return featureLayerIdentify(__assign(__assign({}, options), { geom: geom }));
|
|
7977
8030
|
}
|
|
7978
8031
|
function createIdentifyItem(opt) {
|
|
7979
8032
|
return new IdentifyItem(opt);
|