@antv/l7-component 2.18.2 → 2.19.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.
Files changed (114) hide show
  1. package/es/assets/iconfont/iconfont.js +46 -0
  2. package/es/constants/index.d.ts +60 -0
  3. package/es/constants/index.js +60 -0
  4. package/es/control/baseControl/buttonControl.d.ts +59 -0
  5. package/es/control/baseControl/buttonControl.js +177 -0
  6. package/es/control/baseControl/control.d.ts +112 -0
  7. package/es/control/baseControl/control.js +302 -0
  8. package/es/control/baseControl/index.d.ts +4 -0
  9. package/es/control/baseControl/index.js +4 -0
  10. package/es/control/baseControl/popperControl.d.ts +26 -0
  11. package/es/control/baseControl/popperControl.js +120 -0
  12. package/es/control/baseControl/selectControl.d.ts +46 -0
  13. package/es/control/baseControl/selectControl.js +204 -0
  14. package/es/control/exportImage.d.ts +18 -0
  15. package/es/control/exportImage.js +159 -0
  16. package/es/control/fullscreen.d.ts +19 -0
  17. package/es/control/fullscreen.js +119 -0
  18. package/es/control/geoLocate.d.ts +16 -0
  19. package/es/control/geoLocate.js +107 -0
  20. package/es/control/layerSwitch.d.ts +19 -0
  21. package/es/control/layerSwitch.js +141 -0
  22. package/es/control/logo.d.ts +13 -0
  23. package/es/control/logo.js +75 -0
  24. package/es/control/mapTheme.d.ts +10 -0
  25. package/es/control/mapTheme.js +110 -0
  26. package/es/control/mouseLocation.d.ts +15 -0
  27. package/es/control/mouseLocation.js +83 -0
  28. package/es/control/scale.d.ts +34 -0
  29. package/es/control/scale.js +149 -0
  30. package/es/control/zoom.d.ts +38 -0
  31. package/es/control/zoom.js +132 -0
  32. package/es/css/button.less +70 -0
  33. package/es/css/control.less +71 -0
  34. package/es/css/index.css +594 -0
  35. package/es/css/index.less +12 -0
  36. package/es/css/l7.less +62 -0
  37. package/es/css/layerPopup.less +8 -0
  38. package/es/css/logo.less +18 -0
  39. package/es/css/mouseLocation.less +9 -0
  40. package/es/css/popper.less +64 -0
  41. package/es/css/popup.less +185 -0
  42. package/es/css/scale.less +34 -0
  43. package/es/css/select.less +86 -0
  44. package/es/css/variables.less +30 -0
  45. package/es/css/zoom.less +29 -0
  46. package/es/images/layers.png +0 -0
  47. package/es/images/layers.svg +1 -0
  48. package/es/images/logo.png +0 -0
  49. package/es/images/quanping.svg +12 -0
  50. package/es/index.d.ts +18 -0
  51. package/es/index.js +49 -0
  52. package/es/interface.d.ts +18 -0
  53. package/es/interface.js +1 -0
  54. package/es/marker-layer.d.ts +54 -0
  55. package/es/marker-layer.js +343 -0
  56. package/es/marker.d.ts +55 -0
  57. package/es/marker.js +410 -0
  58. package/es/popup/layerPopup.d.ts +95 -0
  59. package/es/popup/layerPopup.js +343 -0
  60. package/es/popup/popup.d.ts +139 -0
  61. package/es/popup/popup.js +575 -0
  62. package/es/utils/anchor.d.ts +22 -0
  63. package/es/utils/anchor.js +31 -0
  64. package/es/utils/icon.d.ts +1 -0
  65. package/es/utils/icon.js +9 -0
  66. package/es/utils/popper.d.ts +76 -0
  67. package/es/utils/popper.js +266 -0
  68. package/es/utils/screenfull.d.ts +2 -0
  69. package/es/utils/screenfull.js +128 -0
  70. package/lib/assets/iconfont/iconfont.js +48 -0
  71. package/lib/constants/index.js +68 -0
  72. package/lib/control/baseControl/buttonControl.js +183 -0
  73. package/lib/control/baseControl/control.js +314 -0
  74. package/lib/control/baseControl/index.js +39 -0
  75. package/lib/control/baseControl/popperControl.js +126 -0
  76. package/lib/control/baseControl/selectControl.js +210 -0
  77. package/lib/control/exportImage.js +165 -0
  78. package/lib/control/fullscreen.js +125 -0
  79. package/lib/control/geoLocate.js +113 -0
  80. package/lib/control/layerSwitch.js +147 -0
  81. package/lib/control/logo.js +81 -0
  82. package/lib/control/mapTheme.js +116 -0
  83. package/lib/control/mouseLocation.js +89 -0
  84. package/lib/control/scale.js +155 -0
  85. package/lib/control/zoom.js +138 -0
  86. package/lib/css/button.less +70 -0
  87. package/lib/css/control.less +71 -0
  88. package/lib/css/index.css +594 -0
  89. package/lib/css/index.less +12 -0
  90. package/lib/css/l7.less +62 -0
  91. package/lib/css/layerPopup.less +8 -0
  92. package/lib/css/logo.less +18 -0
  93. package/lib/css/mouseLocation.less +9 -0
  94. package/lib/css/popper.less +64 -0
  95. package/lib/css/popup.less +185 -0
  96. package/lib/css/scale.less +34 -0
  97. package/lib/css/select.less +86 -0
  98. package/lib/css/variables.less +30 -0
  99. package/lib/css/zoom.less +29 -0
  100. package/lib/images/layers.png +0 -0
  101. package/lib/images/layers.svg +1 -0
  102. package/lib/images/logo.png +0 -0
  103. package/lib/images/quanping.svg +12 -0
  104. package/lib/index.js +169 -0
  105. package/lib/interface.js +5 -0
  106. package/lib/marker-layer.js +349 -0
  107. package/lib/marker.js +417 -0
  108. package/lib/popup/layerPopup.js +349 -0
  109. package/lib/popup/popup.js +581 -0
  110. package/lib/utils/anchor.js +40 -0
  111. package/lib/utils/icon.js +16 -0
  112. package/lib/utils/popper.js +270 -0
  113. package/lib/utils/screenfull.js +136 -0
  114. package/package.json +6 -6
@@ -0,0 +1,343 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
5
+ import _get from "@babel/runtime/helpers/esm/get";
6
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
7
+ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
8
+ import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
9
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+ 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; } }
12
+ import { DOM, lodashUtil } from '@antv/l7-utils';
13
+ import Popup from "./popup";
14
+ var get = lodashUtil.get;
15
+ export { LayerPopup };
16
+ var LayerPopup = /*#__PURE__*/function (_Popup) {
17
+ _inherits(LayerPopup, _Popup);
18
+ var _super = _createSuper(LayerPopup);
19
+ function LayerPopup() {
20
+ var _this;
21
+ _classCallCheck(this, LayerPopup);
22
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23
+ args[_key] = arguments[_key];
24
+ }
25
+ _this = _super.call.apply(_super, [this].concat(args));
26
+ /**
27
+ * 用于统计当前帧当中,layer 被点击的次数
28
+ */
29
+ _defineProperty(_assertThisInitialized(_this), "layerClickCountByFrame", 0);
30
+ /**
31
+ * 用于保存图层对应的事件回调以及配置信息
32
+ * @protected
33
+ */
34
+ _defineProperty(_assertThisInitialized(_this), "layerConfigMap", new WeakMap());
35
+ _defineProperty(_assertThisInitialized(_this), "onLayerClick", function (layer, e) {
36
+ requestAnimationFrame(function () {
37
+ if (_this.popupOption.closeOnClick) {
38
+ _this.layerClickCountByFrame++;
39
+ }
40
+ if (_this.isShow && _this.isSameFeature(layer, e.featureId)) {
41
+ _this.hide();
42
+ } else {
43
+ var _this$getLayerInfoFra = _this.getLayerInfoFrag(layer, e),
44
+ title = _this$getLayerInfoFra.title,
45
+ content = _this$getLayerInfoFra.content;
46
+ _this.setDOMContent(content);
47
+ _this.setLnglat(e.lngLat);
48
+ _this.setTitle(title);
49
+ _this.displayFeatureInfo = {
50
+ layer: layer,
51
+ featureId: e.featureId
52
+ };
53
+ _this.show();
54
+ }
55
+ });
56
+ });
57
+ _defineProperty(_assertThisInitialized(_this), "onSceneClick", function () {
58
+ _this.layerClickCountByFrame = 0;
59
+ requestAnimationFrame(function () {
60
+ if (!_this.layerClickCountByFrame) {
61
+ _this.hide();
62
+ }
63
+ });
64
+ });
65
+ /**
66
+ * 覆盖 Popup 中的默认的 closeOnClick 行为
67
+ */
68
+ // tslint:disable-next-line:no-empty
69
+ _defineProperty(_assertThisInitialized(_this), "updateCloseOnClick", function () {});
70
+ return _this;
71
+ }
72
+ _createClass(LayerPopup, [{
73
+ key: "layerConfigItems",
74
+ get:
75
+ /**
76
+ * 当期正在展示的图层以及对应元素 id 的信息
77
+ * @protected
78
+ */
79
+
80
+ function get() {
81
+ var _ref;
82
+ var _this$popupOption = this.popupOption,
83
+ config = _this$popupOption.config,
84
+ items = _this$popupOption.items;
85
+ return (_ref = config !== null && config !== void 0 ? config : items) !== null && _ref !== void 0 ? _ref : [];
86
+ }
87
+ }, {
88
+ key: "addTo",
89
+ value: function addTo(scene) {
90
+ _get(_getPrototypeOf(LayerPopup.prototype), "addTo", this).call(this, scene);
91
+ this.bindLayerEvent();
92
+ this.hide();
93
+ return this;
94
+ }
95
+ }, {
96
+ key: "remove",
97
+ value: function remove() {
98
+ _get(_getPrototypeOf(LayerPopup.prototype), "remove", this).call(this);
99
+ this.unbindLayerEvent();
100
+ return this;
101
+ }
102
+ }, {
103
+ key: "setOptions",
104
+ value: function setOptions(option) {
105
+ this.unbindLayerEvent();
106
+ _get(_getPrototypeOf(LayerPopup.prototype), "setOptions", this).call(this, option);
107
+ this.bindLayerEvent();
108
+ return this;
109
+ }
110
+ }, {
111
+ key: "getDefault",
112
+ value: function getDefault(option) {
113
+ var isClickTrigger = option.trigger === 'click';
114
+ return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(LayerPopup.prototype), "getDefault", this).call(this, option)), {}, {
115
+ trigger: 'hover',
116
+ followCursor: !isClickTrigger,
117
+ lngLat: {
118
+ lng: 0,
119
+ lat: 0
120
+ },
121
+ offsets: [0, 10],
122
+ closeButton: false,
123
+ closeOnClick: true,
124
+ autoClose: false,
125
+ closeOnEsc: false
126
+ });
127
+ }
128
+
129
+ /**
130
+ * 绑定对应的图层事件
131
+ * @protected
132
+ */
133
+ }, {
134
+ key: "bindLayerEvent",
135
+ value: function bindLayerEvent() {
136
+ var _this2 = this;
137
+ var _this$popupOption2 = this.popupOption,
138
+ trigger = _this$popupOption2.trigger,
139
+ closeOnClick = _this$popupOption2.closeOnClick;
140
+ this.layerConfigItems.forEach(function (configItem) {
141
+ var _layer$getSource;
142
+ var layer = _this2.getLayerByConfig(configItem);
143
+ if (!layer) {
144
+ return;
145
+ }
146
+ var layerInfo = _objectSpread({}, configItem);
147
+ if (trigger === 'hover') {
148
+ var onMouseMove = _this2.onLayerMouseMove.bind(_this2, layer);
149
+ var onMouseOut = _this2.onLayerMouseOut.bind(_this2, layer);
150
+ layerInfo.onMouseMove = onMouseMove;
151
+ layerInfo.onMouseOut = onMouseOut;
152
+ layer === null || layer === void 0 ? void 0 : layer.on('mousemove', onMouseMove);
153
+ layer === null || layer === void 0 ? void 0 : layer.on('mouseout', onMouseOut);
154
+ } else {
155
+ var _this2$mapsService;
156
+ var onLayerClick = _this2.onLayerClick.bind(_this2, layer);
157
+ layerInfo.onClick = onLayerClick;
158
+ layer === null || layer === void 0 ? void 0 : layer.on('click', onLayerClick);
159
+ var mapContainer = (_this2$mapsService = _this2.mapsService) === null || _this2$mapsService === void 0 ? void 0 : _this2$mapsService.getMapContainer();
160
+ if (mapContainer && closeOnClick) {
161
+ mapContainer.addEventListener('click', _this2.onSceneClick);
162
+ }
163
+ }
164
+ var source = layer === null || layer === void 0 ? void 0 : (_layer$getSource = layer.getSource) === null || _layer$getSource === void 0 ? void 0 : _layer$getSource.call(layer);
165
+ var onSourceUpdate = _this2.onSourceUpdate.bind(_this2, layer);
166
+ source === null || source === void 0 ? void 0 : source.on('update', onSourceUpdate);
167
+ layerInfo.onSourceUpdate = onSourceUpdate;
168
+ _this2.layerConfigMap.set(layer, layerInfo);
169
+ });
170
+ }
171
+
172
+ /**
173
+ * 解绑对应的图层事件
174
+ * @protected
175
+ */
176
+ }, {
177
+ key: "unbindLayerEvent",
178
+ value: function unbindLayerEvent() {
179
+ var _this3 = this;
180
+ this.layerConfigItems.forEach(function (configItem) {
181
+ var _this3$mapsService;
182
+ var layer = _this3.getLayerByConfig(configItem);
183
+ var layerInfo = layer && _this3.layerConfigMap.get(layer);
184
+ if (!layerInfo) {
185
+ return;
186
+ }
187
+ var onMouseMove = layerInfo.onMouseMove,
188
+ onMouseOut = layerInfo.onMouseOut,
189
+ onClick = layerInfo.onClick,
190
+ onSourceUpdate = layerInfo.onSourceUpdate;
191
+ if (onMouseMove) {
192
+ layer.off('mousemove', onMouseMove);
193
+ }
194
+ if (onMouseOut) {
195
+ layer.off('mouseout', onMouseOut);
196
+ }
197
+ if (onClick) {
198
+ layer.off('click', onClick);
199
+ }
200
+ if (onSourceUpdate) {
201
+ var _layer$getSource2;
202
+ layer === null || layer === void 0 ? void 0 : (_layer$getSource2 = layer.getSource()) === null || _layer$getSource2 === void 0 ? void 0 : _layer$getSource2.off('update', onSourceUpdate);
203
+ }
204
+ var mapContainer = (_this3$mapsService = _this3.mapsService) === null || _this3$mapsService === void 0 ? void 0 : _this3$mapsService.getMapContainer();
205
+ if (mapContainer) {
206
+ mapContainer.removeEventListener('click', _this3.onSceneClick);
207
+ }
208
+ });
209
+ }
210
+ }, {
211
+ key: "onLayerMouseMove",
212
+ value: function onLayerMouseMove(layer, e) {
213
+ if (!this.isSameFeature(layer, e.featureId)) {
214
+ var _this$getLayerInfoFra2 = this.getLayerInfoFrag(layer, e),
215
+ title = _this$getLayerInfoFra2.title,
216
+ content = _this$getLayerInfoFra2.content;
217
+ this.setDOMContent(content);
218
+ this.setTitle(title);
219
+ this.displayFeatureInfo = {
220
+ layer: layer,
221
+ featureId: e.featureId
222
+ };
223
+ this.show();
224
+ }
225
+ }
226
+
227
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
228
+ }, {
229
+ key: "onLayerMouseOut",
230
+ value: function onLayerMouseOut(layer, e) {
231
+ this.displayFeatureInfo = undefined;
232
+ if (this.isShow) {
233
+ this.hide();
234
+ }
235
+ }
236
+ }, {
237
+ key: "onSourceUpdate",
238
+ value: function onSourceUpdate(layer) {
239
+ this.hide();
240
+ this.displayFeatureInfo = undefined;
241
+ }
242
+
243
+ /**
244
+ * 通过当前图层和对应选中的元素获取气泡展示的 HTML 内容
245
+ * @param layer
246
+ * @param e
247
+ * @protected
248
+ */
249
+ }, {
250
+ key: "getLayerInfoFrag",
251
+ value: function getLayerInfoFrag(layer, e) {
252
+ var layerInfo = this.layerConfigMap.get(layer);
253
+ var titleFrag;
254
+ var contentFrag = document.createDocumentFragment();
255
+ if (layerInfo) {
256
+ var _feature = e.feature;
257
+ if (_feature.type === 'Feature' && 'properties' in _feature && 'geometry' in _feature) {
258
+ _feature = _feature.properties;
259
+ }
260
+ var title = layerInfo.title,
261
+ fields = layerInfo.fields,
262
+ customContent = layerInfo.customContent;
263
+ if (title) {
264
+ titleFrag = document.createDocumentFragment();
265
+ var titleElement = title instanceof Function ? title(_feature) : title;
266
+ DOM.appendElementType(titleFrag, titleElement);
267
+ }
268
+ if (customContent) {
269
+ var content = customContent instanceof Function ? customContent(_feature) : customContent;
270
+ DOM.appendElementType(contentFrag, content);
271
+ } else if (fields !== null && fields !== void 0 && fields.length) {
272
+ fields === null || fields === void 0 ? void 0 : fields.forEach(function (fieldConfig) {
273
+ var _ref3, _ref4;
274
+ var _ref2 = typeof fieldConfig === 'string' ?
275
+ // tslint:disable-next-line:no-object-literal-type-assertion
276
+ {
277
+ field: fieldConfig
278
+ } : fieldConfig,
279
+ field = _ref2.field,
280
+ formatField = _ref2.formatField,
281
+ formatValue = _ref2.formatValue,
282
+ getValue = _ref2.getValue;
283
+ var row = DOM.create('div', 'l7-layer-popup__row');
284
+ var value = getValue ? getValue(e.feature) : get(_feature, field);
285
+ var fieldElement = (_ref3 = formatField instanceof Function ? formatField(field, _feature) : formatField) !== null && _ref3 !== void 0 ? _ref3 : field;
286
+ var valueElement = (_ref4 = formatValue instanceof Function ? formatValue(value, _feature) : formatValue) !== null && _ref4 !== void 0 ? _ref4 : value;
287
+ var fieldSpan = DOM.create('span', 'l7-layer-popup__key', row);
288
+ DOM.appendElementType(fieldSpan, fieldElement);
289
+ DOM.appendElementType(fieldSpan, document.createTextNode(':'));
290
+ var valueSpan = DOM.create('span', 'l7-layer-popup__value', row);
291
+
292
+ // 当 value 中每项元素均为基础数据类型时,用逗号隔开
293
+ if (Array.isArray(valueElement) && valueElement.every(function (item) {
294
+ return !(item instanceof Object);
295
+ })) {
296
+ valueElement = valueElement.map(function (item) {
297
+ return String(item);
298
+ }).join(',');
299
+ }
300
+ DOM.appendElementType(valueSpan, valueElement);
301
+ contentFrag.appendChild(row);
302
+ });
303
+ }
304
+ }
305
+ return {
306
+ title: titleFrag,
307
+ content: contentFrag
308
+ };
309
+ }
310
+
311
+ /**
312
+ * 通过 Layer 配置访问到真实的 Layer 实例
313
+ * @param configItem
314
+ * @protected
315
+ */
316
+ }, {
317
+ key: "getLayerByConfig",
318
+ value: function getLayerByConfig(configItem) {
319
+ var layer = configItem.layer;
320
+ if (layer instanceof Object) {
321
+ return layer;
322
+ }
323
+ if (typeof layer === 'string') {
324
+ return this.layerService.getLayer(layer) || this.layerService.getLayerByName(layer);
325
+ }
326
+ }
327
+
328
+ /**
329
+ * 判断当前展示的 Feature 是否和上一次查看的一致
330
+ * @param layer
331
+ * @param featureId
332
+ * @protected
333
+ */
334
+ }, {
335
+ key: "isSameFeature",
336
+ value: function isSameFeature(layer, featureId) {
337
+ var displayFeatureInfo = this.displayFeatureInfo;
338
+ return displayFeatureInfo && layer === displayFeatureInfo.layer && featureId === displayFeatureInfo.featureId;
339
+ }
340
+ }]);
341
+ return LayerPopup;
342
+ }(Popup);
343
+ export { LayerPopup as default };
@@ -0,0 +1,139 @@
1
+ import { ILayerService, ILngLat, IMapService, IPopup, IPopupOption, ISceneService } from '@antv/l7-core';
2
+ import { DOM } from '@antv/l7-utils';
3
+ import { EventEmitter } from 'eventemitter3';
4
+ import { Container } from 'inversify';
5
+ type ElementType = DOM.ElementType;
6
+ export { Popup };
7
+ export default class Popup<O extends IPopupOption = IPopupOption> extends EventEmitter implements IPopup {
8
+ /**
9
+ * 配置
10
+ * @protected
11
+ */
12
+ protected popupOption: O;
13
+ protected mapsService: IMapService;
14
+ protected sceneService: ISceneService;
15
+ protected layerService: ILayerService;
16
+ protected scene: Container;
17
+ /**
18
+ * 关闭按钮对应的 DOM
19
+ * @protected
20
+ */
21
+ protected closeButton?: HTMLElement | SVGElement;
22
+ /**
23
+ * Popup 的总容器 DOM,包含 content 和 tip
24
+ * @protected
25
+ */
26
+ protected container: HTMLElement;
27
+ /**
28
+ * popup 气泡容器
29
+ * @protected
30
+ */
31
+ protected content: HTMLElement;
32
+ /**
33
+ * popup 气泡标题
34
+ * @protected
35
+ */
36
+ protected contentTitle?: HTMLElement;
37
+ /**
38
+ * popup 内容容器
39
+ * @protected
40
+ */
41
+ protected contentPanel: HTMLElement;
42
+ /**
43
+ * 气泡箭头对应的 DOM
44
+ * @protected
45
+ */
46
+ protected tip: HTMLElement;
47
+ /**
48
+ * 当前是否展示
49
+ * @protected
50
+ */
51
+ protected isShow: boolean;
52
+ protected get lngLat(): ILngLat;
53
+ protected set lngLat(newLngLat: ILngLat);
54
+ constructor(cfg?: Partial<O>);
55
+ getIsShow(): boolean;
56
+ addTo(scene: Container): this;
57
+ remove(): this | undefined;
58
+ /**
59
+ * 获取 option 配置
60
+ */
61
+ getOptions(): O;
62
+ setOptions(option: Partial<O>): this;
63
+ open(): this;
64
+ close(): this;
65
+ show(): this | undefined;
66
+ hide(): this | undefined;
67
+ /**
68
+ * 设置 HTML 内容
69
+ * @param html
70
+ */
71
+ setHTML(html: ElementType): this;
72
+ /**
73
+ * 设置 Popup 展示文本
74
+ * @param text
75
+ */
76
+ setText(text: string): this;
77
+ setTitle(title?: ElementType): void;
78
+ /**
79
+ * 将地图自动平移到气泡位置
80
+ */
81
+ panToPopup(): this;
82
+ setLngLat(lngLat: ILngLat | [number, number]): this;
83
+ /**
84
+ * 设置 Popup 所在经纬度
85
+ * @param lngLat
86
+ */
87
+ setLnglat(lngLat: ILngLat | [number, number]): this;
88
+ /**
89
+ * 获取 Popup 所在经纬度
90
+ */
91
+ getLnglat(): ILngLat;
92
+ /**
93
+ * 设置 Popup 最大宽度
94
+ * @param maxWidth
95
+ */
96
+ setMaxWidth(maxWidth: string): this;
97
+ isOpen(): boolean;
98
+ protected onMouseMove: (e: MouseEvent) => void;
99
+ /**
100
+ * 将经纬度转换成对应的像素偏移位置
101
+ * @protected
102
+ */
103
+ protected updateLngLatPosition: () => void;
104
+ protected getDefault(option: Partial<O>): O;
105
+ /**
106
+ * 设置 Popup 内容 HTML
107
+ * @param element
108
+ */
109
+ protected setDOMContent(element: ElementType): this;
110
+ /**
111
+ * 绑定地图点击事件触发销毁 Popup
112
+ * @protected
113
+ */
114
+ protected updateCloseOnClick(onlyClear?: boolean): void;
115
+ protected updateCloseOnEsc(onlyClear?: boolean): void;
116
+ protected updateFollowCursor(onlyClear?: boolean): void;
117
+ protected onKeyDown: (e: KeyboardEvent) => void;
118
+ /**
119
+ * 创建 Popup 内容容器的 DOM (在每次 setHTML 或 setText 时都会被调用)
120
+ * @protected
121
+ */
122
+ protected createContent(): void;
123
+ protected onCloseButtonClick: (e: Event) => void;
124
+ protected update: () => void;
125
+ /**
126
+ * 设置 Popup 相对于地图容器的 Position
127
+ * @param left
128
+ * @param top
129
+ * @protected
130
+ */
131
+ protected setPopupPosition(left: number, top: number): void;
132
+ /**
133
+ * 检查当前传入 option 是否包含 keys 字段
134
+ * @param option
135
+ * @param keys
136
+ * @protected
137
+ */
138
+ protected checkUpdateOption(option: Partial<O>, keys: Array<keyof O>): boolean;
139
+ }