map-ol-utils 0.0.52 → 0.0.54

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
+ setFitViewByGeom: () => setFitViewByGeom,
95
96
  setFitViewByLayer: () => setFitViewByLayer,
96
97
  updateMarksLayersByStatus: () => updateMarksLayersByStatus
97
98
  });
@@ -118,13 +119,13 @@ var import_View = __toESM(require("ol/View"), 1);
118
119
  var import_control = require("ol/control");
119
120
 
120
121
  // src/layer-utils.ts
121
- var import_geom = require("ol/geom");
122
122
  var import_format = require("ol/format");
123
123
  var import_ol = require("ol");
124
124
  var import_interaction = require("ol/interaction");
125
125
  var import_gcoord = __toESM(require("gcoord"), 1);
126
126
  var import_Vector = __toESM(require("ol/layer/Vector"), 1);
127
127
  var import_Vector2 = __toESM(require("ol/source/Vector"), 1);
128
+ var import_geom = require("ol/geom");
128
129
  var import_condition = require("ol/events/condition");
129
130
  var import_style = require("ol/style");
130
131
  var import_extent = require("ol/extent");
@@ -163,6 +164,12 @@ var resetActiveVector = () => {
163
164
  interaction == null ? void 0 : interaction.getFeatures().clear();
164
165
  });
165
166
  };
167
+ var setFitViewByGeom = (geom, fitOptions) => {
168
+ instance.getView().fit(geom, __spreadValues({
169
+ padding: [50, 50, 50, 50],
170
+ duration: 1e3
171
+ }, fitOptions || {}));
172
+ };
166
173
  var setFitViewByLayer = (layer, fitOptions) => {
167
174
  const extent = (0, import_extent.boundingExtent)(
168
175
  layer.getSource().getFeatures().map((feature) => feature.getGeometry().getCoordinates())
@@ -445,9 +452,9 @@ var createSelectByLayer = (vectorLayer) => {
445
452
  }
446
453
  const view = instance.getView();
447
454
  view.animate({
448
- zoom: 12,
449
455
  duration: 1e3,
450
- center: (0, import_extent.getCenter)(feature.getGeometry().getExtent())
456
+ center: (0, import_extent.getCenter)(feature.getGeometry().getExtent()),
457
+ zoom: vectorLayer.get("_isAutoFit") ? view.getZoom() : 12
451
458
  });
452
459
  }
453
460
  if (deselected.length) {
@@ -502,6 +509,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
502
509
  hasLine,
503
510
  hasFace,
504
511
  isDynamic,
512
+ isAutoFit,
505
513
  statusNum,
506
514
  markerIcon,
507
515
  markerSize,
@@ -517,6 +525,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
517
525
  });
518
526
  const massMarksLayer = createMassMarksLayer(dataList, massMarksStyles);
519
527
  if (openClick) {
528
+ massMarksLayer.setProperties({
529
+ _isAutoFit: isAutoFit
530
+ });
520
531
  createSelectByLayer(massMarksLayer);
521
532
  }
522
533
  if (hasLine) {
@@ -936,6 +947,7 @@ var createWmtsLayer = (serverUrl) => (config) => __async(null, null, function* (
936
947
  resetActiveVector,
937
948
  resetMap,
938
949
  resetZoomAndCenter,
950
+ setFitViewByGeom,
939
951
  setFitViewByLayer,
940
952
  updateMarksLayersByStatus
941
953
  });
package/dist/index.d.cts CHANGED
@@ -6,12 +6,12 @@ import { Coordinate } from 'ol/coordinate';
6
6
  import { Emitter, EventType } from 'mitt';
7
7
  import TileLayer from 'ol/layer/Tile';
8
8
  import * as ol_geom from 'ol/geom';
9
- import { Point } from 'ol/geom';
9
+ import { SimpleGeometry, Point } from 'ol/geom';
10
+ import { FitOptions } from 'ol/View';
10
11
  import { Select } from 'ol/interaction';
11
12
  import VectorLayer from 'ol/layer/Vector';
12
13
  import { StyleLike } from 'ol/style/Style';
13
14
  import VectorSource from 'ol/source/Vector';
14
- import { FitOptions } from 'ol/View';
15
15
 
16
16
  interface CustomMap extends Map$1 {
17
17
  activeBaseLayer?: string;
@@ -51,6 +51,7 @@ type IconConfig = {
51
51
  isDynamic?: boolean;
52
52
  markerIcon: string;
53
53
  activeScale?: number;
54
+ isAutoFit?: boolean;
54
55
  vectorConfig?: VectorConfig;
55
56
  markerSize: [number, number];
56
57
  };
@@ -127,7 +128,13 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
127
128
  */
128
129
  declare const resetActiveVector: () => void;
129
130
  /**
130
- * 根据VectorLayer自动缩放地图到合适的视野级别
131
+ * 根据SimpleGeometry Fit
132
+ * @param geom
133
+ * @param fitOptions
134
+ */
135
+ declare const setFitViewByGeom: (geom: SimpleGeometry, fitOptions?: FitOptions) => void;
136
+ /**
137
+ * 根据VectorLayer要素的四至信息Fit
131
138
  * @param layer
132
139
  * @param fitOptions
133
140
  */
@@ -192,4 +199,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
192
199
  */
193
200
  declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
194
201
 
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 };
202
+ 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, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
package/dist/index.d.ts CHANGED
@@ -6,12 +6,12 @@ import { Coordinate } from 'ol/coordinate';
6
6
  import { Emitter, EventType } from 'mitt';
7
7
  import TileLayer from 'ol/layer/Tile';
8
8
  import * as ol_geom from 'ol/geom';
9
- import { Point } from 'ol/geom';
9
+ import { SimpleGeometry, Point } from 'ol/geom';
10
+ import { FitOptions } from 'ol/View';
10
11
  import { Select } from 'ol/interaction';
11
12
  import VectorLayer from 'ol/layer/Vector';
12
13
  import { StyleLike } from 'ol/style/Style';
13
14
  import VectorSource from 'ol/source/Vector';
14
- import { FitOptions } from 'ol/View';
15
15
 
16
16
  interface CustomMap extends Map$1 {
17
17
  activeBaseLayer?: string;
@@ -51,6 +51,7 @@ type IconConfig = {
51
51
  isDynamic?: boolean;
52
52
  markerIcon: string;
53
53
  activeScale?: number;
54
+ isAutoFit?: boolean;
54
55
  vectorConfig?: VectorConfig;
55
56
  markerSize: [number, number];
56
57
  };
@@ -127,7 +128,13 @@ declare const createAnimationMarker: (imgUrl: string, data: MassData) => void;
127
128
  */
128
129
  declare const resetActiveVector: () => void;
129
130
  /**
130
- * 根据VectorLayer自动缩放地图到合适的视野级别
131
+ * 根据SimpleGeometry Fit
132
+ * @param geom
133
+ * @param fitOptions
134
+ */
135
+ declare const setFitViewByGeom: (geom: SimpleGeometry, fitOptions?: FitOptions) => void;
136
+ /**
137
+ * 根据VectorLayer要素的四至信息Fit
131
138
  * @param layer
132
139
  * @param fitOptions
133
140
  */
@@ -192,4 +199,4 @@ declare const addMassMarksLayer: (getImgUrlFn: GetImgUrlFn) => (dataList: never[
192
199
  */
193
200
  declare const updateMarksLayersByStatus: (checkedStatusList?: string[]) => MassData[];
194
201
 
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 };
202
+ 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, setFitViewByGeom, setFitViewByLayer, updateMarksLayersByStatus };
package/dist/index.js CHANGED
@@ -59,13 +59,13 @@ import View from "ol/View";
59
59
  import { defaults } from "ol/control";
60
60
 
61
61
  // src/layer-utils.ts
62
- import { Point } from "ol/geom";
63
62
  import { GeoJSON } from "ol/format";
64
63
  import { Feature, Overlay } from "ol";
65
64
  import { Select } from "ol/interaction";
66
65
  import gcoord from "gcoord";
67
66
  import VectorLayer from "ol/layer/Vector";
68
67
  import VectorSource from "ol/source/Vector";
68
+ import { Point } from "ol/geom";
69
69
  import { singleClick } from "ol/events/condition";
70
70
  import { Fill, Icon, Stroke, Style } from "ol/style";
71
71
  import { getCenter, boundingExtent } from "ol/extent";
@@ -104,6 +104,12 @@ 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({
109
+ padding: [50, 50, 50, 50],
110
+ duration: 1e3
111
+ }, fitOptions || {}));
112
+ };
107
113
  var setFitViewByLayer = (layer, fitOptions) => {
108
114
  const extent = boundingExtent(
109
115
  layer.getSource().getFeatures().map((feature) => feature.getGeometry().getCoordinates())
@@ -386,9 +392,9 @@ var createSelectByLayer = (vectorLayer) => {
386
392
  }
387
393
  const view = instance.getView();
388
394
  view.animate({
389
- zoom: 12,
390
395
  duration: 1e3,
391
- center: getCenter(feature.getGeometry().getExtent())
396
+ center: getCenter(feature.getGeometry().getExtent()),
397
+ zoom: vectorLayer.get("_isAutoFit") ? view.getZoom() : 12
392
398
  });
393
399
  }
394
400
  if (deselected.length) {
@@ -443,6 +449,7 @@ var addMassMarksLayer = (getImgUrlFn) => {
443
449
  hasLine,
444
450
  hasFace,
445
451
  isDynamic,
452
+ isAutoFit,
446
453
  statusNum,
447
454
  markerIcon,
448
455
  markerSize,
@@ -458,6 +465,9 @@ var addMassMarksLayer = (getImgUrlFn) => {
458
465
  });
459
466
  const massMarksLayer = createMassMarksLayer(dataList, massMarksStyles);
460
467
  if (openClick) {
468
+ massMarksLayer.setProperties({
469
+ _isAutoFit: isAutoFit
470
+ });
461
471
  createSelectByLayer(massMarksLayer);
462
472
  }
463
473
  if (hasLine) {
@@ -876,6 +886,7 @@ export {
876
886
  resetActiveVector,
877
887
  resetMap,
878
888
  resetZoomAndCenter,
889
+ setFitViewByGeom,
879
890
  setFitViewByLayer,
880
891
  updateMarksLayersByStatus
881
892
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-ol-utils",
3
- "version": "0.0.52",
3
+ "version": "0.0.54",
4
4
  "type": "module",
5
5
  "description": "Openlayers utils library",
6
6
  "files": [