map-ol-utils 0.0.48 → 0.0.50

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 CHANGED
@@ -92,6 +92,7 @@ __export(index_exports, {
92
92
  resetActiveVector: () => resetActiveVector,
93
93
  resetMap: () => resetMap,
94
94
  resetZoomAndCenter: () => resetZoomAndCenter,
95
+ setFitViewByLayer: () => setFitViewByLayer,
95
96
  updateMarksLayersByStatus: () => updateMarksLayersByStatus
96
97
  });
97
98
  module.exports = __toCommonJS(index_exports);
@@ -119,7 +120,6 @@ var import_control = require("ol/control");
119
120
  // src/layer-utils.ts
120
121
  var import_geom = require("ol/geom");
121
122
  var import_format = require("ol/format");
122
- var import_extent = require("ol/extent");
123
123
  var import_ol = require("ol");
124
124
  var import_interaction = require("ol/interaction");
125
125
  var import_gcoord = __toESM(require("gcoord"), 1);
@@ -127,6 +127,7 @@ var import_Vector = __toESM(require("ol/layer/Vector"), 1);
127
127
  var import_Vector2 = __toESM(require("ol/source/Vector"), 1);
128
128
  var import_condition = require("ol/events/condition");
129
129
  var import_style = require("ol/style");
130
+ var import_extent = require("ol/extent");
130
131
  var removeOverlays = (key = "") => {
131
132
  if (instance) {
132
133
  const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
@@ -162,6 +163,15 @@ var resetActiveVector = () => {
162
163
  interaction == null ? void 0 : interaction.getFeatures().clear();
163
164
  });
164
165
  };
166
+ var setFitViewByLayer = (layer, fitOptions) => {
167
+ const extent = (0, import_extent.boundingExtent)(
168
+ layer.getSource().getFeatures().map((feature) => feature.getCoordinates())
169
+ );
170
+ instance.getView().fit(extent, __spreadValues({
171
+ padding: [50, 50, 50, 50],
172
+ duration: 1e3
173
+ }, fitOptions));
174
+ };
165
175
  var assembleGeoJson = (dataList, config) => {
166
176
  const { key, crsForm } = config;
167
177
  const tempList = [];
@@ -390,6 +400,7 @@ var buildMassMarksStyles = (getImgUrlFn) => {
390
400
  var createSelectByLayer = (vectorLayer) => {
391
401
  const interaction = new import_interaction.Select({
392
402
  style: null,
403
+ multi: false,
393
404
  hitTolerance: 10,
394
405
  layers: [vectorLayer],
395
406
  condition: (evt) => {
@@ -403,7 +414,7 @@ var createSelectByLayer = (vectorLayer) => {
403
414
  layerFilter: (layer) => layer === vectorLayer
404
415
  }
405
416
  );
406
- return (0, import_condition.click)(evt) && hasFeature;
417
+ return (0, import_condition.singleClick)(evt) && hasFeature;
407
418
  }
408
419
  });
409
420
  interaction.on("select", (evt) => {
@@ -925,5 +936,6 @@ var createWmtsLayer = (serverUrl) => (config) => __async(void 0, null, function*
925
936
  resetActiveVector,
926
937
  resetMap,
927
938
  resetZoomAndCenter,
939
+ setFitViewByLayer,
928
940
  updateMarksLayersByStatus
929
941
  });
package/dist/index.d.cts CHANGED
@@ -11,6 +11,7 @@ import { Select } from 'ol/interaction';
11
11
  import VectorLayer from 'ol/layer/Vector';
12
12
  import { StyleLike } from 'ol/style/Style';
13
13
  import VectorSource from 'ol/source/Vector';
14
+ import { FitOptions } from 'ol/View';
14
15
 
15
16
  interface CustomMap extends Map$1 {
16
17
  activeBaseLayer?: string;
@@ -125,6 +126,12 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
125
126
  * 重置激活的矢量数据
126
127
  */
127
128
  declare const resetActiveVector: () => void;
129
+ /**
130
+ * 根据VectorLayer自动缩放地图到合适的视野级别
131
+ * @param layer
132
+ * @param fitOptions
133
+ */
134
+ declare const setFitViewByLayer: (layer: VectorLayer, fitOptions: FitOptions) => void;
128
135
  declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
129
136
  /**
130
137
  * 追加Features
@@ -185,4 +192,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
185
192
  */
186
193
  declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
187
194
 
188
- export { type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
195
+ export { type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByLayer, updateMarksLayersByStatus };
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ import { Select } from 'ol/interaction';
11
11
  import VectorLayer from 'ol/layer/Vector';
12
12
  import { StyleLike } from 'ol/style/Style';
13
13
  import VectorSource from 'ol/source/Vector';
14
+ import { FitOptions } from 'ol/View';
14
15
 
15
16
  interface CustomMap extends Map$1 {
16
17
  activeBaseLayer?: string;
@@ -125,6 +126,12 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
125
126
  * 重置激活的矢量数据
126
127
  */
127
128
  declare const resetActiveVector: () => void;
129
+ /**
130
+ * 根据VectorLayer自动缩放地图到合适的视野级别
131
+ * @param layer
132
+ * @param fitOptions
133
+ */
134
+ declare const setFitViewByLayer: (layer: VectorLayer, fitOptions: FitOptions) => void;
128
135
  declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
129
136
  /**
130
137
  * 追加Features
@@ -185,4 +192,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
185
192
  */
186
193
  declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
187
194
 
188
- export { type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, updateMarksLayersByStatus };
195
+ export { type CustomMap, type GeometryCoordinates, GeometryType, type GetImgUrl, type GetImgUrlFn, type IconConfig, type MassData, type VectorConfig, type WmtsSourceOptions, activeFeatureByUid, addMassMarksLayer, appendFeaturesByLayer, buildMassMarksStyles, createAnimationMarker, createBaseLayer, createBusinessLayer, createMapInstance, createMapWorldLayer, createMassMarksLayer, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByLayer, updateMarksLayersByStatus };
package/dist/index.js CHANGED
@@ -61,14 +61,14 @@ import { defaults } from "ol/control";
61
61
  // src/layer-utils.ts
62
62
  import { Point } from "ol/geom";
63
63
  import { GeoJSON } from "ol/format";
64
- import { getCenter } from "ol/extent";
65
64
  import { Feature, Overlay } from "ol";
66
65
  import { Select } from "ol/interaction";
67
66
  import gcoord from "gcoord";
68
67
  import VectorLayer from "ol/layer/Vector";
69
68
  import VectorSource from "ol/source/Vector";
70
- import { click } from "ol/events/condition";
69
+ import { singleClick } from "ol/events/condition";
71
70
  import { Fill, Icon, Stroke, Style } from "ol/style";
71
+ import { getCenter, boundingExtent } from "ol/extent";
72
72
  var removeOverlays = (key = "") => {
73
73
  if (instance) {
74
74
  const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
@@ -104,6 +104,15 @@ var resetActiveVector = () => {
104
104
  interaction == null ? void 0 : interaction.getFeatures().clear();
105
105
  });
106
106
  };
107
+ var setFitViewByLayer = (layer, fitOptions) => {
108
+ const extent = boundingExtent(
109
+ layer.getSource().getFeatures().map((feature) => feature.getCoordinates())
110
+ );
111
+ instance.getView().fit(extent, __spreadValues({
112
+ padding: [50, 50, 50, 50],
113
+ duration: 1e3
114
+ }, fitOptions));
115
+ };
107
116
  var assembleGeoJson = (dataList, config) => {
108
117
  const { key, crsForm } = config;
109
118
  const tempList = [];
@@ -332,6 +341,7 @@ var buildMassMarksStyles = (getImgUrlFn) => {
332
341
  var createSelectByLayer = (vectorLayer) => {
333
342
  const interaction = new Select({
334
343
  style: null,
344
+ multi: false,
335
345
  hitTolerance: 10,
336
346
  layers: [vectorLayer],
337
347
  condition: (evt) => {
@@ -345,7 +355,7 @@ var createSelectByLayer = (vectorLayer) => {
345
355
  layerFilter: (layer) => layer === vectorLayer
346
356
  }
347
357
  );
348
- return click(evt) && hasFeature;
358
+ return singleClick(evt) && hasFeature;
349
359
  }
350
360
  });
351
361
  interaction.on("select", (evt) => {
@@ -866,5 +876,6 @@ export {
866
876
  resetActiveVector,
867
877
  resetMap,
868
878
  resetZoomAndCenter,
879
+ setFitViewByLayer,
869
880
  updateMarksLayersByStatus
870
881
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.48",
3
+ "version": "0.0.50",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [