@antv/l7-component 2.9.36 → 2.9.37-alpha.2

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/lib/index.js DELETED
@@ -1,139 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- var _exportNames = {
9
- Control: true,
10
- Layers: true,
11
- Logo: true,
12
- Scale: true,
13
- Zoom: true,
14
- Marker: true,
15
- MarkerLayer: true,
16
- Popup: true
17
- };
18
- Object.defineProperty(exports, "Control", {
19
- enumerable: true,
20
- get: function get() {
21
- return _BaseControl.default;
22
- }
23
- });
24
- Object.defineProperty(exports, "Layers", {
25
- enumerable: true,
26
- get: function get() {
27
- return _layer.default;
28
- }
29
- });
30
- Object.defineProperty(exports, "Logo", {
31
- enumerable: true,
32
- get: function get() {
33
- return _logo.default;
34
- }
35
- });
36
- Object.defineProperty(exports, "Marker", {
37
- enumerable: true,
38
- get: function get() {
39
- return _marker.default;
40
- }
41
- });
42
- Object.defineProperty(exports, "MarkerLayer", {
43
- enumerable: true,
44
- get: function get() {
45
- return _markerLayer.default;
46
- }
47
- });
48
- Object.defineProperty(exports, "Popup", {
49
- enumerable: true,
50
- get: function get() {
51
- return _popup.default;
52
- }
53
- });
54
- Object.defineProperty(exports, "Scale", {
55
- enumerable: true,
56
- get: function get() {
57
- return _scale.default;
58
- }
59
- });
60
- Object.defineProperty(exports, "Zoom", {
61
- enumerable: true,
62
- get: function get() {
63
- return _zoom.default;
64
- }
65
- });
66
-
67
- var _BaseControl = _interopRequireDefault(require("./control/BaseControl"));
68
-
69
- var _layer = _interopRequireDefault(require("./control/layer"));
70
-
71
- var _logo = _interopRequireDefault(require("./control/logo"));
72
-
73
- var _scale = _interopRequireDefault(require("./control/scale"));
74
-
75
- var _zoom = _interopRequireDefault(require("./control/zoom"));
76
-
77
- var _marker = _interopRequireDefault(require("./marker"));
78
-
79
- var _markerLayer = _interopRequireDefault(require("./marker-layer"));
80
-
81
- var _popup = _interopRequireDefault(require("./popup"));
82
-
83
- var _interface = require("./interface");
84
-
85
- Object.keys(_interface).forEach(function (key) {
86
- if (key === "default" || key === "__esModule") return;
87
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
88
- if (key in exports && exports[key] === _interface[key]) return;
89
- Object.defineProperty(exports, key, {
90
- enumerable: true,
91
- get: function get() {
92
- return _interface[key];
93
- }
94
- });
95
- });
96
-
97
- // 引入样式
98
- // TODO: 使用 Less 或者 Sass,每个组件单独引用自身样式
99
- function loadStyles(css, doc) {
100
- var isMiniAli = typeof my !== 'undefined' && !!my && typeof my.showToast === 'function' && my.isFRM !== true;
101
- var isWeChatMiniProgram = typeof wx !== 'undefined' && wx !== null && (typeof wx.request !== 'undefined' || typeof wx.miniProgram !== 'undefined');
102
-
103
- if (isMiniAli || isWeChatMiniProgram) {
104
- return;
105
- }
106
-
107
- if (!doc) doc = document;
108
-
109
- if (!doc) {
110
- return;
111
- }
112
-
113
- var head = doc.head || doc.getElementsByTagName('head')[0];
114
-
115
- if (!head) {
116
- head = doc.createElement('head');
117
- var body = doc.body || doc.getElementsByTagName('body')[0];
118
-
119
- if (body) {
120
- body.parentNode.insertBefore(head, body);
121
- } else {
122
- doc.documentElement.appendChild(head);
123
- }
124
- }
125
-
126
- var style = doc.createElement('style');
127
- style.type = 'text/css';
128
-
129
- if (style.styleSheet) {
130
- style.styleSheet.cssText = css;
131
- } else {
132
- style.appendChild(doc.createTextNode(css));
133
- }
134
-
135
- head.appendChild(style);
136
- return style;
137
- }
138
-
139
- loadStyles(".l7-marker-container {\n width: 100%;\n height: 100%;\n overflow: hidden;\n position: absolute;\n}\n\n.l7-marker {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 5;\n cursor: pointer;\n}\n\n.l7-marker-cluster {\n background-clip: padding-box;\n border-radius: 20px;\n background-color: rgba(181, 226, 140, 0.6);\n width: 40px;\n height: 40px;\n}\n.l7-marker-cluster div {\n width: 30px;\n height: 30px;\n margin-left: 5px;\n margin-top: 5px;\n text-align: center;\n border-radius: 15px;\n font: 12px 'Helvetica Neue', Arial, Helvetica, sans-serif;\n background-color: rgba(110, 204, 57, 0.6);\n}\n.l7-marker-cluster span {\n line-height: 30px;\n}\n\n.l7-popup-anchor-bottom,\n.l7-popup-anchor-bottom-left,\n.l7-popup-anchor-bottom-right {\n -webkit-box-orient: vertical;\n -webkit-box-direction: reverse;\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n}\n\n.l7-popup-close-button {\n position: absolute;\n right: 0;\n top: 0;\n border: 0;\n border-radius: 0 3px 0 0;\n cursor: pointer;\n background-color: transparent;\n}\n\n.l7-popup-close-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.l7-popup-content {\n position: relative;\n background: #fff;\n border-radius: 3px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n}\n\n/* layers control */\n\n.l7-control-layers {\n -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);\n box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);\n background: #fff;\n border-radius: 5px;\n}\n.l7-popup-anchor-top,\n.l7-popup-anchor-top-left,\n.l7-popup-anchor-top-right {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.l7-popup-anchor-left {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.l7-popup-anchor-right {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n}\n.l7-popup {\n position: absolute;\n top: 0;\n left: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n will-change: transform;\n pointer-events: none;\n z-index: 5;\n}\n.l7-popup-tip {\n width: 0;\n height: 0;\n border: 10px solid transparent;\n z-index: 1;\n}\n.l7-popup-anchor-top .l7-popup-tip {\n -webkit-align-self: center;\n -ms-flex-item-align: center;\n align-self: center;\n border-top: none;\n border-bottom-color: #fff;\n}\n\n.l7-popup-anchor-top-left .l7-popup-tip {\n -webkit-align-self: flex-start;\n -ms-flex-item-align: start;\n align-self: flex-start;\n border-top: none;\n border-left: none;\n border-bottom-color: #fff;\n}\n\n.l7-popup-anchor-top-right .l7-popup-tip {\n -webkit-align-self: flex-end;\n -ms-flex-item-align: end;\n align-self: flex-end;\n border-top: none;\n border-right: none;\n border-bottom-color: #fff;\n}\n\n.l7-popup-anchor-bottom .l7-popup-tip {\n -webkit-align-self: center;\n -ms-flex-item-align: center;\n align-self: center;\n border-bottom: none;\n border-top-color: #fff;\n}\n\n.l7-popup-anchor-bottom-left .l7-popup-tip {\n -webkit-align-self: flex-start;\n -ms-flex-item-align: start;\n align-self: flex-start;\n border-bottom: none;\n border-left: none;\n border-top-color: #fff;\n}\n\n.l7-popup-anchor-bottom-right .l7-popup-tip {\n -webkit-align-self: flex-end;\n -ms-flex-item-align: end;\n align-self: flex-end;\n border-bottom: none;\n border-right: none;\n border-top-color: #fff;\n}\n\n.l7-popup-anchor-left .l7-popup-tip {\n -webkit-align-self: center;\n -ms-flex-item-align: center;\n align-self: center;\n border-left: none;\n border-right-color: #fff;\n}\n\n.l7-popup-anchor-right .l7-popup-tip {\n -webkit-align-self: center;\n -ms-flex-item-align: center;\n align-self: center;\n border-right: none;\n border-left-color: #fff;\n}\n\n.l7-popup-close-button {\n position: absolute;\n right: 0;\n top: 0;\n border: 0;\n padding: 0;\n font-size: 25px;\n line-height: 20px;\n border-radius: 0 3px 0 0;\n cursor: pointer;\n background-color: transparent;\n}\n\n.l7-popup-close-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.l7-popup-content {\n position: relative;\n background: #fff;\n border-radius: 3px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n}\n\n.l7-popup-anchor-top-left .l7-popup-content {\n border-top-left-radius: 0;\n}\n\n.l7-popup-anchor-top-right .l7-popup-content {\n border-top-right-radius: 0;\n}\n\n.l7-popup-anchor-bottom-left .l7-popup-content {\n border-bottom-left-radius: 0;\n}\n\n.l7-popup-anchor-bottom-right .l7-popup-content {\n border-bottom-right-radius: 0;\n}\n\n.l7-popup-track-pointer {\n display: none;\n}\n\n.l7-popup-track-pointer * {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.l7-map:hover .l7-popup-track-pointer {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n.l7-map:active .l7-popup-track-pointer {\n display: none;\n}\n\n.l7-popup-close-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.l7-popup-content {\n position: relative;\n background: #fff;\n border-radius: 3px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n}\n\n/* general toolbar styles */\n\n.l7-bar {\n -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.3);\n box-shadow: 0 0 1px rgba(0, 0, 0, 0.3);\n border-radius: 4px;\n}\n.l7-bar a,\n.l7-bar a:hover {\n background-color: #fff;\n width: 30px;\n height: 30px;\n font-size: 20px;\n display: block;\n text-align: center;\n text-decoration: none;\n color: #8e9dab;\n}\n.l7-bar a,\n.l7-control-layers-toggle {\n background-position: 50% 50%;\n background-repeat: no-repeat;\n display: block;\n}\n.l7-bar a:hover {\n background-color: #f4f4f4;\n}\n.l7-bar a:first-child {\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n}\n.l7-bar a:last-child {\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n border-bottom: none;\n}\n.l7-bar a.l7-disabled {\n cursor: default;\n background-color: #f4f4f4;\n color: #bbb;\n}\n\n/* control positioning */\n\n.l7-control-container {\n font: 12px/1.5 'Helvetica Neue', Arial, Helvetica, sans-serif;\n}\n.l7-control-hide {\n display: none;\n}\n.l7-control {\n position: relative;\n z-index: 800;\n pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\n pointer-events: auto;\n}\n.l7-control {\n float: left;\n clear: both;\n}\n.l7-top,\n.l7-bottom {\n position: absolute;\n z-index: 1000;\n pointer-events: none;\n}\n.l7-top {\n top: 0;\n}\n.l7-right {\n right: 0;\n}\n.l7-bottom {\n bottom: 0;\n}\n.l7-left {\n left: 0;\n}\n.l7-center {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.l7-bottom.l7-center,\n.l7-top.l7-center {\n width: 100%;\n}\n.l7-right.l7-center,\n.l7-left.l7-center {\n height: 100%;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.l7-top.l7-center,\n.l7-left.l7-center {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.l7-bottom.l7-center,\n.l7-right.l7-center {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.l7-center .l7-control {\n margin-right: 10px;\n margin-bottom: 10px;\n}\n\n.l7-control {\n float: left;\n clear: both;\n}\n.l7-right .l7-control {\n float: right;\n}\n.l7-top .l7-control {\n margin-top: 10px;\n}\n.l7-bottom .l7-control {\n margin-bottom: 10px;\n}\n.l7-left .l7-control {\n margin-left: 10px;\n}\n.l7-right .l7-control {\n margin-right: 10px;\n}\n\n/* attribution and scale controls */\n\n.l7-control-container .l7-control-attribution {\n background: #fff;\n background: rgba(59, 58, 58, 0.7);\n margin: 0;\n}\n.l7-control-attribution,\n.l7-control-scale-line {\n padding: 0 5px;\n color: #333;\n}\n.l7-control-attribution a {\n text-decoration: none;\n}\n.l7-control-attribution a:hover {\n text-decoration: underline;\n}\n.l7-container .l7-control-attribution,\n.l7-container .l7-control-scale {\n font-size: 11px;\n padding: 5px 5px 2px 5px;\n background: rgba(255, 255, 255, 0.7);\n}\n.l7-left .l7-control-scale {\n margin-left: 5px;\n}\n.l7-bottom .l7-control-scale {\n margin-bottom: 5px;\n}\n.l7-control-scale-line {\n border: 2px solid #000;\n border-top: none;\n color: #000;\n line-height: 1.1;\n padding: 2px 5px 1px;\n font-size: 11px;\n white-space: nowrap;\n overflow: hidden;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n\n background: #fff;\n}\n.l7-control-scale-line:not(:first-child) {\n border-top: 2px solid #777;\n border-bottom: none;\n margin-top: -2px;\n}\n.l7-control-scale-line:not(:first-child):not(:last-child) {\n border-bottom: 2px solid #777;\n}\n\n.l7-touch .l7-control-attribution,\n.l7-touch .l7-control-layers,\n.l7-touch .l7-bar {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.l7-touch .l7-control-layers,\n.l7-touch .l7-bar {\n border: 2px solid rgba(0, 0, 0, 0.2);\n background-clip: padding-box;\n}\n/*logo */\n\n.l7-ctrl-logo {\n background-size: 100% 100%;\n width: 89px;\n height: 16px;\n margin: 0 0 -3px -3px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n background-repeat: no-repeat;\n cursor: pointer;\n background-image: url('data:image/png;base64,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');\n}\n\n/* layers control */\n\n.l7-control-layers {\n -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);\n background: #fff;\n border-radius: 2px;\n}\n.l7-control-layers-toggle {\n background-image: url('data:image/png;base64,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');\n width: 30px;\n height: 30px;\n background-size: 20px 20px;\n}\n\n.l7-touch .l7-control-layers-toggle {\n width: 44px;\n height: 44px;\n}\n.l7-control-layers .l7-control-layers-list,\n.l7-control-layers-expanded .l7-control-layers-toggle {\n display: none;\n}\n.l7-control-layers-expanded .l7-control-layers-list {\n display: block;\n position: relative;\n}\n.l7-control-layers-expanded {\n padding: 6px 10px 6px 6px;\n color: #59626b;\n background: #fff;\n}\n.l7-control-layers-scrollbar {\n overflow-y: scroll;\n overflow-x: hidden;\n padding-right: 5px;\n}\n.l7-control-layers-selector {\n margin-top: 2px;\n position: relative;\n top: 1px;\n}\n.l7-control-layers label {\n display: block;\n padding: 8px;\n}\n.l7-control-layers label input[type='radio'],\n.l7-control-layers label input[type='checkbox'] {\n width: 14px;\n height: 14px;\n margin: 0;\n}\n.l7-control-layers-separator {\n height: 0;\n border-top: 1px solid #d8d8d8;\n margin: 5px -10px 5px -6px;\n}\n.mapboxgl-ctrl-logo {\n display: none !important;\n}\n.amap-logo {\n display: none !important;\n}\n");
package/lib/interface.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,381 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _l7Core = require("@antv/l7-core");
27
-
28
- var _l7Utils = require("@antv/l7-utils");
29
-
30
- var _eventemitter = require("eventemitter3");
31
-
32
- var _lodash = require("lodash");
33
-
34
- var _supercluster = _interopRequireDefault(require("supercluster/dist/supercluster"));
35
-
36
- var _marker = _interopRequireDefault(require("./marker"));
37
-
38
- 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
- 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
- var MarkerLayer = /*#__PURE__*/function (_EventEmitter) {
43
- (0, _inherits2.default)(MarkerLayer, _EventEmitter);
44
-
45
- var _super = _createSuper(MarkerLayer);
46
-
47
- function MarkerLayer(option) {
48
- var _this$markerLayerOpti;
49
-
50
- var _this;
51
-
52
- (0, _classCallCheck2.default)(this, MarkerLayer);
53
- _this = _super.call(this);
54
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "markers", []);
55
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "points", []);
56
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clusterMarkers", []);
57
- _this.markerLayerOption = (0, _lodash.merge)(_this.getDefault(), option);
58
- (0, _l7Utils.bindAll)(['update'], (0, _assertThisInitialized2.default)(_this));
59
- _this.zoom = ((_this$markerLayerOpti = _this.markerLayerOption.clusterOption) === null || _this$markerLayerOpti === void 0 ? void 0 : _this$markerLayerOpti.zoom) || -99;
60
- return _this;
61
- }
62
-
63
- (0, _createClass2.default)(MarkerLayer, [{
64
- key: "getDefault",
65
- value: function getDefault() {
66
- return {
67
- cluster: false,
68
- clusterOption: {
69
- radius: 80,
70
- maxZoom: 20,
71
- minZoom: 0,
72
- zoom: -99,
73
- style: {},
74
- className: ''
75
- }
76
- };
77
- } // 执行scene.addMarkerLayer时调用
78
-
79
- }, {
80
- key: "addTo",
81
- value: function addTo(scene) {
82
- // this.remove();
83
- this.scene = scene;
84
- this.mapsService = scene.get(_l7Core.TYPES.IMapService);
85
-
86
- if (this.markerLayerOption.cluster) {
87
- this.initCluster();
88
- this.update(); // 地图视野变化时,重新计算视野内的聚合点。
89
-
90
- this.mapsService.on('camerachange', this.update); // amap1.x 更新事件
91
-
92
- this.mapsService.on('viewchange', this.update); // amap2.0 更新事件
93
- }
94
-
95
- this.mapsService.on('camerachange', this.setContainerSize.bind(this)); // amap1.x 更新事件
96
-
97
- this.mapsService.on('viewchange', this.setContainerSize.bind(this)); // amap2.0 更新事件
98
-
99
- this.addMarkers();
100
- return this;
101
- } // 设置容器大小
102
-
103
- }, {
104
- key: "setContainerSize",
105
- value: function setContainerSize() {
106
- if (!this.mapsService) return;
107
- var container = this.mapsService.getContainer();
108
- this.containerSize = {
109
- containerWidth: (container === null || container === void 0 ? void 0 : container.scrollWidth) || 0,
110
- containerHeight: (container === null || container === void 0 ? void 0 : container.scrollHeight) || 0,
111
- bounds: this.mapsService.getBounds()
112
- };
113
- } // 获取容器尺寸
114
-
115
- }, {
116
- key: "getContainerSize",
117
- value: function getContainerSize() {
118
- return this.containerSize;
119
- } // 在图层添加单个marker
120
-
121
- }, {
122
- key: "addMarker",
123
- value: function addMarker(marker) {
124
- var cluster = this.markerLayerOption.cluster;
125
- marker.getMarkerLayerContainerSize = this.getContainerSize.bind(this);
126
-
127
- if (cluster) {
128
- this.addPoint(marker, this.markers.length);
129
-
130
- if (this.mapsService) {
131
- // 在新增 marker 的时候需要更新聚合信息(哪怕此时的 zoom 没有发生变化)
132
- var zoom = this.mapsService.getZoom();
133
- var bbox = this.mapsService.getBounds();
134
- this.bbox = (0, _l7Utils.padBounds)(bbox, 0.5);
135
- this.zoom = Math.floor(zoom);
136
- this.getClusterMarker(this.bbox, this.zoom);
137
- }
138
- }
139
-
140
- this.markers.push(marker);
141
- }
142
- }, {
143
- key: "removeMarker",
144
- value: function removeMarker(marker) {
145
- this.markers.indexOf(marker);
146
- var markerIndex = this.markers.indexOf(marker);
147
-
148
- if (markerIndex > -1) {
149
- this.markers.splice(markerIndex, 1);
150
- }
151
- }
152
- /**
153
- * 隐藏 marker 在每个 marker 上单独修改属性而不是在 markerContainer 上修改(在 markerContainer 修改会有用户在场景加载完之前调用失败的问题)
154
- */
155
-
156
- }, {
157
- key: "hide",
158
- value: function hide() {
159
- this.markers.map(function (m) {
160
- m.getElement().style.opacity = '0';
161
- });
162
- this.clusterMarkers.map(function (m) {
163
- m.getElement().style.opacity = '0';
164
- });
165
- }
166
- /**
167
- * 显示 marker
168
- */
169
-
170
- }, {
171
- key: "show",
172
- value: function show() {
173
- this.markers.map(function (m) {
174
- m.getElement().style.opacity = '1';
175
- });
176
- this.clusterMarkers.map(function (m) {
177
- m.getElement().style.opacity = '1';
178
- });
179
- } // 返回当下的markers数据,有聚合图时返回聚合的marker列表,否则返回原始maerker列表
180
-
181
- }, {
182
- key: "getMarkers",
183
- value: function getMarkers() {
184
- var cluster = this.markerLayerOption.cluster;
185
- return cluster ? this.clusterMarkers : this.markers;
186
- } // 批量添加marker到scene
187
-
188
- }, {
189
- key: "addMarkers",
190
- value: function addMarkers() {
191
- var _this2 = this;
192
-
193
- this.getMarkers().forEach(function (marker) {
194
- marker.addTo(_this2.scene);
195
- });
196
- } // 清除图层里的marker
197
-
198
- }, {
199
- key: "clear",
200
- value: function clear() {
201
- this.markers.forEach(function (marker) {
202
- marker.remove();
203
- });
204
- this.clusterMarkers.forEach(function (clusterMarker) {
205
- clusterMarker.remove();
206
- });
207
- this.markers = [];
208
- this.points = [];
209
- this.clusterMarkers = [];
210
- }
211
- }, {
212
- key: "destroy",
213
- value: function destroy() {
214
- this.clear();
215
- this.removeAllListeners();
216
- this.mapsService.off('camerachange', this.update);
217
- this.mapsService.off('viewchange', this.update);
218
- this.mapsService.off('camerachange', this.setContainerSize.bind(this));
219
- this.mapsService.off('viewchange', this.setContainerSize.bind(this));
220
- } // 将marker数据保存在point中
221
-
222
- }, {
223
- key: "addPoint",
224
- value: function addPoint(marker, id) {
225
- var _marker$getLnglat = marker.getLnglat(),
226
- lng = _marker$getLnglat.lng,
227
- lat = _marker$getLnglat.lat;
228
-
229
- var feature = {
230
- geometry: {
231
- type: 'Point',
232
- coordinates: [lng, lat]
233
- },
234
- properties: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, marker.getExtData()), {}, {
235
- marker_id: id
236
- })
237
- };
238
- this.points.push(feature);
239
-
240
- if (this.clusterIndex) {
241
- // 在新增点的时候需要更新 cluster 的数据
242
- this.clusterIndex.load(this.points);
243
- }
244
- }
245
- }, {
246
- key: "initCluster",
247
- value: function initCluster() {
248
- if (!this.markerLayerOption.cluster) {
249
- return;
250
- }
251
-
252
- var _this$markerLayerOpti2 = this.markerLayerOption.clusterOption,
253
- radius = _this$markerLayerOpti2.radius,
254
- _this$markerLayerOpti3 = _this$markerLayerOpti2.minZoom,
255
- minZoom = _this$markerLayerOpti3 === void 0 ? 0 : _this$markerLayerOpti3,
256
- maxZoom = _this$markerLayerOpti2.maxZoom;
257
- this.clusterIndex = new _supercluster.default({
258
- radius: radius,
259
- minZoom: minZoom,
260
- maxZoom: maxZoom
261
- }); // @ts-ignore
262
-
263
- this.clusterIndex.load(this.points);
264
- }
265
- }, {
266
- key: "getClusterMarker",
267
- value: function getClusterMarker(viewBounds, zoom) {
268
- var _this3 = this;
269
-
270
- var viewBBox = viewBounds[0].concat(viewBounds[1]);
271
- var clusterPoint = this.clusterIndex.getClusters(viewBBox, zoom);
272
- this.clusterMarkers.forEach(function (marker) {
273
- marker.remove();
274
- });
275
- this.clusterMarkers = [];
276
- clusterPoint.forEach(function (feature) {
277
- var _feature$properties;
278
-
279
- var _this3$markerLayerOpt = _this3.markerLayerOption.clusterOption,
280
- field = _this3$markerLayerOpt.field,
281
- method = _this3$markerLayerOpt.method; // 处理聚合数据
282
-
283
- if ((_feature$properties = feature.properties) !== null && _feature$properties !== void 0 && _feature$properties.cluster_id) {
284
- var _feature$properties2;
285
-
286
- var clusterData = _this3.getLeaves((_feature$properties2 = feature.properties) === null || _feature$properties2 === void 0 ? void 0 : _feature$properties2.cluster_id);
287
-
288
- feature.properties.clusterData = clusterData;
289
-
290
- if (field && method) {
291
- var columnData = clusterData === null || clusterData === void 0 ? void 0 : clusterData.map(function (item) {
292
- var data = (0, _defineProperty2.default)({}, field, item.properties[field]);
293
- return data;
294
- });
295
-
296
- var column = _l7Utils.Satistics.getColumn(columnData, field);
297
-
298
- var stat = _l7Utils.Satistics.getSatByColumn(method, column);
299
-
300
- var fieldName = 'point_' + method;
301
- feature.properties[fieldName] = stat.toFixed(2);
302
- }
303
- }
304
-
305
- var marker = _this3.clusterMarker(feature);
306
-
307
- _this3.clusterMarkers.push(marker);
308
-
309
- marker.addTo(_this3.scene);
310
- });
311
- }
312
- }, {
313
- key: "getLeaves",
314
- value: function getLeaves(clusterId) {
315
- var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
316
- var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
317
-
318
- if (!clusterId) {
319
- return null;
320
- }
321
-
322
- return this.clusterIndex.getLeaves(clusterId, limit, offset);
323
- }
324
- }, {
325
- key: "clusterMarker",
326
- value: function clusterMarker(feature) {
327
- var clusterOption = this.markerLayerOption.clusterOption;
328
- var _ref = clusterOption,
329
- _ref$element = _ref.element,
330
- element = _ref$element === void 0 ? this.generateElement.bind(this) : _ref$element;
331
- var marker = new _marker.default({
332
- element: element(feature)
333
- }).setLnglat({
334
- lng: feature.geometry.coordinates[0],
335
- lat: feature.geometry.coordinates[1]
336
- });
337
- return marker;
338
- }
339
- }, {
340
- key: "normalMarker",
341
- value: function normalMarker(feature) {
342
- var marker_id = feature.properties.marker_id;
343
- return this.markers[marker_id];
344
- }
345
- }, {
346
- key: "update",
347
- value: function update() {
348
- if (!this.mapsService) return; // 当图层中无marker时,无需更新
349
-
350
- if (this.markers.length === 0) return;
351
- var zoom = this.mapsService.getZoom();
352
- var bbox = this.mapsService.getBounds();
353
-
354
- if (!this.bbox || Math.abs(zoom - this.zoom) >= 1 || !(0, _l7Utils.boundsContains)(this.bbox, bbox)) {
355
- this.bbox = (0, _l7Utils.padBounds)(bbox, 0.5);
356
- this.zoom = Math.floor(zoom);
357
- this.getClusterMarker(this.bbox, this.zoom);
358
- }
359
- }
360
- }, {
361
- key: "generateElement",
362
- value: function generateElement(feature) {
363
- var el = _l7Utils.DOM.create('div', 'l7-marker-cluster');
364
-
365
- var label = _l7Utils.DOM.create('div', '', el);
366
-
367
- var span = _l7Utils.DOM.create('span', '', label);
368
-
369
- var _this$markerLayerOpti4 = this.markerLayerOption.clusterOption,
370
- field = _this$markerLayerOpti4.field,
371
- method = _this$markerLayerOpti4.method;
372
- feature.properties.point_count = feature.properties.point_count || 1;
373
- var text = field && method ? feature.properties['point_' + method] || feature.properties[field] : feature.properties.point_count;
374
- span.textContent = text;
375
- return el;
376
- }
377
- }]);
378
- return MarkerLayer;
379
- }(_eventemitter.EventEmitter);
380
-
381
- exports.default = MarkerLayer;