map-ol-utils 0.0.31 → 0.0.33
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 +86 -30
- package/dist/index.d.cts +13 -9
- package/dist/index.d.ts +13 -9
- package/dist/index.js +84 -28
- 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,26 +165,52 @@ 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
|
-
var createVectorStyle = (
|
|
174
|
+
var createVectorStyle = (feature, config) => {
|
|
172
175
|
const {
|
|
173
176
|
isLine,
|
|
174
177
|
colorMap,
|
|
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 data = feature.getProperties();
|
|
189
|
+
const activeStyle = new import_style.Style({
|
|
182
190
|
stroke: new import_style.Stroke({
|
|
183
|
-
width: strokeWeight,
|
|
191
|
+
width: activeStrokeWeight || strokeWeight || 4,
|
|
192
|
+
color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
|
|
193
|
+
})
|
|
194
|
+
});
|
|
195
|
+
const unActiveStyle = new import_style.Style({
|
|
196
|
+
stroke: new import_style.Stroke({
|
|
197
|
+
width: strokeWeight || 2,
|
|
184
198
|
color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
|
|
185
199
|
})
|
|
186
200
|
});
|
|
187
201
|
if (!isLine) {
|
|
188
|
-
|
|
202
|
+
activeStyle.setFill(
|
|
203
|
+
new import_style.Fill({
|
|
204
|
+
color: hexToRgba(
|
|
205
|
+
activeFillColor || fillColor || "",
|
|
206
|
+
activeFillOpacity || 1
|
|
207
|
+
) || hexToRgba(
|
|
208
|
+
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
209
|
+
fillOpacity || 1
|
|
210
|
+
)
|
|
211
|
+
})
|
|
212
|
+
);
|
|
213
|
+
unActiveStyle.setFill(
|
|
189
214
|
new import_style.Fill({
|
|
190
215
|
color: hexToRgba(
|
|
191
216
|
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
@@ -194,24 +219,36 @@ var createVectorStyle = (data, config) => {
|
|
|
194
219
|
})
|
|
195
220
|
);
|
|
196
221
|
}
|
|
197
|
-
|
|
222
|
+
feature.setProperties(
|
|
223
|
+
Object.assign(data, {
|
|
224
|
+
activeStyle,
|
|
225
|
+
unActiveStyle
|
|
226
|
+
})
|
|
227
|
+
);
|
|
228
|
+
return unActiveStyle;
|
|
198
229
|
};
|
|
199
230
|
var createBusinessLayer = (dataList, config) => {
|
|
200
|
-
const { layerName } = config;
|
|
231
|
+
const { layerName, openClick } = config;
|
|
201
232
|
const geoJson = assembleGeoJson(dataList, config);
|
|
202
233
|
const vectorLayer = new import_Vector.default({
|
|
203
234
|
zIndex: 5,
|
|
204
235
|
className: layerName ? layerName : "ol-layer",
|
|
205
236
|
source: new import_Vector2.default({
|
|
206
237
|
features: new import_format.GeoJSON().readFeatures(geoJson).map((feature) => {
|
|
207
|
-
feature.setStyle(createVectorStyle(feature
|
|
238
|
+
feature.setStyle(createVectorStyle(feature, config));
|
|
208
239
|
return feature;
|
|
209
240
|
})
|
|
210
241
|
})
|
|
211
242
|
});
|
|
243
|
+
if (openClick) {
|
|
244
|
+
createSelectByLayer(vectorLayer);
|
|
245
|
+
}
|
|
212
246
|
vectorLayer.setProperties({
|
|
247
|
+
_isCustom: true,
|
|
248
|
+
_isVectorLayer: true,
|
|
213
249
|
_layerName: layerName,
|
|
214
|
-
_dataList: [...dataList]
|
|
250
|
+
_dataList: [...dataList],
|
|
251
|
+
_uuidSet: new Set(dataList.map((item) => item._uuid) || [])
|
|
215
252
|
});
|
|
216
253
|
return vectorLayer;
|
|
217
254
|
};
|
|
@@ -228,10 +265,10 @@ var removeAllLayers = (isClearAll = true) => {
|
|
|
228
265
|
});
|
|
229
266
|
}
|
|
230
267
|
};
|
|
231
|
-
var
|
|
268
|
+
var resetActiveFeature = () => {
|
|
232
269
|
removeOverlays();
|
|
233
|
-
const
|
|
234
|
-
|
|
270
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
271
|
+
targetLayers.forEach((layer) => {
|
|
235
272
|
const selectInteraction = layer.get("_selectInteraction");
|
|
236
273
|
if (selectInteraction) {
|
|
237
274
|
selectInteraction.dispatchEvent({
|
|
@@ -244,11 +281,11 @@ var resetActiveMarker = () => {
|
|
|
244
281
|
}
|
|
245
282
|
});
|
|
246
283
|
};
|
|
247
|
-
var
|
|
284
|
+
var activeFeatureByUid = (uid) => {
|
|
248
285
|
var _a;
|
|
249
|
-
const
|
|
250
|
-
if (
|
|
251
|
-
const targetLayer =
|
|
286
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
287
|
+
if (targetLayers.length) {
|
|
288
|
+
const targetLayer = targetLayers.find(
|
|
252
289
|
(layer) => layer.get("_uuidSet").has(uid)
|
|
253
290
|
);
|
|
254
291
|
if (targetLayer) {
|
|
@@ -338,7 +375,7 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
338
375
|
const { activeStyle } = data;
|
|
339
376
|
feature.setStyle(activeStyle);
|
|
340
377
|
if (mapBrowserEvent) {
|
|
341
|
-
emitter_default.emit("
|
|
378
|
+
emitter_default.emit("selected-feature", data);
|
|
342
379
|
}
|
|
343
380
|
vectorLayer.set("_hasActive", true);
|
|
344
381
|
if (vectorLayer.get("_isDynamic")) {
|
|
@@ -358,8 +395,8 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
358
395
|
const view = instance.getView();
|
|
359
396
|
view.animate({
|
|
360
397
|
zoom: 12,
|
|
361
|
-
|
|
362
|
-
|
|
398
|
+
duration: 1e3,
|
|
399
|
+
center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
|
|
363
400
|
});
|
|
364
401
|
}
|
|
365
402
|
if (deselected.length) {
|
|
@@ -393,6 +430,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
|
|
|
393
430
|
});
|
|
394
431
|
vectorLayer.setProperties({
|
|
395
432
|
_isCustom: true,
|
|
433
|
+
_isVectorLayer: true,
|
|
396
434
|
_isMassMarksLayer: true,
|
|
397
435
|
_statusNum: styleList.length / 2,
|
|
398
436
|
_dataList: [...dataList],
|
|
@@ -429,6 +467,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
429
467
|
vectorConfig || {
|
|
430
468
|
key: "line",
|
|
431
469
|
isLine: true,
|
|
470
|
+
openClick: false,
|
|
432
471
|
strokeColor: "rgba(29, 235, 255, 0.8)"
|
|
433
472
|
}
|
|
434
473
|
);
|
|
@@ -440,8 +479,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
440
479
|
vectorConfig || {
|
|
441
480
|
isLine: false,
|
|
442
481
|
key: "faceList",
|
|
443
|
-
fillColor: "#4247DF",
|
|
444
482
|
strokeWeight: 1,
|
|
483
|
+
openClick: false,
|
|
484
|
+
fillColor: "#4247DF",
|
|
445
485
|
strokeStyle: "dashed",
|
|
446
486
|
strokeColor: "#4247DF"
|
|
447
487
|
}
|
|
@@ -452,6 +492,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
452
492
|
_isCustom: true,
|
|
453
493
|
_hasLine: hasLine,
|
|
454
494
|
_hasFace: hasFace,
|
|
495
|
+
_isVectorLayer: true,
|
|
455
496
|
_isDynamic: isDynamic
|
|
456
497
|
});
|
|
457
498
|
instance.addLayer(massMarksLayer);
|
|
@@ -459,7 +500,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
459
500
|
};
|
|
460
501
|
};
|
|
461
502
|
var updateMarksLayersByStatus = (checkedStatusList = []) => {
|
|
462
|
-
|
|
503
|
+
const hideStyle = new import_style.Style({});
|
|
504
|
+
const tempList = [];
|
|
505
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
|
|
506
|
+
targetLayers.forEach((layer) => {
|
|
507
|
+
const features = layer.getSource().getFeatures();
|
|
508
|
+
features.forEach((feature) => {
|
|
509
|
+
const data = feature.getProperties();
|
|
510
|
+
if (!checkedStatusList.includes(data.status)) {
|
|
511
|
+
feature.setStyle(hideStyle);
|
|
512
|
+
} else {
|
|
513
|
+
tempList.push(data);
|
|
514
|
+
feature.setStyle(data.unActiveStyle);
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
});
|
|
518
|
+
return tempList;
|
|
463
519
|
};
|
|
464
520
|
|
|
465
521
|
// src/create-map.ts
|
|
@@ -740,7 +796,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
|
|
|
740
796
|
});
|
|
741
797
|
// Annotate the CommonJS export names for ESM import in node:
|
|
742
798
|
0 && (module.exports = {
|
|
743
|
-
|
|
799
|
+
activeFeatureByUid,
|
|
744
800
|
addMassMarksLayer,
|
|
745
801
|
buildMassMarksStyles,
|
|
746
802
|
createAnimationMarker,
|
|
@@ -759,7 +815,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
|
|
|
759
815
|
getMapInstance,
|
|
760
816
|
instance,
|
|
761
817
|
removeAllLayers,
|
|
762
|
-
|
|
818
|
+
resetActiveFeature,
|
|
763
819
|
resetActiveVector,
|
|
764
820
|
resetMap,
|
|
765
821
|
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,26 +109,52 @@ 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
|
-
var createVectorStyle = (
|
|
118
|
+
var createVectorStyle = (feature, config) => {
|
|
116
119
|
const {
|
|
117
120
|
isLine,
|
|
118
121
|
colorMap,
|
|
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 data = feature.getProperties();
|
|
133
|
+
const activeStyle = new Style({
|
|
126
134
|
stroke: new Stroke({
|
|
127
|
-
width: strokeWeight,
|
|
135
|
+
width: activeStrokeWeight || strokeWeight || 4,
|
|
136
|
+
color: activeStrokeColor || (colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor)
|
|
137
|
+
})
|
|
138
|
+
});
|
|
139
|
+
const unActiveStyle = new Style({
|
|
140
|
+
stroke: new Stroke({
|
|
141
|
+
width: strokeWeight || 2,
|
|
128
142
|
color: colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || strokeColor : strokeColor
|
|
129
143
|
})
|
|
130
144
|
});
|
|
131
145
|
if (!isLine) {
|
|
132
|
-
|
|
146
|
+
activeStyle.setFill(
|
|
147
|
+
new Fill({
|
|
148
|
+
color: hexToRgba(
|
|
149
|
+
activeFillColor || fillColor || "",
|
|
150
|
+
activeFillOpacity || 1
|
|
151
|
+
) || hexToRgba(
|
|
152
|
+
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
153
|
+
fillOpacity || 1
|
|
154
|
+
)
|
|
155
|
+
})
|
|
156
|
+
);
|
|
157
|
+
unActiveStyle.setFill(
|
|
133
158
|
new Fill({
|
|
134
159
|
color: hexToRgba(
|
|
135
160
|
(colorKey ? (colorMap == null ? void 0 : colorMap.get(data[colorKey])) || fillColor : fillColor) || "",
|
|
@@ -138,24 +163,36 @@ var createVectorStyle = (data, config) => {
|
|
|
138
163
|
})
|
|
139
164
|
);
|
|
140
165
|
}
|
|
141
|
-
|
|
166
|
+
feature.setProperties(
|
|
167
|
+
Object.assign(data, {
|
|
168
|
+
activeStyle,
|
|
169
|
+
unActiveStyle
|
|
170
|
+
})
|
|
171
|
+
);
|
|
172
|
+
return unActiveStyle;
|
|
142
173
|
};
|
|
143
174
|
var createBusinessLayer = (dataList, config) => {
|
|
144
|
-
const { layerName } = config;
|
|
175
|
+
const { layerName, openClick } = config;
|
|
145
176
|
const geoJson = assembleGeoJson(dataList, config);
|
|
146
177
|
const vectorLayer = new VectorLayer({
|
|
147
178
|
zIndex: 5,
|
|
148
179
|
className: layerName ? layerName : "ol-layer",
|
|
149
180
|
source: new VectorSource({
|
|
150
181
|
features: new GeoJSON().readFeatures(geoJson).map((feature) => {
|
|
151
|
-
feature.setStyle(createVectorStyle(feature
|
|
182
|
+
feature.setStyle(createVectorStyle(feature, config));
|
|
152
183
|
return feature;
|
|
153
184
|
})
|
|
154
185
|
})
|
|
155
186
|
});
|
|
187
|
+
if (openClick) {
|
|
188
|
+
createSelectByLayer(vectorLayer);
|
|
189
|
+
}
|
|
156
190
|
vectorLayer.setProperties({
|
|
191
|
+
_isCustom: true,
|
|
192
|
+
_isVectorLayer: true,
|
|
157
193
|
_layerName: layerName,
|
|
158
|
-
_dataList: [...dataList]
|
|
194
|
+
_dataList: [...dataList],
|
|
195
|
+
_uuidSet: new Set(dataList.map((item) => item._uuid) || [])
|
|
159
196
|
});
|
|
160
197
|
return vectorLayer;
|
|
161
198
|
};
|
|
@@ -172,10 +209,10 @@ var removeAllLayers = (isClearAll = true) => {
|
|
|
172
209
|
});
|
|
173
210
|
}
|
|
174
211
|
};
|
|
175
|
-
var
|
|
212
|
+
var resetActiveFeature = () => {
|
|
176
213
|
removeOverlays();
|
|
177
|
-
const
|
|
178
|
-
|
|
214
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
215
|
+
targetLayers.forEach((layer) => {
|
|
179
216
|
const selectInteraction = layer.get("_selectInteraction");
|
|
180
217
|
if (selectInteraction) {
|
|
181
218
|
selectInteraction.dispatchEvent({
|
|
@@ -188,11 +225,11 @@ var resetActiveMarker = () => {
|
|
|
188
225
|
}
|
|
189
226
|
});
|
|
190
227
|
};
|
|
191
|
-
var
|
|
228
|
+
var activeFeatureByUid = (uid) => {
|
|
192
229
|
var _a;
|
|
193
|
-
const
|
|
194
|
-
if (
|
|
195
|
-
const targetLayer =
|
|
230
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isVectorLayer"));
|
|
231
|
+
if (targetLayers.length) {
|
|
232
|
+
const targetLayer = targetLayers.find(
|
|
196
233
|
(layer) => layer.get("_uuidSet").has(uid)
|
|
197
234
|
);
|
|
198
235
|
if (targetLayer) {
|
|
@@ -282,7 +319,7 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
282
319
|
const { activeStyle } = data;
|
|
283
320
|
feature.setStyle(activeStyle);
|
|
284
321
|
if (mapBrowserEvent) {
|
|
285
|
-
emitter_default.emit("
|
|
322
|
+
emitter_default.emit("selected-feature", data);
|
|
286
323
|
}
|
|
287
324
|
vectorLayer.set("_hasActive", true);
|
|
288
325
|
if (vectorLayer.get("_isDynamic")) {
|
|
@@ -302,8 +339,8 @@ var createSelectByLayer = (vectorLayer) => {
|
|
|
302
339
|
const view = instance.getView();
|
|
303
340
|
view.animate({
|
|
304
341
|
zoom: 12,
|
|
305
|
-
|
|
306
|
-
|
|
342
|
+
duration: 1e3,
|
|
343
|
+
center: getCenter(feature.getGeometry().getExtent())
|
|
307
344
|
});
|
|
308
345
|
}
|
|
309
346
|
if (deselected.length) {
|
|
@@ -337,6 +374,7 @@ var createMassMarksLayer = (dataList, styleList = []) => {
|
|
|
337
374
|
});
|
|
338
375
|
vectorLayer.setProperties({
|
|
339
376
|
_isCustom: true,
|
|
377
|
+
_isVectorLayer: true,
|
|
340
378
|
_isMassMarksLayer: true,
|
|
341
379
|
_statusNum: styleList.length / 2,
|
|
342
380
|
_dataList: [...dataList],
|
|
@@ -373,6 +411,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
373
411
|
vectorConfig || {
|
|
374
412
|
key: "line",
|
|
375
413
|
isLine: true,
|
|
414
|
+
openClick: false,
|
|
376
415
|
strokeColor: "rgba(29, 235, 255, 0.8)"
|
|
377
416
|
}
|
|
378
417
|
);
|
|
@@ -384,8 +423,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
384
423
|
vectorConfig || {
|
|
385
424
|
isLine: false,
|
|
386
425
|
key: "faceList",
|
|
387
|
-
fillColor: "#4247DF",
|
|
388
426
|
strokeWeight: 1,
|
|
427
|
+
openClick: false,
|
|
428
|
+
fillColor: "#4247DF",
|
|
389
429
|
strokeStyle: "dashed",
|
|
390
430
|
strokeColor: "#4247DF"
|
|
391
431
|
}
|
|
@@ -396,6 +436,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
396
436
|
_isCustom: true,
|
|
397
437
|
_hasLine: hasLine,
|
|
398
438
|
_hasFace: hasFace,
|
|
439
|
+
_isVectorLayer: true,
|
|
399
440
|
_isDynamic: isDynamic
|
|
400
441
|
});
|
|
401
442
|
instance.addLayer(massMarksLayer);
|
|
@@ -403,7 +444,22 @@ var addMassMarksLayer = (getImgUrlFn) => {
|
|
|
403
444
|
};
|
|
404
445
|
};
|
|
405
446
|
var updateMarksLayersByStatus = (checkedStatusList = []) => {
|
|
406
|
-
|
|
447
|
+
const hideStyle = new Style({});
|
|
448
|
+
const tempList = [];
|
|
449
|
+
const targetLayers = instance.getAllLayers().filter((layer) => layer.get("_isMassMarksLayer"));
|
|
450
|
+
targetLayers.forEach((layer) => {
|
|
451
|
+
const features = layer.getSource().getFeatures();
|
|
452
|
+
features.forEach((feature) => {
|
|
453
|
+
const data = feature.getProperties();
|
|
454
|
+
if (!checkedStatusList.includes(data.status)) {
|
|
455
|
+
feature.setStyle(hideStyle);
|
|
456
|
+
} else {
|
|
457
|
+
tempList.push(data);
|
|
458
|
+
feature.setStyle(data.unActiveStyle);
|
|
459
|
+
}
|
|
460
|
+
});
|
|
461
|
+
});
|
|
462
|
+
return tempList;
|
|
407
463
|
};
|
|
408
464
|
|
|
409
465
|
// src/create-map.ts
|
|
@@ -683,7 +739,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
|
|
|
683
739
|
});
|
|
684
740
|
});
|
|
685
741
|
export {
|
|
686
|
-
|
|
742
|
+
activeFeatureByUid,
|
|
687
743
|
addMassMarksLayer,
|
|
688
744
|
buildMassMarksStyles,
|
|
689
745
|
createAnimationMarker,
|
|
@@ -702,7 +758,7 @@ export {
|
|
|
702
758
|
getMapInstance,
|
|
703
759
|
instance,
|
|
704
760
|
removeAllLayers,
|
|
705
|
-
|
|
761
|
+
resetActiveFeature,
|
|
706
762
|
resetActiveVector,
|
|
707
763
|
resetMap,
|
|
708
764
|
resetZoomAndCenter,
|