@antv/l7-component 2.17.4 → 2.17.5
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/es/assets/iconfont/iconfont.js +10 -17
- package/es/control/baseControl/buttonControl.js +9 -42
- package/es/control/baseControl/control.js +24 -53
- package/es/control/baseControl/popperControl.js +10 -24
- package/es/control/baseControl/selectControl.js +6 -45
- package/es/control/exportImage.js +76 -116
- package/es/control/fullscreen.js +20 -53
- package/es/control/geoLocate.js +36 -66
- package/es/control/layerSwitch.js +0 -31
- package/es/control/logo.js +2 -14
- package/es/control/mapTheme.js +7 -32
- package/es/control/mouseLocation.js +2 -23
- package/es/control/scale.js +6 -29
- package/es/control/zoom.js +0 -23
- package/es/index.js +2 -12
- package/es/marker-layer.js +41 -75
- package/es/marker.js +29 -83
- package/es/popup/layerPopup.js +31 -82
- package/es/popup/popup.js +48 -127
- package/es/utils/anchor.js +3 -7
- package/es/utils/popper.js +15 -64
- package/es/utils/screenfull.js +23 -52
- package/lib/assets/iconfont/iconfont.js +10 -17
- package/lib/control/baseControl/buttonControl.js +9 -52
- package/lib/control/baseControl/control.js +24 -68
- package/lib/control/baseControl/index.js +0 -4
- package/lib/control/baseControl/popperControl.js +10 -29
- package/lib/control/baseControl/selectControl.js +6 -60
- package/lib/control/exportImage.js +76 -125
- package/lib/control/fullscreen.js +20 -60
- package/lib/control/geoLocate.js +36 -75
- package/lib/control/layerSwitch.js +0 -36
- package/lib/control/logo.js +2 -26
- package/lib/control/mapTheme.js +7 -42
- package/lib/control/mouseLocation.js +2 -33
- package/lib/control/scale.js +6 -40
- package/lib/control/zoom.js +0 -33
- package/lib/index.js +0 -30
- package/lib/marker-layer.js +39 -86
- package/lib/marker.js +29 -91
- package/lib/popup/layerPopup.js +29 -94
- package/lib/popup/popup.js +48 -139
- package/lib/utils/anchor.js +4 -9
- package/lib/utils/icon.js +0 -2
- package/lib/utils/popper.js +14 -71
- package/lib/utils/screenfull.js +23 -54
- package/package.json +6 -6
package/lib/marker-layer.js
CHANGED
|
@@ -1,54 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
-
|
|
18
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
-
|
|
22
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
-
|
|
24
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
16
|
var _l7Core = require("@antv/l7-core");
|
|
27
|
-
|
|
28
17
|
var _l7Utils = require("@antv/l7-utils");
|
|
29
|
-
|
|
30
18
|
var _eventemitter = require("eventemitter3");
|
|
31
|
-
|
|
32
19
|
var _lodash = require("lodash");
|
|
33
|
-
|
|
34
20
|
var _supercluster = _interopRequireDefault(require("supercluster/dist/supercluster"));
|
|
35
|
-
|
|
36
21
|
var _marker = _interopRequireDefault(require("./marker"));
|
|
37
|
-
|
|
38
22
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
39
|
-
|
|
40
23
|
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; } }
|
|
41
|
-
|
|
42
24
|
var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
43
25
|
(0, _inherits2.default)(MarkerLayer, _EventEmitter);
|
|
44
|
-
|
|
45
26
|
var _super = _createSuper(MarkerLayer);
|
|
46
|
-
|
|
47
27
|
function MarkerLayer(option) {
|
|
48
28
|
var _this$markerLayerOpti;
|
|
49
|
-
|
|
50
29
|
var _this;
|
|
51
|
-
|
|
52
30
|
(0, _classCallCheck2.default)(this, MarkerLayer);
|
|
53
31
|
_this = _super.call(this);
|
|
54
32
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "markers", []);
|
|
@@ -59,7 +37,6 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
59
37
|
_this.zoom = ((_this$markerLayerOpti = _this.markerLayerOption.clusterOption) === null || _this$markerLayerOpti === void 0 ? void 0 : _this$markerLayerOpti.zoom) || -99;
|
|
60
38
|
return _this;
|
|
61
39
|
}
|
|
62
|
-
|
|
63
40
|
(0, _createClass2.default)(MarkerLayer, [{
|
|
64
41
|
key: "getDefault",
|
|
65
42
|
value: function getDefault() {
|
|
@@ -74,63 +51,60 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
74
51
|
className: ''
|
|
75
52
|
}
|
|
76
53
|
};
|
|
77
|
-
}
|
|
54
|
+
}
|
|
78
55
|
|
|
56
|
+
// 执行scene.addMarkerLayer时调用
|
|
79
57
|
}, {
|
|
80
58
|
key: "addTo",
|
|
81
59
|
value: function addTo(scene) {
|
|
82
60
|
// this.remove();
|
|
83
61
|
this.scene = scene;
|
|
84
62
|
this.mapsService = scene.get(_l7Core.TYPES.IMapService);
|
|
85
|
-
|
|
86
63
|
if (this.markerLayerOption.cluster) {
|
|
87
64
|
this.initCluster();
|
|
88
|
-
this.update();
|
|
89
|
-
|
|
65
|
+
this.update();
|
|
66
|
+
// 地图视野变化时,重新计算视野内的聚合点。
|
|
90
67
|
this.mapsService.on('camerachange', this.update); // amap1.x 更新事件
|
|
91
|
-
|
|
92
68
|
this.mapsService.on('viewchange', this.update); // amap2.0 更新事件
|
|
93
69
|
}
|
|
94
70
|
|
|
95
71
|
this.mapsService.on('camerachange', this.setContainerSize.bind(this)); // amap1.x 更新事件
|
|
96
|
-
|
|
97
72
|
this.mapsService.on('viewchange', this.setContainerSize.bind(this)); // amap2.0 更新事件
|
|
98
|
-
|
|
99
73
|
this.addMarkers();
|
|
100
74
|
this.inited = true;
|
|
101
75
|
return this;
|
|
102
|
-
}
|
|
76
|
+
}
|
|
103
77
|
|
|
78
|
+
// 设置容器大小
|
|
104
79
|
}, {
|
|
105
80
|
key: "setContainerSize",
|
|
106
81
|
value: function setContainerSize() {
|
|
107
82
|
if (!this.mapsService) {
|
|
108
83
|
return;
|
|
109
84
|
}
|
|
110
|
-
|
|
111
85
|
var container = this.mapsService.getContainer();
|
|
112
86
|
this.containerSize = {
|
|
113
87
|
containerWidth: (container === null || container === void 0 ? void 0 : container.scrollWidth) || 0,
|
|
114
88
|
containerHeight: (container === null || container === void 0 ? void 0 : container.scrollHeight) || 0,
|
|
115
89
|
bounds: this.mapsService.getBounds()
|
|
116
90
|
};
|
|
117
|
-
}
|
|
91
|
+
}
|
|
118
92
|
|
|
93
|
+
// 获取容器尺寸
|
|
119
94
|
}, {
|
|
120
95
|
key: "getContainerSize",
|
|
121
96
|
value: function getContainerSize() {
|
|
122
97
|
return this.containerSize;
|
|
123
|
-
}
|
|
98
|
+
}
|
|
124
99
|
|
|
100
|
+
// 在图层添加单个marker
|
|
125
101
|
}, {
|
|
126
102
|
key: "addMarker",
|
|
127
103
|
value: function addMarker(marker) {
|
|
128
104
|
var cluster = this.markerLayerOption.cluster;
|
|
129
105
|
marker.getMarkerLayerContainerSize = this.getContainerSize.bind(this);
|
|
130
|
-
|
|
131
106
|
if (cluster) {
|
|
132
107
|
this.addPoint(marker, this.markers.length);
|
|
133
|
-
|
|
134
108
|
if (this.mapsService) {
|
|
135
109
|
// 在新增 marker 的时候需要更新聚合信息(哪怕此时的 zoom 没有发生变化)
|
|
136
110
|
var zoom = this.mapsService.getZoom();
|
|
@@ -140,8 +114,8 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
140
114
|
this.getClusterMarker(this.bbox, this.zoom);
|
|
141
115
|
}
|
|
142
116
|
}
|
|
143
|
-
|
|
144
|
-
|
|
117
|
+
this.markers.push(marker);
|
|
118
|
+
// if(this.inited) {
|
|
145
119
|
// marker.addTo(this.scene);
|
|
146
120
|
// }
|
|
147
121
|
}
|
|
@@ -150,15 +124,14 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
150
124
|
value: function removeMarker(marker) {
|
|
151
125
|
this.markers.indexOf(marker);
|
|
152
126
|
var markerIndex = this.markers.indexOf(marker);
|
|
153
|
-
|
|
154
127
|
if (markerIndex > -1) {
|
|
155
128
|
this.markers.splice(markerIndex, 1);
|
|
156
129
|
}
|
|
157
130
|
}
|
|
131
|
+
|
|
158
132
|
/**
|
|
159
133
|
* 隐藏 marker 在每个 marker 上单独修改属性而不是在 markerContainer 上修改(在 markerContainer 修改会有用户在场景加载完之前调用失败的问题)
|
|
160
134
|
*/
|
|
161
|
-
|
|
162
135
|
}, {
|
|
163
136
|
key: "hide",
|
|
164
137
|
value: function hide() {
|
|
@@ -169,10 +142,10 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
169
142
|
m.getElement().style.opacity = '0';
|
|
170
143
|
});
|
|
171
144
|
}
|
|
145
|
+
|
|
172
146
|
/**
|
|
173
147
|
* 显示 marker
|
|
174
148
|
*/
|
|
175
|
-
|
|
176
149
|
}, {
|
|
177
150
|
key: "show",
|
|
178
151
|
value: function show() {
|
|
@@ -182,25 +155,27 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
182
155
|
this.clusterMarkers.map(function (m) {
|
|
183
156
|
m.getElement().style.opacity = '1';
|
|
184
157
|
});
|
|
185
|
-
}
|
|
158
|
+
}
|
|
186
159
|
|
|
160
|
+
// 返回当下的markers数据,有聚合图时返回聚合的marker列表,否则返回原始maerker列表
|
|
187
161
|
}, {
|
|
188
162
|
key: "getMarkers",
|
|
189
163
|
value: function getMarkers() {
|
|
190
164
|
var cluster = this.markerLayerOption.cluster;
|
|
191
165
|
return cluster ? this.clusterMarkers : this.markers;
|
|
192
|
-
}
|
|
166
|
+
}
|
|
193
167
|
|
|
168
|
+
// 批量添加marker到scene
|
|
194
169
|
}, {
|
|
195
170
|
key: "addMarkers",
|
|
196
171
|
value: function addMarkers() {
|
|
197
172
|
var _this2 = this;
|
|
198
|
-
|
|
199
173
|
this.getMarkers().forEach(function (marker) {
|
|
200
174
|
marker.addTo(_this2.scene);
|
|
201
175
|
});
|
|
202
|
-
}
|
|
176
|
+
}
|
|
203
177
|
|
|
178
|
+
// 清除图层里的marker
|
|
204
179
|
}, {
|
|
205
180
|
key: "clear",
|
|
206
181
|
value: function clear() {
|
|
@@ -223,15 +198,15 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
223
198
|
this.mapsService.off('viewchange', this.update);
|
|
224
199
|
this.mapsService.off('camerachange', this.setContainerSize.bind(this));
|
|
225
200
|
this.mapsService.off('viewchange', this.setContainerSize.bind(this));
|
|
226
|
-
}
|
|
201
|
+
}
|
|
227
202
|
|
|
203
|
+
// 将marker数据保存在point中
|
|
228
204
|
}, {
|
|
229
205
|
key: "addPoint",
|
|
230
206
|
value: function addPoint(marker, id) {
|
|
231
207
|
var _marker$getLnglat = marker.getLnglat(),
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
208
|
+
lng = _marker$getLnglat.lng,
|
|
209
|
+
lat = _marker$getLnglat.lat;
|
|
235
210
|
var feature = {
|
|
236
211
|
geometry: {
|
|
237
212
|
type: 'Point',
|
|
@@ -242,7 +217,6 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
242
217
|
})
|
|
243
218
|
};
|
|
244
219
|
this.points.push(feature);
|
|
245
|
-
|
|
246
220
|
if (this.clusterIndex) {
|
|
247
221
|
// 在新增点的时候需要更新 cluster 的数据
|
|
248
222
|
this.clusterIndex.load(this.points);
|
|
@@ -254,25 +228,23 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
254
228
|
if (!this.markerLayerOption.cluster) {
|
|
255
229
|
return;
|
|
256
230
|
}
|
|
257
|
-
|
|
258
231
|
var _this$markerLayerOpti2 = this.markerLayerOption.clusterOption,
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
232
|
+
radius = _this$markerLayerOpti2.radius,
|
|
233
|
+
_this$markerLayerOpti3 = _this$markerLayerOpti2.minZoom,
|
|
234
|
+
minZoom = _this$markerLayerOpti3 === void 0 ? 0 : _this$markerLayerOpti3,
|
|
235
|
+
maxZoom = _this$markerLayerOpti2.maxZoom;
|
|
263
236
|
this.clusterIndex = new _supercluster.default({
|
|
264
237
|
radius: radius,
|
|
265
238
|
minZoom: minZoom,
|
|
266
239
|
maxZoom: maxZoom
|
|
267
|
-
});
|
|
268
|
-
|
|
240
|
+
});
|
|
241
|
+
// @ts-ignore
|
|
269
242
|
this.clusterIndex.load(this.points);
|
|
270
243
|
}
|
|
271
244
|
}, {
|
|
272
245
|
key: "getClusterMarker",
|
|
273
246
|
value: function getClusterMarker(viewBounds, zoom) {
|
|
274
247
|
var _this3 = this;
|
|
275
|
-
|
|
276
248
|
var viewBBox = viewBounds[0].concat(viewBounds[1]);
|
|
277
249
|
var clusterPoint = this.clusterIndex.getClusters(viewBBox, zoom);
|
|
278
250
|
this.clusterMarkers.forEach(function (marker) {
|
|
@@ -281,37 +253,27 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
281
253
|
this.clusterMarkers = [];
|
|
282
254
|
clusterPoint.forEach(function (feature) {
|
|
283
255
|
var _feature$properties;
|
|
284
|
-
|
|
285
256
|
var _this3$markerLayerOpt = _this3.markerLayerOption.clusterOption,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
257
|
+
field = _this3$markerLayerOpt.field,
|
|
258
|
+
method = _this3$markerLayerOpt.method;
|
|
259
|
+
// 处理聚合数据
|
|
289
260
|
if ((_feature$properties = feature.properties) !== null && _feature$properties !== void 0 && _feature$properties.cluster_id) {
|
|
290
261
|
var _feature$properties2;
|
|
291
|
-
|
|
292
262
|
var clusterData = _this3.getLeaves((_feature$properties2 = feature.properties) === null || _feature$properties2 === void 0 ? void 0 : _feature$properties2.cluster_id);
|
|
293
|
-
|
|
294
263
|
feature.properties.clusterData = clusterData;
|
|
295
|
-
|
|
296
264
|
if (field && method) {
|
|
297
265
|
var columnData = clusterData === null || clusterData === void 0 ? void 0 : clusterData.map(function (item) {
|
|
298
266
|
var data = (0, _defineProperty2.default)({}, field, item.properties[field]);
|
|
299
267
|
return data;
|
|
300
268
|
});
|
|
301
|
-
|
|
302
269
|
var column = _l7Utils.Satistics.getColumn(columnData, field);
|
|
303
|
-
|
|
304
270
|
var stat = _l7Utils.Satistics.getSatByColumn(method, column);
|
|
305
|
-
|
|
306
271
|
var fieldName = 'point_' + method;
|
|
307
272
|
feature.properties[fieldName] = stat.toFixed(2);
|
|
308
273
|
}
|
|
309
274
|
}
|
|
310
|
-
|
|
311
275
|
var marker = _this3.clusterMarker(feature);
|
|
312
|
-
|
|
313
276
|
_this3.clusterMarkers.push(marker);
|
|
314
|
-
|
|
315
277
|
marker.addTo(_this3.scene);
|
|
316
278
|
});
|
|
317
279
|
}
|
|
@@ -320,11 +282,9 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
320
282
|
value: function getLeaves(clusterId) {
|
|
321
283
|
var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
|
322
284
|
var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
323
|
-
|
|
324
285
|
if (!clusterId) {
|
|
325
286
|
return null;
|
|
326
287
|
}
|
|
327
|
-
|
|
328
288
|
return this.clusterIndex.getLeaves(clusterId, limit, offset);
|
|
329
289
|
}
|
|
330
290
|
}, {
|
|
@@ -332,8 +292,8 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
332
292
|
value: function clusterMarker(feature) {
|
|
333
293
|
var clusterOption = this.markerLayerOption.clusterOption;
|
|
334
294
|
var _ref = clusterOption,
|
|
335
|
-
|
|
336
|
-
|
|
295
|
+
_ref$element = _ref.element,
|
|
296
|
+
element = _ref$element === void 0 ? this.generateElement.bind(this) : _ref$element;
|
|
337
297
|
var marker = new _marker.default({
|
|
338
298
|
element: element(feature)
|
|
339
299
|
}).setLnglat({
|
|
@@ -353,16 +313,13 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
353
313
|
value: function update() {
|
|
354
314
|
if (!this.mapsService) {
|
|
355
315
|
return;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
|
|
316
|
+
}
|
|
317
|
+
// 当图层中无marker时,无需更新
|
|
359
318
|
if (this.markers.length === 0) {
|
|
360
319
|
return;
|
|
361
320
|
}
|
|
362
|
-
|
|
363
321
|
var zoom = this.mapsService.getZoom();
|
|
364
322
|
var bbox = this.mapsService.getBounds();
|
|
365
|
-
|
|
366
323
|
if (!this.bbox || Math.abs(zoom - this.zoom) >= 1 || !(0, _l7Utils.boundsContains)(this.bbox, bbox)) {
|
|
367
324
|
this.bbox = (0, _l7Utils.padBounds)(bbox, 0.5);
|
|
368
325
|
this.zoom = Math.floor(zoom);
|
|
@@ -373,14 +330,11 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
373
330
|
key: "generateElement",
|
|
374
331
|
value: function generateElement(feature) {
|
|
375
332
|
var el = _l7Utils.DOM.create('div', 'l7-marker-cluster');
|
|
376
|
-
|
|
377
333
|
var label = _l7Utils.DOM.create('div', '', el);
|
|
378
|
-
|
|
379
334
|
var span = _l7Utils.DOM.create('span', '', label);
|
|
380
|
-
|
|
381
335
|
var _this$markerLayerOpti4 = this.markerLayerOption.clusterOption,
|
|
382
|
-
|
|
383
|
-
|
|
336
|
+
field = _this$markerLayerOpti4.field,
|
|
337
|
+
method = _this$markerLayerOpti4.method;
|
|
384
338
|
feature.properties.point_count = feature.properties.point_count || 1;
|
|
385
339
|
var text = field && method ? feature.properties['point_' + method] || feature.properties[field] : feature.properties.point_count;
|
|
386
340
|
span.textContent = text;
|
|
@@ -389,5 +343,4 @@ var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
|
|
|
389
343
|
}]);
|
|
390
344
|
return MarkerLayer;
|
|
391
345
|
}(_eventemitter.EventEmitter);
|
|
392
|
-
|
|
393
346
|
exports.default = MarkerLayer;
|