@vtx/ol-map 1.0.11 → 1.0.13

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.
@@ -1,19 +1,23 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.getStyle = exports["default"] = void 0;
8
7
  var _layer = require("ol/layer");
8
+ var _ol = require("ol");
9
9
  var _source = require("ol/source");
10
- var _style = require("ol/style");
11
- var _format = require("ol/format");
12
10
  var _renderer = _interopRequireDefault(require("../renderer"));
13
- var _http = _interopRequireDefault(require("../_util/http"));
14
- var _mapTool = _interopRequireDefault(require("../_util/mapTool"));
11
+ var _style2 = require("ol/style");
15
12
  var _isFunction = _interopRequireDefault(require("../_util/isFunction"));
13
+ var _createFeatureCollection = require("./createFeatureCollection");
14
+ var _excluded = ["url", "params", "data", "features", "sourceOptions", "key", "name", "label", "labelField", "point", "cluster", "template", "autoRefresh", "method", "iconOptions"];
16
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
21
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
22
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
19
23
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -24,148 +28,88 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
24
28
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
25
29
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
26
30
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
27
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
31
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
30
32
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
31
33
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
32
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
33
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
34
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
35
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
36
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
37
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
38
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
39
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
40
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
41
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
42
- var transformLonLatToWGS84 = function transformLonLatToWGS84(lonLat, coordType) {
43
- var _lonLat = _toConsumableArray(lonLat);
44
- if (coordType === 'bmap') {
45
- var gcj = _mapTool["default"].bd09togcj02(lonLat[0], lonLat[1]);
46
- _lonLat = _mapTool["default"].gcj02towgs84(gcj[0], gcj[1]);
47
- } else if (coordType === 'amap') {
48
- _lonLat = _mapTool["default"].gcj02towgs84(lonLat[0], lonLat[1]);
49
- }
50
- return _lonLat;
51
- };
52
- var transformGeometryInfoToWGS84 = function transformGeometryInfoToWGS84(lngLats, type, coordType) {
53
- var lngLatArr = [];
54
- if (lngLats) {
55
- if (type === 'point') {
56
- var _l = typeof lngLats === 'string' ? lngLats.split(',') : lngLats;
57
- lngLatArr = transformLonLatToWGS84(_l, coordType);
58
- } else if (['polygon', 'polyline'].includes(type)) {
59
- lngLatArr[0] = [];
60
- lngLats.split(';').map(function (res) {
61
- var _res$split = res.split(','),
62
- _res$split2 = _slicedToArray(_res$split, 2),
63
- lng = _res$split2[0],
64
- lat = _res$split2[1];
65
- lngLatArr[0].push(transformLonLatToWGS84([Number(lng), Number(lat)], coordType));
66
- });
67
- }
68
- }
69
- return lngLatArr;
70
- };
71
- var transformGeometry = function transformGeometry(geometryInfo) {
72
- /**
73
- * geometry: {
74
- * "type": "Point | LineString | Polygon | MultiPoint | MultiLineString | MultiPolygon | GeometryCollection",
75
- * "coordinates": []
76
- * }
77
- */
78
-
79
- var type = geometryInfo.type,
80
- lngLats = geometryInfo.lngLats,
81
- coordType = geometryInfo.coordType;
34
+ var getTextStyle = function getTextStyle(layer) {
35
+ var style = layer._options.style;
36
+ if (style) {
37
+ if (typeof style === 'string') {
38
+ return function (feature) {
39
+ var _style = new _renderer["default"].Marker({
40
+ icon: style
41
+ });
42
+ _style.setText(getText(feature, layer));
43
+ return _style;
44
+ };
45
+ } else {
46
+ // 判断是否为自定义函数渲染
47
+ var isFun = (0, _isFunction["default"])(style);
82
48
 
83
- /**
84
- * geometryInfo: {
85
- * coordType: "wgs84"
86
- * lngLats: "119.02486914921874,25.63890915087647"
87
- * type: "point"
88
- * }
89
- */
49
+ // 判断是否为自定义样式渲染
50
+ var isStyle = style instanceof _style2.Style;
90
51
 
91
- var _type = type.replace(/^\S/, function (s) {
92
- return s.toUpperCase();
93
- });
94
- if (_type === 'Polyline') {
95
- _type = 'MultiLineString';
96
- }
97
- return {
98
- type: _type,
99
- coordinates: transformGeometryInfoToWGS84(lngLats, type, coordType)
100
- };
101
- };
102
- var createFeature = function createFeature(v) {
103
- return {
104
- type: 'Feature',
105
- geometry: transformGeometry(v.geometryInfo),
106
- properties: _objectSpread({}, v)
107
- };
108
- };
109
- var createFeatureCollection = function createFeatureCollection(data) {
110
- var featureCollection = {
111
- type: 'FeatureCollection',
112
- features: []
113
- };
114
- var features = [];
115
- data.map(function (v) {
116
- if (v.geometryInfo) {
117
- features.push(createFeature(v));
52
+ // 判断是否为渲染器渲染
53
+ var isRender = (style === null || style === void 0 ? void 0 : style.type) && style instanceof _renderer["default"][style.type];
54
+ if (isFun || isStyle || isRender) {
55
+ return style;
56
+ } else if (style.mode) {
57
+ if (style.mode === 'Simple') {
58
+ return function (feature) {
59
+ var _style = _renderer["default"].Simple(style.render);
60
+ _style.setText(getText(feature, layer));
61
+ return _style;
62
+ };
63
+ }
64
+ if (style.mode === 'UniqueValue') {
65
+ return function (feature) {
66
+ var _style = _renderer["default"].UniqueValue(feature, style.render);
67
+ _style.setText(getText(feature, layer));
68
+ return _style;
69
+ };
70
+ }
71
+ if (style.mode === 'ClassBreaks') {
72
+ return function (feature) {
73
+ var _style = _renderer["default"].ClassBreaks(feature, style.render);
74
+ _style.setText(getText(feature, layer));
75
+ return _style;
76
+ };
77
+ }
78
+ }
118
79
  }
119
- });
120
- featureCollection.features = features;
121
- return featureCollection;
122
- };
123
- var getDataByHttp = function getDataByHttp(url, params, method) {
124
- var request = _http["default"].get;
125
- if (method === 'POST' || method === 'post') {
126
- request = _http["default"].post;
127
80
  }
128
- return request(url, {
129
- body: params
130
- }).then(function (res) {
131
- var _res$data;
132
- if (url.indexOf('/geoserver/') !== -1) {
133
- return res;
134
- }
135
- if (res !== null && res !== void 0 && (_res$data = res.data) !== null && _res$data !== void 0 && _res$data.length) {
136
- return createFeatureCollection(res.data);
137
- }
138
- });
139
81
  };
140
82
  var getStyle = function getStyle(style) {
141
- if (typeof style === 'string') {
142
- return new _renderer["default"].Marker({
143
- icon: style
144
- });
145
- } else {
146
- // 判断是否为自定义函数渲染
147
- var isFun = (0, _isFunction["default"])(style);
83
+ if (style) {
84
+ if (typeof style === 'string') {
85
+ return new _renderer["default"].Marker({
86
+ icon: style
87
+ });
88
+ } else {
89
+ // 判断是否为自定义函数渲染
90
+ var isFun = (0, _isFunction["default"])(style);
148
91
 
149
- // 判断是否为自定义样式渲染
150
- var isStyle = style instanceof _style.Style;
92
+ // 判断是否为自定义样式渲染
93
+ var isStyle = style instanceof _style2.Style;
151
94
 
152
- // 判断是否为渲染器渲染
153
- var isRender = (style === null || style === void 0 ? void 0 : style.type) && style instanceof _renderer["default"][style.type];
154
- if (isFun || isStyle || isRender) {
155
- return style;
156
- } else if (style.mode) {
157
- if (style.mode === 'Simple') {
158
- return _renderer["default"].Simple(style.render);
159
- }
160
- if (style.mode === 'UniqueValue') {
161
- return function (feature) {
162
- return _renderer["default"].UniqueValue(feature, style.render);
163
- };
164
- }
165
- if (style.mode === 'ClassBreaks') {
166
- return function (feature) {
167
- return _renderer["default"].ClassBreaks(feature, style.render);
168
- };
95
+ // 判断是否为渲染器渲染
96
+ var isRender = (style === null || style === void 0 ? void 0 : style.type) && style instanceof _renderer["default"][style.type];
97
+ if (isFun || isStyle || isRender) {
98
+ return style;
99
+ } else if (style.mode) {
100
+ if (style.mode === 'Simple') {
101
+ return _renderer["default"].Simple(style.render);
102
+ }
103
+ if (style.mode === 'UniqueValue') {
104
+ return function (feature) {
105
+ return _renderer["default"].UniqueValue(feature, style.render);
106
+ };
107
+ }
108
+ if (style.mode === 'ClassBreaks') {
109
+ return function (feature) {
110
+ return _renderer["default"].ClassBreaks(feature, style.render);
111
+ };
112
+ }
169
113
  }
170
114
  }
171
115
  }
@@ -184,17 +128,58 @@ var FeatureLayer = /*#__PURE__*/function (_Vector) {
184
128
  sourceOptions = options.sourceOptions,
185
129
  key = options.key,
186
130
  name = options.name,
187
- labelField = options.labelField,
131
+ label = options.label,
132
+ _labelField = options.labelField,
133
+ point = options.point,
134
+ cluster = options.cluster,
188
135
  template = options.template,
189
136
  autoRefresh = options.autoRefresh,
190
- method = options.method;
191
- options.source = options.source || new _source.Vector(_objectSpread({
137
+ method = options.method,
138
+ iconOptions = options.iconOptions,
139
+ other = _objectWithoutProperties(options, _excluded);
140
+ var props = _objectSpread({}, other);
141
+ props.source = props.source || new _source.Vector(_objectSpread({
192
142
  features: features
193
143
  }, sourceOptions));
194
- if (options.style) {
195
- options.style = getStyle(options.style);
144
+ if (props.style) {
145
+ props.style = getStyle(props.style);
196
146
  }
197
- _this = _super.call(this, options);
147
+ _this = _super.call(this, props);
148
+
149
+ // 参数
150
+ _defineProperty(_assertThisInitialized(_this), "getLabelStyle", function (feature, color) {
151
+ var labelField = _this._options.labelField;
152
+
153
+ // 判断是否是聚合点位
154
+ if (feature.isCluster) {
155
+ var _feature$get;
156
+ var size = ((_feature$get = feature.get('features')) === null || _feature$get === void 0 ? void 0 : _feature$get.length) || 0;
157
+ if (size !== 1) {
158
+ return;
159
+ }
160
+ }
161
+ if (labelField) {
162
+ return new _style2.Text({
163
+ text: feature.values_[labelField] || '-',
164
+ font: '12px Calibri,sans-serif',
165
+ fill: new _style2.Fill({
166
+ color: color
167
+ }),
168
+ backgroundFill: new _style2.Fill({
169
+ color: '#fff'
170
+ }),
171
+ backgroundStroke: new _style2.Stroke({
172
+ color: color,
173
+ width: 1
174
+ }),
175
+ padding: [4, 2, 2, 4],
176
+ justify: 'center',
177
+ textBaseline: 'middle',
178
+ offsetY: 12
179
+ });
180
+ }
181
+ });
182
+ _this._options = options;
198
183
 
199
184
  // 接口地址
200
185
  _this.url = url;
@@ -211,8 +196,17 @@ var FeatureLayer = /*#__PURE__*/function (_Vector) {
211
196
  // 图层名称
212
197
  _this.name = name;
213
198
 
199
+ // 标签
200
+ _this.label = label;
201
+
214
202
  // 标签字段
215
- _this.labelField = labelField;
203
+ _this.labelField = _labelField;
204
+
205
+ // 聚合
206
+ _this.cluster = cluster;
207
+
208
+ // 海量点
209
+ _this.point = point;
216
210
 
217
211
  // 自动刷新标识
218
212
  _this.autoRefresh = autoRefresh;
@@ -234,17 +228,202 @@ var FeatureLayer = /*#__PURE__*/function (_Vector) {
234
228
  return _this;
235
229
  }
236
230
  _createClass(FeatureLayer, [{
231
+ key: "style",
232
+ set: function set(val) {
233
+ this._options.style = val;
234
+ this.setStyle(this.getStyleByMode());
235
+ }
236
+ }, {
237
+ key: "label",
238
+ set: function set(val) {
239
+ this._options.label = val;
240
+ this.setStyle(this.getStyleByMode());
241
+ }
242
+ }, {
243
+ key: "point",
244
+ set: function set(val) {
245
+ this._options.point = val;
246
+ this.setStyle(this.getStyleByMode());
247
+ }
248
+ }, {
249
+ key: "cluster",
250
+ set: function set(val) {
251
+ this._options.cluster = val;
252
+ this.setClusterSource(val);
253
+ this.setStyle(this.getStyleByMode());
254
+ }
255
+ }, {
256
+ key: "getStyleByMode",
257
+ value: function getStyleByMode() {
258
+ var _this2 = this;
259
+ var style = this._options.style;
260
+ if (style) {
261
+ if (typeof style === 'string') {
262
+ return function (feature) {
263
+ return new _renderer["default"].Marker(_objectSpread({}, _this2.getMarkerOptions(feature, style)));
264
+ };
265
+ } else {
266
+ // 判断是否为自定义函数渲染
267
+ var isFun = (0, _isFunction["default"])(style);
268
+
269
+ // 判断是否为自定义样式渲染
270
+ var isStyle = style instanceof _style2.Style;
271
+
272
+ // 判断是否为渲染器渲染
273
+ var isRender = (style === null || style === void 0 ? void 0 : style.type) && style instanceof _renderer["default"][style.type];
274
+ if (isFun || isStyle || isRender) {
275
+ return style;
276
+ } else if (style.mode) {
277
+ if (style.mode === 'Simple') {
278
+ return function (feature) {
279
+ var options = _this2.getSimpleStyle(feature, style.render);
280
+ return _renderer["default"].Simple(options);
281
+ };
282
+ }
283
+ if (style.mode === 'UniqueValue') {
284
+ return function (feature) {
285
+ var _feature$get2;
286
+ var size = ((_feature$get2 = feature.get('features')) === null || _feature$get2 === void 0 ? void 0 : _feature$get2.length) || 0;
287
+ if (size > 1) {
288
+ var _options = _this2.getSimpleStyle(feature, style.render.render[0]);
289
+ return _renderer["default"].Simple(_options);
290
+ }
291
+ var options = _this2.getMultipleStyle(feature, style.render);
292
+ return _renderer["default"].UniqueValue(feature, options);
293
+ };
294
+ }
295
+ if (style.mode === 'ClassBreaks') {
296
+ return function (feature) {
297
+ var _feature$get3;
298
+ var size = ((_feature$get3 = feature.get('features')) === null || _feature$get3 === void 0 ? void 0 : _feature$get3.length) || 0;
299
+ if (size > 1) {
300
+ var _options2 = _this2.getSimpleStyle(feature, style.render.render[0]);
301
+ return _renderer["default"].Simple(_options2);
302
+ }
303
+ var options = _this2.getMultipleStyle(feature, style.render);
304
+ return _renderer["default"].ClassBreaks(feature, options);
305
+ };
306
+ }
307
+ }
308
+ }
309
+ }
310
+ }
311
+ }, {
312
+ key: "getSimpleStyle",
313
+ value: function getSimpleStyle(feature, _render) {
314
+ var _render$style;
315
+ var render = _objectSpread({}, _render);
316
+ if (render.type === "Marker" && render !== null && render !== void 0 && (_render$style = render.style) !== null && _render$style !== void 0 && _render$style.icon) {
317
+ render.style = _objectSpread(_objectSpread({}, render.style), this.getMarkerOptions(feature, render.style));
318
+ }
319
+ return render;
320
+ }
321
+ }, {
322
+ key: "getMultipleStyle",
323
+ value: function getMultipleStyle(feature, _render) {
324
+ var _render$render,
325
+ _this3 = this;
326
+ var render = _objectSpread({}, _render);
327
+ if (render !== null && render !== void 0 && (_render$render = render.render) !== null && _render$render !== void 0 && _render$render.length) {
328
+ render.render = render.render.map(function (v) {
329
+ return _this3.getSimpleStyle(feature, v);
330
+ });
331
+ }
332
+ return render;
333
+ }
334
+ }, {
335
+ key: "getMarkerOptions",
336
+ value: function getMarkerOptions(feature, style) {
337
+ var _feature$get4;
338
+ var icon = (style === null || style === void 0 ? void 0 : style.icon) || style;
339
+ var color = (style === null || style === void 0 ? void 0 : style.color) || '#2491fc';
340
+ var _this$_options = this._options,
341
+ cluster = _this$_options.cluster,
342
+ point = _this$_options.point,
343
+ label = _this$_options.label;
344
+ var size = ((_feature$get4 = feature.get('features')) === null || _feature$get4 === void 0 ? void 0 : _feature$get4.length) || 0;
345
+ var P = {
346
+ 'marker': {
347
+ // 图标
348
+ icon: icon
349
+ },
350
+ 'point': {
351
+ // 点位
352
+ icon: icon,
353
+ type: 'PointIcon'
354
+ },
355
+ 'marker_cluster': {
356
+ // 聚合图标
357
+ icon: icon,
358
+ iconOptions: size > 1 ? {
359
+ hideFooter: true,
360
+ info: {
361
+ text: size,
362
+ fontSize: 18
363
+ }
364
+ } : {}
365
+ },
366
+ 'point_cluster': {
367
+ // 聚合点位
368
+ icon: icon,
369
+ type: 'PointIcon',
370
+ iconOptions: size > 1 ? {
371
+ text: size
372
+ } : {}
373
+ }
374
+ };
375
+ var type = point ? 'point' : 'marker';
376
+ if (cluster) {
377
+ type = 'marker_cluster';
378
+ if (point) {
379
+ type = 'point_cluster';
380
+ }
381
+ }
382
+ var _style = P[type];
383
+ if (label) {
384
+ _style.text = this.getLabelStyle(feature, color);
385
+ }
386
+ return _style;
387
+ }
388
+ }, {
389
+ key: "setClusterSource",
390
+ value: function setClusterSource(cluster) {
391
+ var source = new _source.Vector({
392
+ features: this._features
393
+ });
394
+ if (cluster) {
395
+ var clusterSource = new _source.Cluster({
396
+ source: source,
397
+ createCluster: function createCluster(point, features) {
398
+ var feature = new _ol.Feature({
399
+ geometry: point,
400
+ features: features
401
+ });
402
+
403
+ // 增加聚合点位标识
404
+ feature.isCluster = true;
405
+ if (features.length === 1) {
406
+ feature.setProperties(features[0].values_);
407
+ }
408
+ return feature;
409
+ }
410
+ });
411
+ this.setSource(clusterSource);
412
+ } else {
413
+ this.setSource(source);
414
+ }
415
+ }
416
+ }, {
237
417
  key: "refresh",
238
418
  value: function refresh() {
239
- var _this2 = this;
240
- getDataByHttp(this.url, this.params, this.method).then(function (res) {
241
- var _res$features;
242
- if (res !== null && res !== void 0 && (_res$features = res.features) !== null && _res$features !== void 0 && _res$features.length) {
243
- var geoJsonFormat = new _format.GeoJSON();
244
- var new_features = geoJsonFormat.readFeatures(res);
419
+ var _this4 = this;
420
+ (0, _createFeatureCollection.getDataByHttp)(this.url, this.params, this.method).then(function (features) {
421
+ if (features) {
422
+ var new_features = features;
423
+ _this4._features = new_features;
245
424
  var newFeatures = [];
246
425
  new_features.map(function (v) {
247
- var f = _this2.getFeatureByFieldValue('id', v.values_.id);
426
+ var f = _this4.getFeatureByFieldValue('id', v.values_.id);
248
427
  if (f) {
249
428
  f.values_ = v.values_;
250
429
  } else {
@@ -252,9 +431,9 @@ var FeatureLayer = /*#__PURE__*/function (_Vector) {
252
431
  }
253
432
  });
254
433
  if (newFeatures.length) {
255
- _this2.getSource().addFeatures(newFeatures);
434
+ _this4.getSource().addFeatures(newFeatures);
256
435
  }
257
- _this2.getSource().changed();
436
+ _this4.getSource().changed();
258
437
  }
259
438
  });
260
439
  }
@@ -262,28 +441,27 @@ var FeatureLayer = /*#__PURE__*/function (_Vector) {
262
441
  key: "loadData",
263
442
  value: function loadData(data) {
264
443
  this.getSource().clear();
265
- var geoJsonFormat = new _format.GeoJSON();
266
- var res = createFeatureCollection(Array.isArray(data) ? data : [data]);
267
- var features = geoJsonFormat.readFeatures(res);
444
+ var features = (0, _createFeatureCollection.createGeoJson)(data);
445
+ this._features = features;
268
446
  this.getSource().addFeatures(features);
269
447
  }
270
448
  }, {
271
449
  key: "loadUrlData",
272
450
  value: function loadUrlData(url, params, method) {
273
- var _this3 = this;
451
+ var _this5 = this;
274
452
  this.getSource().clear();
275
- getDataByHttp(url, params, method).then(function (res) {
276
- var _res$features2;
277
- if (res !== null && res !== void 0 && (_res$features2 = res.features) !== null && _res$features2 !== void 0 && _res$features2.length) {
278
- var geoJsonFormat = new _format.GeoJSON();
279
- var features = geoJsonFormat.readFeatures(res);
280
- _this3.getSource().addFeatures(features);
453
+ this._features = [];
454
+ (0, _createFeatureCollection.getDataByHttp)(url, params, method).then(function (features) {
455
+ if (features !== null && features !== void 0 && features.length) {
456
+ _this5._features = features;
457
+ _this5.getSource().addFeatures(features);
281
458
  }
282
459
  });
283
460
  }
284
461
  }, {
285
462
  key: "loadFeatures",
286
463
  value: function loadFeatures(features) {
464
+ this._features = [];
287
465
  this.getSource().clear();
288
466
  this.getSource().addFeatures(features);
289
467
  }