@antv/l7-component 2.5.34 → 2.5.37-mini10

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 (45) hide show
  1. package/lib/control/BaseControl.js +1 -1
  2. package/lib/control/logo.js +6 -2
  3. package/lib/control/logo.js.map +1 -1
  4. package/lib/control/scale.js +6 -2
  5. package/lib/control/scale.js.map +1 -1
  6. package/lib/control/zoom.js +6 -2
  7. package/lib/control/zoom.js.map +1 -1
  8. package/lib/index.js +10 -10
  9. package/lib/marker.js +1 -1
  10. package/lib/markerlayer.js +1 -1
  11. package/lib/popup.js +1 -1
  12. package/lib/utils/anchor.js +1 -1
  13. package/package.json +4 -4
  14. package/CHANGELOG.md +0 -325
  15. package/LICENSE.md +0 -21
  16. package/es/control/BaseControl.d.ts +0 -27
  17. package/es/control/BaseControl.js +0 -155
  18. package/es/control/BaseControl.js.map +0 -1
  19. package/es/control/layer.d.ts +0 -44
  20. package/es/control/layer.js +0 -355
  21. package/es/control/layer.js.map +0 -1
  22. package/es/control/logo.d.ts +0 -9
  23. package/es/control/logo.js +0 -58
  24. package/es/control/logo.js.map +0 -1
  25. package/es/control/scale.d.ts +0 -30
  26. package/es/control/scale.js +0 -153
  27. package/es/control/scale.js.map +0 -1
  28. package/es/control/zoom.d.ts +0 -30
  29. package/es/control/zoom.js +0 -128
  30. package/es/control/zoom.js.map +0 -1
  31. package/es/index.d.ts +0 -10
  32. package/es/index.js +0 -45
  33. package/es/index.js.map +0 -1
  34. package/es/marker.d.ts +0 -47
  35. package/es/marker.js +0 -427
  36. package/es/marker.js.map +0 -1
  37. package/es/markerlayer.d.ts +0 -68
  38. package/es/markerlayer.js +0 -309
  39. package/es/markerlayer.js.map +0 -1
  40. package/es/popup.d.ts +0 -35
  41. package/es/popup.js +0 -316
  42. package/es/popup.js.map +0 -1
  43. package/es/utils/anchor.d.ts +0 -22
  44. package/es/utils/anchor.js +0 -36
  45. package/es/utils/anchor.js.map +0 -1
package/es/markerlayer.js DELETED
@@ -1,309 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
- import _merge from "lodash/merge";
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
14
- 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); }; }
15
-
16
- 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; } }
17
-
18
- import { TYPES } from '@antv/l7-core';
19
- import { bindAll, boundsContains, DOM, padBounds, Satistics } from '@antv/l7-utils';
20
- import { EventEmitter } from 'eventemitter3';
21
- import Supercluster from 'supercluster/dist/supercluster';
22
- import Marker from './marker';
23
-
24
- var MarkerLayer = function (_EventEmitter) {
25
- _inherits(MarkerLayer, _EventEmitter);
26
-
27
- var _super = _createSuper(MarkerLayer);
28
-
29
- function MarkerLayer(option) {
30
- var _this$markerLayerOpti;
31
-
32
- var _this;
33
-
34
- _classCallCheck(this, MarkerLayer);
35
-
36
- _this = _super.call(this);
37
-
38
- _defineProperty(_assertThisInitialized(_this), "markers", []);
39
-
40
- _defineProperty(_assertThisInitialized(_this), "markerLayerOption", void 0);
41
-
42
- _defineProperty(_assertThisInitialized(_this), "clusterIndex", void 0);
43
-
44
- _defineProperty(_assertThisInitialized(_this), "points", []);
45
-
46
- _defineProperty(_assertThisInitialized(_this), "clusterMarkers", []);
47
-
48
- _defineProperty(_assertThisInitialized(_this), "mapsService", void 0);
49
-
50
- _defineProperty(_assertThisInitialized(_this), "scene", void 0);
51
-
52
- _defineProperty(_assertThisInitialized(_this), "zoom", void 0);
53
-
54
- _defineProperty(_assertThisInitialized(_this), "bbox", void 0);
55
-
56
- _this.markerLayerOption = _merge(_this.getDefault(), option);
57
- bindAll(['update'], _assertThisInitialized(_this));
58
- _this.zoom = ((_this$markerLayerOpti = _this.markerLayerOption.clusterOption) === null || _this$markerLayerOpti === void 0 ? void 0 : _this$markerLayerOpti.zoom) || -99;
59
- return _this;
60
- }
61
-
62
- _createClass(MarkerLayer, [{
63
- key: "getDefault",
64
- value: function getDefault() {
65
- return {
66
- cluster: false,
67
- clusterOption: {
68
- radius: 80,
69
- maxZoom: 20,
70
- minZoom: 0,
71
- zoom: -99,
72
- style: {},
73
- className: ''
74
- }
75
- };
76
- }
77
- }, {
78
- key: "addTo",
79
- value: function addTo(scene) {
80
- this.scene = scene;
81
- this.mapsService = scene.get(TYPES.IMapService);
82
-
83
- if (this.markerLayerOption.cluster) {
84
- this.initCluster();
85
- this.update();
86
- this.mapsService.on('camerachange', this.update);
87
- this.mapsService.on('viewchange', this.update);
88
- }
89
-
90
- this.addMarkers();
91
- return this;
92
- }
93
- }, {
94
- key: "addMarker",
95
- value: function addMarker(marker) {
96
- var cluster = this.markerLayerOption.cluster;
97
-
98
- if (cluster) {
99
- this.addPoint(marker, this.markers.length);
100
- }
101
-
102
- this.markers.push(marker);
103
- }
104
- }, {
105
- key: "removeMarker",
106
- value: function removeMarker(marker) {
107
- this.markers.indexOf(marker);
108
- var markerIndex = this.markers.indexOf(marker);
109
-
110
- if (markerIndex > -1) {
111
- this.markers.splice(markerIndex, 1);
112
- }
113
- }
114
- }, {
115
- key: "hide",
116
- value: function hide() {
117
- this.markers.map(function (m) {
118
- m.getElement().style.opacity = '0';
119
- });
120
- }
121
- }, {
122
- key: "show",
123
- value: function show() {
124
- this.markers.map(function (m) {
125
- m.getElement().style.opacity = '1';
126
- });
127
- }
128
- }, {
129
- key: "getMarkers",
130
- value: function getMarkers() {
131
- var cluster = this.markerLayerOption.cluster;
132
- return cluster ? this.clusterMarkers : this.markers;
133
- }
134
- }, {
135
- key: "addMarkers",
136
- value: function addMarkers() {
137
- var _this2 = this;
138
-
139
- this.getMarkers().forEach(function (marker) {
140
- marker.addTo(_this2.scene);
141
- });
142
- }
143
- }, {
144
- key: "clear",
145
- value: function clear() {
146
- this.markers.forEach(function (marker) {
147
- marker.remove();
148
- });
149
- this.clusterMarkers.forEach(function (clusterMarker) {
150
- clusterMarker.remove();
151
- });
152
- this.mapsService.off('camerachange', this.update);
153
- this.markers = [];
154
- this.clusterMarkers = [];
155
- }
156
- }, {
157
- key: "destroy",
158
- value: function destroy() {
159
- this.clear();
160
- this.removeAllListeners();
161
- }
162
- }, {
163
- key: "addPoint",
164
- value: function addPoint(marker, id) {
165
- var _marker$getLnglat = marker.getLnglat(),
166
- lng = _marker$getLnglat.lng,
167
- lat = _marker$getLnglat.lat;
168
-
169
- var feature = {
170
- geometry: {
171
- type: 'Point',
172
- coordinates: [lng, lat]
173
- },
174
- properties: _objectSpread(_objectSpread({}, marker.getExtData()), {}, {
175
- marker_id: id
176
- })
177
- };
178
- this.points.push(feature);
179
- }
180
- }, {
181
- key: "initCluster",
182
- value: function initCluster() {
183
- if (!this.markerLayerOption.cluster) {
184
- return;
185
- }
186
-
187
- var _ref = this.markerLayerOption.clusterOption,
188
- radius = _ref.radius,
189
- _ref$minZoom = _ref.minZoom,
190
- minZoom = _ref$minZoom === void 0 ? 0 : _ref$minZoom,
191
- maxZoom = _ref.maxZoom;
192
- this.clusterIndex = new Supercluster({
193
- radius: radius,
194
- minZoom: minZoom,
195
- maxZoom: maxZoom
196
- });
197
- this.clusterIndex.load(this.points);
198
- }
199
- }, {
200
- key: "getClusterMarker",
201
- value: function getClusterMarker(viewBounds, zoom) {
202
- var _this3 = this;
203
-
204
- var viewBBox = viewBounds[0].concat(viewBounds[1]);
205
- var clusterPoint = this.clusterIndex.getClusters(viewBBox, zoom);
206
- this.clusterMarkers.forEach(function (marker) {
207
- marker.remove();
208
- });
209
- this.clusterMarkers = [];
210
- clusterPoint.forEach(function (feature) {
211
- var _feature$properties;
212
-
213
- var _this3$markerLayerOpt = _this3.markerLayerOption.clusterOption,
214
- field = _this3$markerLayerOpt.field,
215
- method = _this3$markerLayerOpt.method;
216
-
217
- if (feature.properties && (_feature$properties = feature.properties) !== null && _feature$properties !== void 0 && _feature$properties.cluster_id) {
218
- var _feature$properties2;
219
-
220
- var clusterData = _this3.getLeaves((_feature$properties2 = feature.properties) === null || _feature$properties2 === void 0 ? void 0 : _feature$properties2.cluster_id);
221
-
222
- feature.properties.clusterData = clusterData;
223
-
224
- if (field && method) {
225
- var columnData = clusterData === null || clusterData === void 0 ? void 0 : clusterData.map(function (item) {
226
- var data = _defineProperty({}, field, item.properties[field]);
227
-
228
- return data;
229
- });
230
- var column = Satistics.getColumn(columnData, field);
231
- var stat = Satistics.getSatByColumn(method, column);
232
- var fieldName = 'point_' + method;
233
- feature.properties[fieldName] = stat.toFixed(2);
234
- }
235
- }
236
-
237
- var marker = _this3.clusterMarker(feature);
238
-
239
- _this3.clusterMarkers.push(marker);
240
-
241
- marker.addTo(_this3.scene);
242
- });
243
- }
244
- }, {
245
- key: "getLeaves",
246
- value: function getLeaves(clusterId) {
247
- var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
248
- var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
249
-
250
- if (!clusterId) {
251
- return null;
252
- }
253
-
254
- return this.clusterIndex.getLeaves(clusterId, limit, offset);
255
- }
256
- }, {
257
- key: "clusterMarker",
258
- value: function clusterMarker(feature) {
259
- var clusterOption = this.markerLayerOption.clusterOption;
260
- var _ref2 = clusterOption,
261
- _ref2$element = _ref2.element,
262
- element = _ref2$element === void 0 ? this.generateElement.bind(this) : _ref2$element;
263
- var marker = new Marker({
264
- element: element(feature)
265
- }).setLnglat({
266
- lng: feature.geometry.coordinates[0],
267
- lat: feature.geometry.coordinates[1]
268
- });
269
- return marker;
270
- }
271
- }, {
272
- key: "normalMarker",
273
- value: function normalMarker(feature) {
274
- var marker_id = feature.properties.marker_id;
275
- return this.markers[marker_id];
276
- }
277
- }, {
278
- key: "update",
279
- value: function update() {
280
- var zoom = this.mapsService.getZoom();
281
- var bbox = this.mapsService.getBounds();
282
-
283
- if (!this.bbox || Math.abs(zoom - this.zoom) >= 1 || !boundsContains(this.bbox, bbox)) {
284
- this.bbox = padBounds(bbox, 0.5);
285
- this.zoom = Math.floor(zoom);
286
- this.getClusterMarker(this.bbox, this.zoom);
287
- }
288
- }
289
- }, {
290
- key: "generateElement",
291
- value: function generateElement(feature) {
292
- var el = DOM.create('div', 'l7-marker-cluster');
293
- var label = DOM.create('div', '', el);
294
- var span = DOM.create('span', '', label);
295
- var _this$markerLayerOpti2 = this.markerLayerOption.clusterOption,
296
- field = _this$markerLayerOpti2.field,
297
- method = _this$markerLayerOpti2.method;
298
- feature.properties.point_count = feature.properties.point_count || 1;
299
- var text = field && method ? feature.properties['point_' + method] || feature.properties[field] : feature.properties.point_count;
300
- span.textContent = text;
301
- return el;
302
- }
303
- }]);
304
-
305
- return MarkerLayer;
306
- }(EventEmitter);
307
-
308
- export { MarkerLayer as default };
309
- //# sourceMappingURL=markerlayer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/markerlayer.ts"],"names":["TYPES","bindAll","boundsContains","DOM","padBounds","Satistics","EventEmitter","Supercluster","Marker","MarkerLayer","option","markerLayerOption","getDefault","zoom","clusterOption","cluster","radius","maxZoom","minZoom","style","className","scene","mapsService","get","IMapService","initCluster","update","on","addMarkers","marker","addPoint","markers","length","push","indexOf","markerIndex","splice","map","m","getElement","opacity","clusterMarkers","getMarkers","forEach","addTo","remove","clusterMarker","off","clear","removeAllListeners","id","getLnglat","lng","lat","feature","geometry","type","coordinates","properties","getExtData","marker_id","points","clusterIndex","load","viewBounds","viewBBox","concat","clusterPoint","getClusters","field","method","cluster_id","clusterData","getLeaves","columnData","item","data","column","getColumn","stat","getSatByColumn","fieldName","toFixed","clusterId","limit","Infinity","offset","element","generateElement","bind","setLnglat","getZoom","bbox","getBounds","Math","abs","floor","getClusterMarker","el","create","label","span","point_count","text","textContent"],"mappings":"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","sourcesContent":["import { IMapService, IMarker, TYPES } from '@antv/l7-core';\nimport {\n bindAll,\n boundsContains,\n DOM,\n IBounds,\n padBounds,\n Satistics,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\nimport { merge } from 'lodash';\n// @ts-ignore\n// tslint:disable-next-line:no-submodule-imports\nimport Supercluster from 'supercluster/dist/supercluster';\nimport Marker from './marker';\ntype CallBack = (...args: any[]) => any;\ninterface IMarkerStyleOption {\n element?: CallBack;\n style: { [key: string]: any } | CallBack;\n className: string;\n field?: string;\n method?: 'sum' | 'max' | 'min' | 'mean';\n radius: number;\n maxZoom: number;\n minZoom: number;\n zoom: number;\n}\n\ninterface IMarkerLayerOption {\n cluster: boolean;\n clusterOption: Partial<IMarkerStyleOption>;\n}\n\ninterface IPointFeature {\n geometry: {\n type: 'Point';\n coordinates: [number, number];\n };\n properties: any;\n}\nexport default class MarkerLayer extends EventEmitter {\n private markers: IMarker[] = [];\n private markerLayerOption: IMarkerLayerOption;\n private clusterIndex: Supercluster;\n private points: IPointFeature[] = [];\n private clusterMarkers: IMarker[] = [];\n private mapsService: IMapService<unknown>;\n private scene: Container;\n private zoom: number;\n private bbox: IBounds;\n\n constructor(option?: Partial<IMarkerLayerOption>) {\n super();\n this.markerLayerOption = merge(this.getDefault(), option);\n bindAll(['update'], this);\n this.zoom = this.markerLayerOption.clusterOption?.zoom || -99;\n }\n public getDefault() {\n return {\n cluster: false,\n clusterOption: {\n radius: 80,\n maxZoom: 20,\n minZoom: 0,\n zoom: -99,\n style: {},\n className: '',\n },\n };\n }\n public addTo(scene: Container) {\n // this.remove();\n this.scene = scene;\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n if (this.markerLayerOption.cluster) {\n this.initCluster();\n this.update();\n // 地图视野变化时,重新计算视野内的聚合点。\n this.mapsService.on('camerachange', this.update); // amap1.x 更新事件\n this.mapsService.on('viewchange', this.update); // amap2.0 更新事件\n }\n this.addMarkers();\n return this;\n }\n public addMarker(marker: IMarker) {\n const cluster = this.markerLayerOption.cluster;\n if (cluster) {\n this.addPoint(marker, this.markers.length);\n }\n this.markers.push(marker);\n }\n\n public removeMarker(marker: IMarker) {\n this.markers.indexOf(marker);\n const markerIndex = this.markers.indexOf(marker);\n if (markerIndex > -1) {\n this.markers.splice(markerIndex, 1);\n }\n }\n\n /**\n * 隐藏 marker 在每个 marker 上单独修改属性而不是在 markerContainer 上修改(在 markerContainer 修改会有用户在场景加载完之前调用失败的问题)\n */\n public hide() {\n this.markers.map((m) => {\n m.getElement().style.opacity = '0';\n });\n }\n\n /**\n * 显示 marker\n */\n public show() {\n this.markers.map((m) => {\n m.getElement().style.opacity = '1';\n });\n }\n\n public getMarkers() {\n const cluster = this.markerLayerOption.cluster;\n return cluster ? this.clusterMarkers : this.markers;\n }\n\n public addMarkers() {\n this.getMarkers().forEach((marker: IMarker) => {\n marker.addTo(this.scene);\n });\n }\n public clear() {\n this.markers.forEach((marker: IMarker) => {\n marker.remove();\n });\n this.clusterMarkers.forEach((clusterMarker: IMarker) => {\n clusterMarker.remove();\n });\n this.mapsService.off('camerachange', this.update);\n this.markers = [];\n this.clusterMarkers = [];\n }\n\n public destroy() {\n this.clear();\n this.removeAllListeners();\n }\n\n private addPoint(marker: IMarker, id: number) {\n const { lng, lat } = marker.getLnglat();\n const feature: IPointFeature = {\n geometry: {\n type: 'Point',\n coordinates: [lng, lat],\n },\n properties: {\n ...marker.getExtData(),\n marker_id: id,\n },\n };\n this.points.push(feature);\n }\n\n private initCluster() {\n if (!this.markerLayerOption.cluster) {\n return;\n }\n const { radius, minZoom = 0, maxZoom } = this.markerLayerOption\n .clusterOption as IMarkerStyleOption;\n this.clusterIndex = new Supercluster({\n radius,\n minZoom,\n maxZoom,\n });\n // @ts-ignore\n this.clusterIndex.load(this.points);\n }\n\n private getClusterMarker(viewBounds: IBounds, zoom: number) {\n const viewBBox = viewBounds[0].concat(viewBounds[1]);\n const clusterPoint = this.clusterIndex.getClusters(viewBBox, zoom);\n this.clusterMarkers.forEach((marker: IMarker) => {\n marker.remove();\n });\n this.clusterMarkers = [];\n clusterPoint.forEach((feature: any) => {\n const { field, method } = this.markerLayerOption.clusterOption;\n // 处理聚合数据\n if (feature.properties && feature.properties?.cluster_id) {\n const clusterData = this.getLeaves(feature.properties?.cluster_id);\n feature.properties.clusterData = clusterData;\n if (field && method) {\n const columnData = clusterData?.map((item: any) => {\n const data = {\n [field]: item.properties[field],\n };\n return data;\n });\n const column = Satistics.getColumn(columnData as any, field);\n const stat = Satistics.getSatByColumn(method, column);\n const fieldName = 'point_' + method;\n feature.properties[fieldName] = stat.toFixed(2);\n }\n }\n const marker = this.clusterMarker(feature);\n this.clusterMarkers.push(marker);\n marker.addTo(this.scene);\n });\n }\n private getLeaves(\n clusterId: number,\n limit: number = Infinity,\n offset: number = 0,\n ) {\n if (!clusterId) {\n return null;\n }\n return this.clusterIndex.getLeaves(clusterId, limit, offset);\n }\n private clusterMarker(feature: any) {\n const clusterOption = this.markerLayerOption.clusterOption;\n\n const {\n element = this.generateElement.bind(this),\n } = clusterOption as IMarkerStyleOption;\n const marker = new Marker({\n element: element(feature),\n }).setLnglat({\n lng: feature.geometry.coordinates[0],\n lat: feature.geometry.coordinates[1],\n });\n return marker;\n }\n private normalMarker(feature: any) {\n const marker_id = feature.properties.marker_id;\n return this.markers[marker_id];\n }\n\n private update() {\n const zoom = this.mapsService.getZoom();\n const bbox = this.mapsService.getBounds();\n if (\n !this.bbox ||\n Math.abs(zoom - this.zoom) >= 1 ||\n !boundsContains(this.bbox, bbox)\n ) {\n this.bbox = padBounds(bbox, 0.5);\n this.zoom = Math.floor(zoom);\n this.getClusterMarker(this.bbox, this.zoom);\n }\n }\n\n private generateElement(feature: any) {\n const el = DOM.create('div', 'l7-marker-cluster');\n const label = DOM.create('div', '', el);\n const span = DOM.create('span', '', label);\n const { field, method } = this.markerLayerOption.clusterOption;\n feature.properties.point_count = feature.properties.point_count || 1;\n\n const text =\n field && method\n ? feature.properties['point_' + method] || feature.properties[field]\n : feature.properties.point_count;\n span.textContent = text;\n return el;\n }\n}\n"],"file":"markerlayer.js"}
package/es/popup.d.ts DELETED
@@ -1,35 +0,0 @@
1
- import { ILngLat, IPopup, IPopupOption } from '@antv/l7-core';
2
- import { EventEmitter } from 'eventemitter3';
3
- import { Container } from 'inversify';
4
- /** colse event */
5
- export default class Popup extends EventEmitter implements IPopup {
6
- private popupOption;
7
- private mapsService;
8
- private sceneSerive;
9
- private lngLat;
10
- private content;
11
- private closeButton;
12
- private timeoutInstance;
13
- private container;
14
- private tip;
15
- private scene;
16
- constructor(cfg?: Partial<IPopupOption>);
17
- addTo(scene: Container): this;
18
- close(): void;
19
- open(): void;
20
- setHTML(html: string): this;
21
- setLnglat(lngLat: ILngLat | number[]): this;
22
- getLnglat(): ILngLat;
23
- setText(text: string): this;
24
- setMaxWidth(maxWidth: string): this;
25
- setDOMContent(htmlNode: ChildNode | DocumentFragment): this;
26
- remove(): this;
27
- isOpen(): boolean;
28
- private createContent;
29
- private creatDom;
30
- private removeDom;
31
- private getdefault;
32
- private onClickClose;
33
- private update;
34
- private updatePosition;
35
- }