map-ol-utils 0.0.74 → 0.1.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/dist/index.cjs CHANGED
@@ -95,6 +95,7 @@ __export(index_exports, {
95
95
  resetActiveVector: () => resetActiveVector,
96
96
  resetMap: () => resetMap,
97
97
  resetZoomAndCenter: () => resetZoomAndCenter,
98
+ setFitViewByCoords: () => setFitViewByCoords,
98
99
  setFitViewByGeom: () => setFitViewByGeom,
99
100
  setFitViewByLayer: () => setFitViewByLayer,
100
101
  updateMarksLayersByStatus: () => updateMarksLayersByStatus
@@ -124,7 +125,6 @@ var import_control = require("ol/control");
124
125
  // src/layer-utils.ts
125
126
  var import_format = require("ol/format");
126
127
  var import_ol = require("ol");
127
- var import_extent = require("ol/extent");
128
128
  var import_interaction = require("ol/interaction");
129
129
  var import_gcoord = __toESM(require("gcoord"), 1);
130
130
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
@@ -132,6 +132,7 @@ var import_Vector2 = __toESM(require("ol/source/Vector"), 1);
132
132
  var import_geom = require("ol/geom");
133
133
  var import_condition = require("ol/events/condition");
134
134
  var import_style = require("ol/style");
135
+ var import_extent = require("ol/extent");
135
136
  var removeOverlays = (key = "") => {
136
137
  if (instance) {
137
138
  const overlays = instance.getOverlays().getArray().filter((overlay) => overlay.get(key || "position"));
@@ -167,16 +168,32 @@ var resetActiveVector = () => {
167
168
  interaction == null ? void 0 : interaction.getFeatures().clear();
168
169
  });
169
170
  };
170
- var setFitViewByGeom = (geom, fitOptions) => {
171
- instance.getView().fit(geom, __spreadValues({
171
+ var setFitViewByCoords = (coords, mapInstance = instance, fitOptions) => {
172
+ const view = mapInstance.getView();
173
+ if (coords.length === 1) {
174
+ view.animate(__spreadValues({
175
+ zoom: 14,
176
+ duration: 1e3,
177
+ center: coords[0]
178
+ }, fitOptions || {}));
179
+ } else {
180
+ const extent = (0, import_extent.boundingExtent)(coords);
181
+ view.fit(extent, __spreadValues({
182
+ padding: [50, 50, 50, 50],
183
+ duration: 1e3
184
+ }, fitOptions || {}));
185
+ }
186
+ };
187
+ var setFitViewByGeom = (geom, mapInstance = instance, fitOptions) => {
188
+ mapInstance.getView().fit(geom, __spreadValues({
172
189
  padding: [50, 50, 50, 50],
173
190
  duration: 1e3
174
191
  }, fitOptions || {}));
175
192
  };
176
- var setFitViewByLayer = (layer, fitOptions) => {
193
+ var setFitViewByLayer = (layer, mapInstance = instance, fitOptions) => {
177
194
  var _a;
178
195
  const extent = ((_a = layer.getSource()) == null ? void 0 : _a.getExtent()) || [];
179
- instance.getView().fit(extent, __spreadValues({
196
+ mapInstance.getView().fit(extent, __spreadValues({
180
197
  padding: [50, 50, 50, 50],
181
198
  duration: 1e3
182
199
  }, fitOptions || {}));
@@ -353,7 +370,9 @@ var activeFeatureByUid = (uid) => {
353
370
  const selectInteraction = targetLayer.get("_selectInteraction");
354
371
  if (selectInteraction) {
355
372
  const collection = selectInteraction.getFeatures().getArray();
356
- const hasFeature = collection.find((feature) => feature.get("_uuid") === uid);
373
+ const hasFeature = collection.find(
374
+ (feature) => feature.get("_uuid") === uid
375
+ );
357
376
  if (!hasFeature) {
358
377
  selectInteraction.dispatchEvent({
359
378
  type: "select",
@@ -425,7 +444,7 @@ var createSelectByLayer = (vectorLayer) => {
425
444
  }
426
445
  });
427
446
  interaction.on("select", (evt) => {
428
- const { selected, deselected, mapBrowserEvent } = evt;
447
+ const { selected, deselected } = evt;
429
448
  if (selected.length) {
430
449
  const feature = selected[0];
431
450
  const data = feature.getProperties();
@@ -803,6 +822,9 @@ var createMap = (config = {}) => {
803
822
  return instance2;
804
823
  };
805
824
  var disposeMap = (mapInstance = instance) => {
825
+ mapInstance.getOverlays().forEach((overlay) => {
826
+ mapInstance.removeOverlay(overlay);
827
+ });
806
828
  const layers = mapInstance.getAllLayers();
807
829
  layers.forEach((layer) => {
808
830
  mapInstance.removeLayer(layer);
@@ -970,6 +992,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(null, null, function* (
970
992
  resetActiveVector,
971
993
  resetMap,
972
994
  resetZoomAndCenter,
995
+ setFitViewByCoords,
973
996
  setFitViewByGeom,
974
997
  setFitViewByLayer,
975
998
  updateMarksLayersByStatus
package/dist/index.d.cts CHANGED
@@ -8,7 +8,7 @@ import TileLayer from 'ol/layer/Tile';
8
8
  import * as ol_geom from 'ol/geom';
9
9
  import { SimpleGeometry, Point } from 'ol/geom';
10
10
  import { Options } from 'ol/Overlay';
11
- import { FitOptions } from 'ol/View';
11
+ import { FitOptions, AnimationOptions } from 'ol/View';
12
12
  import { Select } from 'ol/interaction';
13
13
  import VectorLayer from 'ol/layer/Vector';
14
14
  import { StyleLike } from 'ol/style/Style';
@@ -131,18 +131,27 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
131
131
  * 重置激活的矢量数据
132
132
  */
133
133
  declare const resetActiveVector: () => void;
134
+ /**
135
+ * 根据Array<Coordinate> Fit
136
+ * @param coords
137
+ * @param mapInstance
138
+ * @param fitOptions
139
+ */
140
+ declare const setFitViewByCoords: (coords: Array<Coordinate>, mapInstance?: CustomMap, fitOptions?: FitOptions | AnimationOptions) => void;
134
141
  /**
135
142
  * 根据SimpleGeometry Fit
136
143
  * @param geom
144
+ * @param mapInstance
137
145
  * @param fitOptions
138
146
  */
139
- declare const setFitViewByGeom: (geom: SimpleGeometry, fitOptions?: FitOptions) => void;
147
+ declare const setFitViewByGeom: (geom: SimpleGeometry, mapInstance?: CustomMap, fitOptions?: FitOptions) => void;
140
148
  /**
141
149
  * 根据VectorLayer要素的四至信息Fit
142
150
  * @param layer
151
+ * @param mapInstance
143
152
  * @param fitOptions
144
153
  */
145
- declare const setFitViewByLayer: (layer: VectorLayer, fitOptions?: FitOptions) => void;
154
+ declare const setFitViewByLayer: (layer: VectorLayer, mapInstance?: CustomMap, fitOptions?: FitOptions) => void;
146
155
  declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
147
156
  /**
148
157
  * 追加Features
@@ -208,4 +217,4 @@ declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassD
208
217
  */
209
218
  declare const createOverlay: (config?: Options) => Overlay;
210
219
 
211
- 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, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
220
+ 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, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByCoords, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ import TileLayer from 'ol/layer/Tile';
8
8
  import * as ol_geom from 'ol/geom';
9
9
  import { SimpleGeometry, Point } from 'ol/geom';
10
10
  import { Options } from 'ol/Overlay';
11
- import { FitOptions } from 'ol/View';
11
+ import { FitOptions, AnimationOptions } from 'ol/View';
12
12
  import { Select } from 'ol/interaction';
13
13
  import VectorLayer from 'ol/layer/Vector';
14
14
  import { StyleLike } from 'ol/style/Style';
@@ -131,18 +131,27 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
131
131
  * 重置激活的矢量数据
132
132
  */
133
133
  declare const resetActiveVector: () => void;
134
+ /**
135
+ * 根据Array<Coordinate> Fit
136
+ * @param coords
137
+ * @param mapInstance
138
+ * @param fitOptions
139
+ */
140
+ declare const setFitViewByCoords: (coords: Array<Coordinate>, mapInstance?: CustomMap, fitOptions?: FitOptions | AnimationOptions) => void;
134
141
  /**
135
142
  * 根据SimpleGeometry Fit
136
143
  * @param geom
144
+ * @param mapInstance
137
145
  * @param fitOptions
138
146
  */
139
- declare const setFitViewByGeom: (geom: SimpleGeometry, fitOptions?: FitOptions) => void;
147
+ declare const setFitViewByGeom: (geom: SimpleGeometry, mapInstance?: CustomMap, fitOptions?: FitOptions) => void;
140
148
  /**
141
149
  * 根据VectorLayer要素的四至信息Fit
142
150
  * @param layer
151
+ * @param mapInstance
143
152
  * @param fitOptions
144
153
  */
145
- declare const setFitViewByLayer: (layer: VectorLayer, fitOptions?: FitOptions) => void;
154
+ declare const setFitViewByLayer: (layer: VectorLayer, mapInstance?: CustomMap, fitOptions?: FitOptions) => void;
146
155
  declare const createBusinessLayer: (dataList: MassData[], config: VectorConfig) => VectorLayer<VectorSource<Feature<ol_geom.Geometry>>, Feature<ol_geom.Geometry>>;
147
156
  /**
148
157
  * 追加Features
@@ -208,4 +217,4 @@ declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassD
208
217
  */
209
218
  declare const createOverlay: (config?: Options) => Overlay;
210
219
 
211
- 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, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
220
+ 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, createMap, createMapInstance, createMapWorldLayer, createMassMarksLayer, createOverlay, createSelectByLayer, createVectorFaceLayer, createVectorLineLayer, createWmtsLayer, disposeMap, emitter, getLayersDataList, getMapInstance, instance, removeAllLayers, removeLayerByName, resetActiveFeature, resetActiveVector, resetMap, resetZoomAndCenter, setFitViewByCoords, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
package/dist/index.js CHANGED
@@ -61,7 +61,6 @@ import { defaults } from "ol/control";
61
61
  // src/layer-utils.ts
62
62
  import { GeoJSON } from "ol/format";
63
63
  import { Feature, Overlay } from "ol";
64
- import { getCenter } from "ol/extent";
65
64
  import { Select } from "ol/interaction";
66
65
  import gcoord from "gcoord";
67
66
  import VectorLayer from "ol/layer/Vector";
@@ -69,6 +68,7 @@ import VectorSource from "ol/source/Vector";
69
68
  import { Point } from "ol/geom";
70
69
  import { singleClick } from "ol/events/condition";
71
70
  import { Fill, Icon, Stroke, Style } from "ol/style";
71
+ import { boundingExtent, getCenter } 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,16 +104,32 @@ var resetActiveVector = () => {
104
104
  interaction == null ? void 0 : interaction.getFeatures().clear();
105
105
  });
106
106
  };
107
- var setFitViewByGeom = (geom, fitOptions) => {
108
- instance.getView().fit(geom, __spreadValues({
107
+ var setFitViewByCoords = (coords, mapInstance = instance, fitOptions) => {
108
+ const view = mapInstance.getView();
109
+ if (coords.length === 1) {
110
+ view.animate(__spreadValues({
111
+ zoom: 14,
112
+ duration: 1e3,
113
+ center: coords[0]
114
+ }, fitOptions || {}));
115
+ } else {
116
+ const extent = boundingExtent(coords);
117
+ view.fit(extent, __spreadValues({
118
+ padding: [50, 50, 50, 50],
119
+ duration: 1e3
120
+ }, fitOptions || {}));
121
+ }
122
+ };
123
+ var setFitViewByGeom = (geom, mapInstance = instance, fitOptions) => {
124
+ mapInstance.getView().fit(geom, __spreadValues({
109
125
  padding: [50, 50, 50, 50],
110
126
  duration: 1e3
111
127
  }, fitOptions || {}));
112
128
  };
113
- var setFitViewByLayer = (layer, fitOptions) => {
129
+ var setFitViewByLayer = (layer, mapInstance = instance, fitOptions) => {
114
130
  var _a;
115
131
  const extent = ((_a = layer.getSource()) == null ? void 0 : _a.getExtent()) || [];
116
- instance.getView().fit(extent, __spreadValues({
132
+ mapInstance.getView().fit(extent, __spreadValues({
117
133
  padding: [50, 50, 50, 50],
118
134
  duration: 1e3
119
135
  }, fitOptions || {}));
@@ -290,7 +306,9 @@ var activeFeatureByUid = (uid) => {
290
306
  const selectInteraction = targetLayer.get("_selectInteraction");
291
307
  if (selectInteraction) {
292
308
  const collection = selectInteraction.getFeatures().getArray();
293
- const hasFeature = collection.find((feature) => feature.get("_uuid") === uid);
309
+ const hasFeature = collection.find(
310
+ (feature) => feature.get("_uuid") === uid
311
+ );
294
312
  if (!hasFeature) {
295
313
  selectInteraction.dispatchEvent({
296
314
  type: "select",
@@ -362,7 +380,7 @@ var createSelectByLayer = (vectorLayer) => {
362
380
  }
363
381
  });
364
382
  interaction.on("select", (evt) => {
365
- const { selected, deselected, mapBrowserEvent } = evt;
383
+ const { selected, deselected } = evt;
366
384
  if (selected.length) {
367
385
  const feature = selected[0];
368
386
  const data = feature.getProperties();
@@ -740,6 +758,9 @@ var createMap = (config = {}) => {
740
758
  return instance2;
741
759
  };
742
760
  var disposeMap = (mapInstance = instance) => {
761
+ mapInstance.getOverlays().forEach((overlay) => {
762
+ mapInstance.removeOverlay(overlay);
763
+ });
743
764
  const layers = mapInstance.getAllLayers();
744
765
  layers.forEach((layer) => {
745
766
  mapInstance.removeLayer(layer);
@@ -906,6 +927,7 @@ export {
906
927
  resetActiveVector,
907
928
  resetMap,
908
929
  resetZoomAndCenter,
930
+ setFitViewByCoords,
909
931
  setFitViewByGeom,
910
932
  setFitViewByLayer,
911
933
  updateMarksLayersByStatus
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.74",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [