map-ol-utils 0.0.31 → 0.0.32
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/dist/index.cjs +80 -27
- package/dist/index.d.cts +13 -9
- package/dist/index.d.ts +13 -9
- package/dist/index.js +78 -25
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -67,7 +67,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
67
67
|
// src/index.ts
|
|
68
68
|
var index_exports = {};
|
|
69
69
|
__export(index_exports, {
|
|
70
|
-
|
|
70
|
+
activeFeatureByUid: () => activeFeatureByUid,
|
|
71
71
|
addMassMarksLayer: () => addMassMarksLayer,
|
|
72
72
|
buildMassMarksStyles: () => buildMassMarksStyles,
|
|
73
73
|
createAnimationMarker: () => createAnimationMarker,
|
|
@@ -86,7 +86,7 @@ __export(index_exports, {
|
|
|
86
86
|
getMapInstance: () => getMapInstance,
|
|
87
87
|
instance: () => instance,
|
|
88
88
|
removeAllLayers: () => removeAllLayers,
|
|
89
|
-
|
|
89
|
+
resetActiveFeature: () => resetActiveFeature,
|
|
90
90
|
resetActiveVector: () => resetActiveVector,
|
|
91
91
|
resetMap: () => resetMap,
|
|
92
92
|
resetZoomAndCenter: () => resetZoomAndCenter,
|
|
@@ -108,6 +108,7 @@ var import_control = require("ol/control");
|
|
|
108
108
|
var import_gcoord = __toESM(require("gcoord"), 1);
|
|
109
109
|
var import_geom = require("ol/geom");
|
|
110
110
|
var import_format = require("ol/format");
|
|
111
|
+
var import_extent = require("ol/extent");
|
|
111
112
|
var import_ol = require("ol");
|
|
112
113
|
var import_interaction = require("ol/interaction");
|
|
113
114
|
var import_Vector = __toESM(require("ol/layer/Vector"), 1);
|
|
@@ -138,12 +139,10 @@ var createAnimationMarker = (imgUrl, data) => {
|
|
|
138
139
|
};
|
|
139
140
|
var resetActiveVector = () => {
|
|
140
141
|
removeOverlays();
|
|
141
|
-
const layers = instance.
|
|
142
|
+
const layers = instance.getAllLayers();
|
|
142
143
|
layers.forEach((layer) => {
|
|
143
144
|
const interaction = layer.get("_selectInteraction");
|
|
144
|
-
|
|
145
|
-
interaction.getFeatures().clear();
|
|
146
|
-
}
|
|
145
|
+
interaction == null ? void 0 : interaction.getFeatures().clear();
|
|
147
146
|
});
|
|
148
147
|
};
|
|
149
148
|
var assembleGeoJson = (dataList, config) => {
|
|
@@ -166,7 +165,11 @@ var assembleGeoJson = (dataList, config) => {
|
|
|
166
165
|
console.error(`\u521B\u5EFA\u7EBF\u72B6\u6570\u636E\u5931\u8D25\uFF1A${e}`);
|
|
167
166
|
}
|
|
168
167
|
});
|
|
169
|
-
return !needTransform ? { type: "FeatureCollection", features: tempList } : import_gcoord.default.transform(
|
|
168
|
+
return !needTransform ? { type: "FeatureCollection", features: tempList } : import_gcoord.default.transform(
|
|
169
|
+
{ type: "FeatureCollection", features: tempList },
|
|
170
|
+
import_gcoord.default.GCJ02,
|
|
171
|
+
import_gcoord.default.WGS84
|
|
172
|
+
);
|
|
170
173
|
};
|
|
171
174
|
var createVectorStyle = (data, config) => {
|
|
172
175
|
const {
|
|
@@ -175,17 +178,38 @@ var createVectorStyle = (data, config) => {
|
|
|
175
178
|
fillColor,
|
|
176
179
|
colorKey,
|
|
177
180
|
strokeColor,
|
|
181
|
+
fillOpacity,
|
|
178
182
|
strokeWeight,
|
|
179
|
-
|
|
183
|
+
activeFillColor,
|
|
184
|
+
activeFillOpacity,
|
|
185
|
+
activeStrokeColor,
|
|
186
|
+
activeStrokeWeight
|
|
180
187
|
} = config || {};
|
|
181
|
-
const
|
|
188
|
+
const activeStyle = new import_style.Style({
|
|
182
189
|
stroke: new import_style.Stroke({
|
|
183
|
-
width: strokeWeight,
|
|
190
|
+
width: activeStrokeWeight || strokeWeight || 4,
|
|
191
|
+
color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
|
|
192
|
+
})
|
|
193
|
+
});
|
|
194
|
+
const unActiveStyle = new import_style.Style({
|
|
195
|
+
stroke: new import_style.Stroke({
|
|
196
|
+
width: strokeWeight || 2,
|
|
184
197
|
color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
|
|
185
198
|
})
|
|
186
199
|
});
|
|
187
200
|
if (!isLine) {
|
|
188
|
-
|
|
201
|
+
activeStyle.setFill(
|
|
202
|
+
new import_style.Fill({
|
|
203
|
+
color: hexToRgba(
|
|
204
|
+
activeFillColor || fillColor || "",
|
|
205
|
+
activeFillOpacity || 1
|
|
206
|
+
) || hexToRgba(
|
|
207
|
+
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
208
|
+
fillOpacity || 1
|
|
209
|
+
)
|
|
210
|
+
})
|
|
211
|
+
);
|
|
212
|
+
unActiveStyle.setFill(
|
|
189
213
|
new import_style.Fill({
|
|
190
214
|
color: hexToRgba(
|
|
191
215
|
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
@@ -194,10 +218,14 @@ var createVectorStyle = (data, config) => {
|
|
|
194
218
|
})
|
|
195
219
|
);
|
|
196
220
|
}
|
|
197
|
-
|
|
221
|
+
Object.assign(data, {
|
|
222
|
+
activeStyle,
|
|
223
|
+
unActiveStyle
|
|
224
|
+
});
|
|
225
|
+
return unActiveStyle;
|
|
198
226
|
};
|
|
199
227
|
var createBusinessLayer = (dataList, config) => {
|
|
200
|
-
const { layerName } = config;
|
|
228
|
+
const { layerName, openClick } = config;
|
|
201
229
|
const geoJson = assembleGeoJson(dataList, config);
|
|
202
230
|
const vectorLayer = new import_Vector.default({
|
|
203
231
|
zIndex: 5,
|
|
@@ -209,9 +237,15 @@ var createBusinessLayer = (dataList, config) => {
|
|
|
209
237
|
})
|
|
210
238
|
})
|
|
211
239
|
});
|
|
240
|
+
if (openClick) {
|
|
241
|
+
createSelectByLayer(vectorLayer);
|
|
242
|
+
}
|
|
212
243
|
vectorLayer.setProperties({
|
|
244
|
+
_isCustom: true,
|
|
245
|
+
_isVectorLayer: true,
|
|
213
246
|
_layerName: layerName,
|
|
214
|
-
_dataList: [...dataList]
|
|
247
|
+
_dataList: [...dataList],
|
|
248
|
+
_uuidSet: new Set(dataList.map((item) => item._uuid) || [])
|
|
215
249
|
});
|
|
216
250
|
return vectorLayer;
|
|
217
251
|
};
|
|
@@ -228,9 +262,9 @@ var removeAllLayers = (isClearAll = true) => {
|
|
|
228
262
|
});
|
|
229
263
|
}
|
|
230
264
|
};
|
|
231
|
-
var
|
|
265
|
+
var resetActiveFeature = () => {
|
|
232
266
|
removeOverlays();
|
|
233
|
-
const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("
|
|
267
|
+
const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
234
268
|
massMarksLayers.forEach((layer) => {
|
|
235
269
|
const selectInteraction = layer.get("_selectInteraction");
|
|
236
270
|
if (selectInteraction) {
|
|
@@ -244,11 +278,11 @@ var resetActiveMarker = () => {
|
|
|
244
278
|
}
|
|
245
279
|
});
|
|
246
280
|
};
|
|
247
|
-
var
|
|
281
|
+
var activeFeatureByUid = (uid) => {
|
|
248
282
|
var _a;
|
|
249
|
-
const
|
|
250
|
-
if (
|
|
251
|
-
const targetLayer =
|
|
283
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
284
|
+
if (targetLayers.length) {
|
|
285
|
+
const targetLayer = targetLayers.find(
|
|
252
286
|
(layer) => layer.get("_uuidSet").has(uid)
|
|
253
287
|
);
|
|
254
288
|
if (targetLayer) {
|
|
@@ -338,7 +372,7 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
338
372
|
const { activeStyle } = data;
|
|
339
373
|
feature.setStyle(activeStyle);
|
|
340
374
|
if (mapBrowserEvent) {
|
|
341
|
-
emitter_default.emit("
|
|
375
|
+
emitter_default.emit("selected-feature", data);
|
|
342
376
|
}
|
|
343
377
|
vectorLayer.set("_hasActive", true);
|
|
344
378
|
if (vectorLayer.get("_isDynamic")) {
|
|
@@ -358,8 +392,8 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
358
392
|
const view = instance.getView();
|
|
359
393
|
view.animate({
|
|
360
394
|
zoom: 12,
|
|
361
|
-
|
|
362
|
-
|
|
395
|
+
duration: 1e3,
|
|
396
|
+
center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
|
|
363
397
|
});
|
|
364
398
|
}
|
|
365
399
|
if (deselected.length) {
|
|
@@ -393,6 +427,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
|
|
|
393
427
|
});
|
|
394
428
|
vectorLayer.setProperties({
|
|
395
429
|
_isCustom: true,
|
|
430
|
+
_isVectorLayer: true,
|
|
396
431
|
_isMassMarksLayer: true,
|
|
397
432
|
_statusNum: styleList.length / 2,
|
|
398
433
|
_dataList: [...dataList],
|
|
@@ -429,6 +464,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
429
464
|
vectorConfig || {
|
|
430
465
|
key: "line",
|
|
431
466
|
isLine: true,
|
|
467
|
+
openClick: false,
|
|
432
468
|
strokeColor: "rgba(29, 235, 255, 0.8)"
|
|
433
469
|
}
|
|
434
470
|
);
|
|
@@ -440,8 +476,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
440
476
|
vectorConfig || {
|
|
441
477
|
isLine: false,
|
|
442
478
|
key: "faceList",
|
|
443
|
-
fillColor: "#4247DF",
|
|
444
479
|
strokeWeight: 1,
|
|
480
|
+
openClick: false,
|
|
481
|
+
fillColor: "#4247DF",
|
|
445
482
|
strokeStyle: "dashed",
|
|
446
483
|
strokeColor: "#4247DF"
|
|
447
484
|
}
|
|
@@ -452,6 +489,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
452
489
|
_isCustom: true,
|
|
453
490
|
_hasLine: hasLine,
|
|
454
491
|
_hasFace: hasFace,
|
|
492
|
+
_isVectorLayer: true,
|
|
455
493
|
_isDynamic: isDynamic
|
|
456
494
|
});
|
|
457
495
|
instance.addLayer(massMarksLayer);
|
|
@@ -459,7 +497,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
459
497
|
};
|
|
460
498
|
};
|
|
461
499
|
var updateMarksLayersByStatus = (checkedStatusList = []) => {
|
|
462
|
-
|
|
500
|
+
const hideStyle = new import_style.Style({});
|
|
501
|
+
const tempList = [];
|
|
502
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
|
|
503
|
+
targetLayers.forEach((layer) => {
|
|
504
|
+
const features = layer.getSource().getFeatures();
|
|
505
|
+
features.forEach((feature) => {
|
|
506
|
+
const data = feature.getProperties();
|
|
507
|
+
if (!checkedStatusList.includes(data.status)) {
|
|
508
|
+
feature.setStyle(hideStyle);
|
|
509
|
+
} else {
|
|
510
|
+
tempList.push(data);
|
|
511
|
+
feature.setStyle(data.unActiveStyle);
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
});
|
|
515
|
+
return tempList;
|
|
463
516
|
};
|
|
464
517
|
|
|
465
518
|
// src/create-map.ts
|
|
@@ -740,7 +793,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
|
|
|
740
793
|
});
|
|
741
794
|
// Annotate the CommonJS export names for ESM import in node:
|
|
742
795
|
0 && (module.exports = {
|
|
743
|
-
|
|
796
|
+
activeFeatureByUid,
|
|
744
797
|
addMassMarksLayer,
|
|
745
798
|
buildMassMarksStyles,
|
|
746
799
|
createAnimationMarker,
|
|
@@ -759,7 +812,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
|
|
|
759
812
|
getMapInstance,
|
|
760
813
|
instance,
|
|
761
814
|
removeAllLayers,
|
|
762
|
-
|
|
815
|
+
resetActiveFeature,
|
|
763
816
|
resetActiveVector,
|
|
764
817
|
resetMap,
|
|
765
818
|
resetZoomAndCenter,
|
package/dist/index.d.cts
CHANGED
|
@@ -33,6 +33,10 @@ type VectorConfig = {
|
|
|
33
33
|
strokeStyle?: string;
|
|
34
34
|
strokeWeight?: number;
|
|
35
35
|
needTransform?: boolean;
|
|
36
|
+
activeFillColor?: string;
|
|
37
|
+
activeStrokeColor?: string;
|
|
38
|
+
activeFillOpacity?: number;
|
|
39
|
+
activeStrokeWeight?: number;
|
|
36
40
|
colorMap?: Map<string, string>;
|
|
37
41
|
};
|
|
38
42
|
type IconConfig = {
|
|
@@ -109,33 +113,33 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
|
|
|
109
113
|
* 重置激活的矢量数据
|
|
110
114
|
*/
|
|
111
115
|
declare const resetActiveVector: () => void;
|
|
112
|
-
declare const createBusinessLayer: (dataList:
|
|
116
|
+
declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
|
|
113
117
|
/**
|
|
114
118
|
* 创建面状数据
|
|
115
119
|
* @param dataList
|
|
116
120
|
* @param config
|
|
117
121
|
*/
|
|
118
|
-
declare const createVectorFaceLayer: (dataList:
|
|
122
|
+
declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
|
|
119
123
|
/**
|
|
120
124
|
* 创建矢量线图层
|
|
121
125
|
* @param dataList
|
|
122
126
|
* @param config
|
|
123
127
|
*/
|
|
124
|
-
declare const createVectorLineLayer: (dataList:
|
|
128
|
+
declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
|
|
125
129
|
/**
|
|
126
130
|
* 移除覆盖物已经自定义图层
|
|
127
131
|
* @param isClearAll
|
|
128
132
|
*/
|
|
129
133
|
declare const removeAllLayers: (isClearAll?: boolean) => void;
|
|
130
134
|
/**
|
|
131
|
-
* 重置激活
|
|
135
|
+
* 重置激活Feature
|
|
132
136
|
*/
|
|
133
|
-
declare const
|
|
137
|
+
declare const resetActiveFeature: () => void;
|
|
134
138
|
/**
|
|
135
|
-
*
|
|
139
|
+
* 激活要素
|
|
136
140
|
* @param uid
|
|
137
141
|
*/
|
|
138
|
-
declare const
|
|
142
|
+
declare const activeFeatureByUid: (uid: string) => void;
|
|
139
143
|
/**
|
|
140
144
|
* 构建MassMarks样式数组
|
|
141
145
|
*/
|
|
@@ -160,6 +164,6 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
|
|
|
160
164
|
* 更新图层根据选中状态列表
|
|
161
165
|
* @param checkedStatusList
|
|
162
166
|
*/
|
|
163
|
-
declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) =>
|
|
167
|
+
declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
|
|
164
168
|
|
|
165
|
-
export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions,
|
|
169
|
+
export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
|
package/dist/index.d.ts
CHANGED
|
@@ -33,6 +33,10 @@ type VectorConfig = {
|
|
|
33
33
|
strokeStyle?: string;
|
|
34
34
|
strokeWeight?: number;
|
|
35
35
|
needTransform?: boolean;
|
|
36
|
+
activeFillColor?: string;
|
|
37
|
+
activeStrokeColor?: string;
|
|
38
|
+
activeFillOpacity?: number;
|
|
39
|
+
activeStrokeWeight?: number;
|
|
36
40
|
colorMap?: Map<string, string>;
|
|
37
41
|
};
|
|
38
42
|
type IconConfig = {
|
|
@@ -109,33 +113,33 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
|
|
|
109
113
|
* 重置激活的矢量数据
|
|
110
114
|
*/
|
|
111
115
|
declare const resetActiveVector: () => void;
|
|
112
|
-
declare const createBusinessLayer: (dataList:
|
|
116
|
+
declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
|
|
113
117
|
/**
|
|
114
118
|
* 创建面状数据
|
|
115
119
|
* @param dataList
|
|
116
120
|
* @param config
|
|
117
121
|
*/
|
|
118
|
-
declare const createVectorFaceLayer: (dataList:
|
|
122
|
+
declare const createVectorFaceLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
|
|
119
123
|
/**
|
|
120
124
|
* 创建矢量线图层
|
|
121
125
|
* @param dataList
|
|
122
126
|
* @param config
|
|
123
127
|
*/
|
|
124
|
-
declare const createVectorLineLayer: (dataList:
|
|
128
|
+
declare const createVectorLineLayer: (dataList: MassData[] | undefined, config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
|
|
125
129
|
/**
|
|
126
130
|
* 移除覆盖物已经自定义图层
|
|
127
131
|
* @param isClearAll
|
|
128
132
|
*/
|
|
129
133
|
declare const removeAllLayers: (isClearAll?: boolean) => void;
|
|
130
134
|
/**
|
|
131
|
-
* 重置激活
|
|
135
|
+
* 重置激活Feature
|
|
132
136
|
*/
|
|
133
|
-
declare const
|
|
137
|
+
declare const resetActiveFeature: () => void;
|
|
134
138
|
/**
|
|
135
|
-
*
|
|
139
|
+
* 激活要素
|
|
136
140
|
* @param uid
|
|
137
141
|
*/
|
|
138
|
-
declare const
|
|
142
|
+
declare const activeFeatureByUid: (uid: string) => void;
|
|
139
143
|
/**
|
|
140
144
|
* 构建MassMarks样式数组
|
|
141
145
|
*/
|
|
@@ -160,6 +164,6 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
|
|
|
160
164
|
* 更新图层根据选中状态列表
|
|
161
165
|
* @param checkedStatusList
|
|
162
166
|
*/
|
|
163
|
-
declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) =>
|
|
167
|
+
declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
|
|
164
168
|
|
|
165
|
-
export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions,
|
|
169
|
+
export { type CustomMap, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
|
package/dist/index.js
CHANGED
|
@@ -52,6 +52,7 @@ import { defaults } from "ol/control";
|
|
|
52
52
|
import gcoord from "gcoord";
|
|
53
53
|
import { Point } from "ol/geom";
|
|
54
54
|
import { GeoJSON } from "ol/format";
|
|
55
|
+
import { getCenter } from "ol/extent";
|
|
55
56
|
import { Feature, Overlay } from "ol";
|
|
56
57
|
import { Select } from "ol/interaction";
|
|
57
58
|
import VectorLayer from "ol/layer/Vector";
|
|
@@ -82,12 +83,10 @@ var createAnimationMarker = (imgUrl, data) => {
|
|
|
82
83
|
};
|
|
83
84
|
var resetActiveVector = () => {
|
|
84
85
|
removeOverlays();
|
|
85
|
-
const layers = instance.
|
|
86
|
+
const layers = instance.getAllLayers();
|
|
86
87
|
layers.forEach((layer) => {
|
|
87
88
|
const interaction = layer.get("_selectInteraction");
|
|
88
|
-
|
|
89
|
-
interaction.getFeatures().clear();
|
|
90
|
-
}
|
|
89
|
+
interaction == null ? void 0 : interaction.getFeatures().clear();
|
|
91
90
|
});
|
|
92
91
|
};
|
|
93
92
|
var assembleGeoJson = (dataList, config) => {
|
|
@@ -110,7 +109,11 @@ var assembleGeoJson = (dataList, config) => {
|
|
|
110
109
|
console.error(`\u521B\u5EFA\u7EBF\u72B6\u6570\u636E\u5931\u8D25\uFF1A${e}`);
|
|
111
110
|
}
|
|
112
111
|
});
|
|
113
|
-
return !needTransform ? { type: "FeatureCollection", features: tempList } : gcoord.transform(
|
|
112
|
+
return !needTransform ? { type: "FeatureCollection", features: tempList } : gcoord.transform(
|
|
113
|
+
{ type: "FeatureCollection", features: tempList },
|
|
114
|
+
gcoord.GCJ02,
|
|
115
|
+
gcoord.WGS84
|
|
116
|
+
);
|
|
114
117
|
};
|
|
115
118
|
var createVectorStyle = (data, config) => {
|
|
116
119
|
const {
|
|
@@ -119,17 +122,38 @@ var createVectorStyle = (data, config) => {
|
|
|
119
122
|
fillColor,
|
|
120
123
|
colorKey,
|
|
121
124
|
strokeColor,
|
|
125
|
+
fillOpacity,
|
|
122
126
|
strokeWeight,
|
|
123
|
-
|
|
127
|
+
activeFillColor,
|
|
128
|
+
activeFillOpacity,
|
|
129
|
+
activeStrokeColor,
|
|
130
|
+
activeStrokeWeight
|
|
124
131
|
} = config || {};
|
|
125
|
-
const
|
|
132
|
+
const activeStyle = new Style({
|
|
126
133
|
stroke: new Stroke({
|
|
127
|
-
width: strokeWeight,
|
|
134
|
+
width: activeStrokeWeight || strokeWeight || 4,
|
|
135
|
+
color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
|
|
136
|
+
})
|
|
137
|
+
});
|
|
138
|
+
const unActiveStyle = new Style({
|
|
139
|
+
stroke: new Stroke({
|
|
140
|
+
width: strokeWeight || 2,
|
|
128
141
|
color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
|
|
129
142
|
})
|
|
130
143
|
});
|
|
131
144
|
if (!isLine) {
|
|
132
|
-
|
|
145
|
+
activeStyle.setFill(
|
|
146
|
+
new Fill({
|
|
147
|
+
color: hexToRgba(
|
|
148
|
+
activeFillColor || fillColor || "",
|
|
149
|
+
activeFillOpacity || 1
|
|
150
|
+
) || hexToRgba(
|
|
151
|
+
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
152
|
+
fillOpacity || 1
|
|
153
|
+
)
|
|
154
|
+
})
|
|
155
|
+
);
|
|
156
|
+
unActiveStyle.setFill(
|
|
133
157
|
new Fill({
|
|
134
158
|
color: hexToRgba(
|
|
135
159
|
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
@@ -138,10 +162,14 @@ var createVectorStyle = (data, config) => {
|
|
|
138
162
|
})
|
|
139
163
|
);
|
|
140
164
|
}
|
|
141
|
-
|
|
165
|
+
Object.assign(data, {
|
|
166
|
+
activeStyle,
|
|
167
|
+
unActiveStyle
|
|
168
|
+
});
|
|
169
|
+
return unActiveStyle;
|
|
142
170
|
};
|
|
143
171
|
var createBusinessLayer = (dataList, config) => {
|
|
144
|
-
const { layerName } = config;
|
|
172
|
+
const { layerName, openClick } = config;
|
|
145
173
|
const geoJson = assembleGeoJson(dataList, config);
|
|
146
174
|
const vectorLayer = new VectorLayer({
|
|
147
175
|
zIndex: 5,
|
|
@@ -153,9 +181,15 @@ var createBusinessLayer = (dataList, config) => {
|
|
|
153
181
|
})
|
|
154
182
|
})
|
|
155
183
|
});
|
|
184
|
+
if (openClick) {
|
|
185
|
+
createSelectByLayer(vectorLayer);
|
|
186
|
+
}
|
|
156
187
|
vectorLayer.setProperties({
|
|
188
|
+
_isCustom: true,
|
|
189
|
+
_isVectorLayer: true,
|
|
157
190
|
_layerName: layerName,
|
|
158
|
-
_dataList: [...dataList]
|
|
191
|
+
_dataList: [...dataList],
|
|
192
|
+
_uuidSet: new Set(dataList.map((item) => item._uuid) || [])
|
|
159
193
|
});
|
|
160
194
|
return vectorLayer;
|
|
161
195
|
};
|
|
@@ -172,9 +206,9 @@ var removeAllLayers = (isClearAll = true) => {
|
|
|
172
206
|
});
|
|
173
207
|
}
|
|
174
208
|
};
|
|
175
|
-
var
|
|
209
|
+
var resetActiveFeature = () => {
|
|
176
210
|
removeOverlays();
|
|
177
|
-
const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("
|
|
211
|
+
const massMarksLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
178
212
|
massMarksLayers.forEach((layer) => {
|
|
179
213
|
const selectInteraction = layer.get("_selectInteraction");
|
|
180
214
|
if (selectInteraction) {
|
|
@@ -188,11 +222,11 @@ var resetActiveMarker = () => {
|
|
|
188
222
|
}
|
|
189
223
|
});
|
|
190
224
|
};
|
|
191
|
-
var
|
|
225
|
+
var activeFeatureByUid = (uid) => {
|
|
192
226
|
var _a;
|
|
193
|
-
const
|
|
194
|
-
if (
|
|
195
|
-
const targetLayer =
|
|
227
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
228
|
+
if (targetLayers.length) {
|
|
229
|
+
const targetLayer = targetLayers.find(
|
|
196
230
|
(layer) => layer.get("_uuidSet").has(uid)
|
|
197
231
|
);
|
|
198
232
|
if (targetLayer) {
|
|
@@ -282,7 +316,7 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
282
316
|
const { activeStyle } = data;
|
|
283
317
|
feature.setStyle(activeStyle);
|
|
284
318
|
if (mapBrowserEvent) {
|
|
285
|
-
emitter_default.emit("
|
|
319
|
+
emitter_default.emit("selected-feature", data);
|
|
286
320
|
}
|
|
287
321
|
vectorLayer.set("_hasActive", true);
|
|
288
322
|
if (vectorLayer.get("_isDynamic")) {
|
|
@@ -302,8 +336,8 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
302
336
|
const view = instance.getView();
|
|
303
337
|
view.animate({
|
|
304
338
|
zoom: 12,
|
|
305
|
-
|
|
306
|
-
|
|
339
|
+
duration: 1e3,
|
|
340
|
+
center: getCenter(feature.getGeometry().getExtent())
|
|
307
341
|
});
|
|
308
342
|
}
|
|
309
343
|
if (deselected.length) {
|
|
@@ -337,6 +371,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
|
|
|
337
371
|
});
|
|
338
372
|
vectorLayer.setProperties({
|
|
339
373
|
_isCustom: true,
|
|
374
|
+
_isVectorLayer: true,
|
|
340
375
|
_isMassMarksLayer: true,
|
|
341
376
|
_statusNum: styleList.length / 2,
|
|
342
377
|
_dataList: [...dataList],
|
|
@@ -373,6 +408,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
373
408
|
vectorConfig || {
|
|
374
409
|
key: "line",
|
|
375
410
|
isLine: true,
|
|
411
|
+
openClick: false,
|
|
376
412
|
strokeColor: "rgba(29, 235, 255, 0.8)"
|
|
377
413
|
}
|
|
378
414
|
);
|
|
@@ -384,8 +420,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
384
420
|
vectorConfig || {
|
|
385
421
|
isLine: false,
|
|
386
422
|
key: "faceList",
|
|
387
|
-
fillColor: "#4247DF",
|
|
388
423
|
strokeWeight: 1,
|
|
424
|
+
openClick: false,
|
|
425
|
+
fillColor: "#4247DF",
|
|
389
426
|
strokeStyle: "dashed",
|
|
390
427
|
strokeColor: "#4247DF"
|
|
391
428
|
}
|
|
@@ -396,6 +433,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
396
433
|
_isCustom: true,
|
|
397
434
|
_hasLine: hasLine,
|
|
398
435
|
_hasFace: hasFace,
|
|
436
|
+
_isVectorLayer: true,
|
|
399
437
|
_isDynamic: isDynamic
|
|
400
438
|
});
|
|
401
439
|
instance.addLayer(massMarksLayer);
|
|
@@ -403,7 +441,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
403
441
|
};
|
|
404
442
|
};
|
|
405
443
|
var updateMarksLayersByStatus = (checkedStatusList = []) => {
|
|
406
|
-
|
|
444
|
+
const hideStyle = new Style({});
|
|
445
|
+
const tempList = [];
|
|
446
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
|
|
447
|
+
targetLayers.forEach((layer) => {
|
|
448
|
+
const features = layer.getSource().getFeatures();
|
|
449
|
+
features.forEach((feature) => {
|
|
450
|
+
const data = feature.getProperties();
|
|
451
|
+
if (!checkedStatusList.includes(data.status)) {
|
|
452
|
+
feature.setStyle(hideStyle);
|
|
453
|
+
} else {
|
|
454
|
+
tempList.push(data);
|
|
455
|
+
feature.setStyle(data.unActiveStyle);
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
});
|
|
459
|
+
return tempList;
|
|
407
460
|
};
|
|
408
461
|
|
|
409
462
|
// src/create-map.ts
|
|
@@ -683,7 +736,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
|
|
|
683
736
|
});
|
|
684
737
|
});
|
|
685
738
|
export {
|
|
686
|
-
|
|
739
|
+
activeFeatureByUid,
|
|
687
740
|
addMassMarksLayer,
|
|
688
741
|
buildMassMarksStyles,
|
|
689
742
|
createAnimationMarker,
|
|
@@ -702,7 +755,7 @@ export {
|
|
|
702
755
|
getMapInstance,
|
|
703
756
|
instance,
|
|
704
757
|
removeAllLayers,
|
|
705
|
-
|
|
758
|
+
resetActiveFeature,
|
|
706
759
|
resetActiveVector,
|
|
707
760
|
resetMap,
|
|
708
761
|
resetZoomAndCenter,
|