@tianditu/core 0.1.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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -0
  3. package/dist/index.d.mts +662 -0
  4. package/dist/index.mjs +1617 -0
  5. package/package.json +53 -0
  6. package/types/base.d.ts +97 -0
  7. package/types/control/control.d.ts +55 -0
  8. package/types/control/copyright.d.ts +30 -0
  9. package/types/control/index.d.ts +6 -0
  10. package/types/control/mapType.d.ts +63 -0
  11. package/types/control/overviewMap.d.ts +64 -0
  12. package/types/control/scale.d.ts +17 -0
  13. package/types/control/zoom.d.ts +24 -0
  14. package/types/global.d.mts +2 -0
  15. package/types/index.d.ts +19 -0
  16. package/types/layer/gridlineLayer.d.ts +33 -0
  17. package/types/layer/index.d.ts +4 -0
  18. package/types/layer/tdt.d.ts +14 -0
  19. package/types/layer/tileLayer.d.ts +78 -0
  20. package/types/layer/wms.d.ts +24 -0
  21. package/types/map.d.ts +290 -0
  22. package/types/militarySymbols/base.d.ts +71 -0
  23. package/types/militarySymbols/control.d.ts +24 -0
  24. package/types/militarySymbols/entities.d.ts +547 -0
  25. package/types/militarySymbols/index.d.ts +4 -0
  26. package/types/militarySymbols/tools.d.ts +191 -0
  27. package/types/modular.d.ts +258 -0
  28. package/types/mousetool/circleTool.d.ts +32 -0
  29. package/types/mousetool/coordinatePickup.d.ts +28 -0
  30. package/types/mousetool/index.d.ts +8 -0
  31. package/types/mousetool/markTool.d.ts +40 -0
  32. package/types/mousetool/mousetool.d.ts +28 -0
  33. package/types/mousetool/paintBrushTool.d.ts +23 -0
  34. package/types/mousetool/polygonTool.d.ts +47 -0
  35. package/types/mousetool/polylineTool.d.ts +47 -0
  36. package/types/mousetool/rectangleTool.d.ts +28 -0
  37. package/types/overlay/circle.d.ts +67 -0
  38. package/types/overlay/cloudMarkerCollection.d.ts +50 -0
  39. package/types/overlay/contextMenu.d.ts +75 -0
  40. package/types/overlay/icon.d.ts +33 -0
  41. package/types/overlay/index.d.ts +13 -0
  42. package/types/overlay/infowindow.d.ts +59 -0
  43. package/types/overlay/label.d.ts +53 -0
  44. package/types/overlay/marker.d.ts +50 -0
  45. package/types/overlay/markerClusterer.d.ts +103 -0
  46. package/types/overlay/overlay.d.ts +109 -0
  47. package/types/overlay/polygon.d.ts +59 -0
  48. package/types/overlay/polyline.d.ts +47 -0
  49. package/types/overlay/rectangle.d.ts +57 -0
  50. package/types/overlay/svg.d.ts +19 -0
  51. package/types/service/administrativeDivision.d.ts +48 -0
  52. package/types/service/busLineSearch.d.ts +89 -0
  53. package/types/service/dataSources.d.ts +30 -0
  54. package/types/service/drivingRoute.d.ts +135 -0
  55. package/types/service/geocoder.d.ts +47 -0
  56. package/types/service/geolocation.d.ts +39 -0
  57. package/types/service/index.d.ts +9 -0
  58. package/types/service/localCity.d.ts +24 -0
  59. package/types/service/localSearch.d.ts +178 -0
  60. package/types/service/transitRoute.d.ts +132 -0
@@ -0,0 +1,47 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class PolylineTool extends Mousetool<PolylineToolEvents> {
6
+ /** 折线工具,可以通过事件来获取用户绘制的折线,包含测距功能 */
7
+ constructor(map: Map, opts?: PolylineToolOptions);
8
+ /**
9
+ * 跟随鼠标移动的说明文字
10
+ * @param text 文字内容
11
+ */
12
+ setTips(text: string): void;
13
+ /**
14
+ * 计算一系列地理坐标点的距离总和
15
+ * @param points 点坐标LngLat数组
16
+ */
17
+ getDistance(points: LngLat[]): number;
18
+ /** 获取所有编辑完成的线 */
19
+ getPolylines(): Polyline[];
20
+ /** 完成一个折线的绘制,运行此方法相当于用户点击双击结束当前折线的绘制 */
21
+ endDraw(): void;
22
+ }
23
+
24
+ interface PolylineToolOptions extends PolylineOptions {
25
+ /** 是否显示距离,如果不显示距离,则可以作为画线控件使用。default:false */
26
+ showLabel?: boolean;
27
+ }
28
+
29
+ interface PolylineToolEvents {
30
+ /** 用户双击完成一次折线绘制时触发事件 */
31
+ draw(e: PolylineToolEvent): void;
32
+ /** 用户在多边形绘制过程中,每次点击底图添加节点时触发事件 */
33
+ addpoint(e: PolylineToolEvent): void;
34
+ }
35
+
36
+ interface PolylineToolEvent extends ToolEvent<Polyline> {
37
+ /** 用户当前绘制的折线的点坐标数组 */
38
+ currentLnglats: LngLat[];
39
+ /** 用户当前绘制的折线的地理长度 */
40
+ currentDistance: number;
41
+ /** 当前测距所画线的对象 */
42
+ currentPolyline: Polyline;
43
+ /** 返回所有工具绘制的线对象 */
44
+ allPolylines: Polyline[];
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,28 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class RectangleTool extends Mousetool<RectangleToolEvents> {
6
+ /** 矩形工具,用来实现在地图上选择一个矩形区域或绘制矩形的功能 */
7
+ constructor(map: Map, opts?: RectangleToolOptions);
8
+ /** 返回工具所有绘制的矩形 */
9
+ getRectangles(): Rectangle[];
10
+ }
11
+
12
+ type RectangleToolOptions = RectangleOptions;
13
+
14
+ interface RectangleToolEvents {
15
+ /** 用户每次完成拉框操作时触发事件 */
16
+ draw(e: RectangleToolEvent): void;
17
+ }
18
+
19
+ interface RectangleToolEvent extends ToolEvent<Rectangle> {
20
+ /** 用户拉框选择的地理范围 */
21
+ currentBounds: LngLat;
22
+ /** 用户绘制的矩形图形对象 */
23
+ currentRectangle: Rectangle;
24
+ /** 所有绘制的矩形对象 */
25
+ allRectangles: Rectangle[];
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,67 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class Circle extends OverlayBase<CircleEvents> {
6
+ /**
7
+ * 创建圆覆盖物
8
+ * @param center 圆心经纬度坐标
9
+ * @param radius 圆的半径,以米点单位
10
+ */
11
+ constructor(center: LngLat, radius: number, opts?: CircleOptions);
12
+ /** 设置圆的中心点。 */
13
+ setCenter(lnglat: LngLat): void;
14
+ /** 返回圆的中心点。 */
15
+ getCenter(): LngLat;
16
+ /** 设置圆的半径。 */
17
+ setRadius(radius: number): void;
18
+ /** 返回圆的半径。 */
19
+ getRadius(): number;
20
+ /** 返回圆的地理区域范围 */
21
+ getBounds(): LngLatBounds;
22
+ /** 设置圆边线的颜色 */
23
+ setColor(color: string): void;
24
+ /** 返回圆边线的颜色 */
25
+ getColor(): string;
26
+ /** 设置圆边线的宽度 */
27
+ setWeight(weight: number): void;
28
+ /** 返回圆边线的宽度 */
29
+ getWeight(): number;
30
+ /** 设置圆边线是为实线或虚线 */
31
+ setLineStyle(style: PolylineOptions["lineStyle"]): void;
32
+ /** 返回当前圆边线样式状态,实线或者虚线 */
33
+ getLineStyle(): string;
34
+ /** 设置圆的填充颜色,参数为合法的CSS颜色值。当参数为空字符串时,圆覆盖物填充颜色与边线颜色相同 */
35
+ setFillColor(color: string): void;
36
+ /** 返回圆的填充颜色 */
37
+ getFillColor(): string;
38
+ /** 设置圆的填充透明度。当参数为0时,圆覆盖物将没有填充效果 */
39
+ setFillOpacity(opacity: number): void;
40
+ /** 返回圆的填充透明度 */
41
+ getFillOpacity(): number;
42
+ /** 启用圆编辑功能 */
43
+ enableEdit(): void;
44
+ /** 禁用圆编辑功能 */
45
+ disableEdit(): void;
46
+ /** 是否启用圆编辑功能,true表示启用,false表示禁止 */
47
+ isEditable(): boolean;
48
+ }
49
+
50
+ interface CircleOptions {
51
+ /** 圆边线颜色。default:"#0000FF" */
52
+ color?: string;
53
+ /** 圆边线的宽度,以像素为单位。default:3 */
54
+ weight?: number;
55
+ /** 圆边线的透明度(范围0-1 之间)。default:0.5 */
56
+ opacity?: number;
57
+ /** 圆填充颜色。当参数为空时,圆覆盖物将没有填充效果。default:"#0000FF" */
58
+ fillColor?: string;
59
+ /** 圆填充的透明度(范围0-1 之间)。default:0.2 */
60
+ fillOpacity?: number;
61
+ /** 圆边线的样式(solid或dashed)。default:"solid" */
62
+ lineStyle?: "solid" | "dashed";
63
+ }
64
+
65
+ type CircleEvents = OverlayEvents<Circle, LngLat>;
66
+ }
67
+ }
@@ -0,0 +1,50 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class CloudMarkerCollection extends OverlayBase<CloudMarkerCollectionEvents> {
6
+ constructor(lnglats: LngLat[], opts: CloudMarkerCollectionOptions);
7
+ setLnglats(lnglats: LngLat[]): void;
8
+ setStyles(styles: CloudMarkerCollectionOptions): void;
9
+ clear(): void;
10
+ }
11
+
12
+ interface CloudMarkerCollectionOptions {
13
+ /**
14
+ * 海量点的预设形状。
15
+ * CIRCLE 圆形(默认);
16
+ * STAR 星形;
17
+ * SQUARE 方形;
18
+ * RHOMBUS 菱形;
19
+ * WATERDROP 滴状
20
+ */
21
+ ShapeType?: "CIRCLE" | "RHOMBUS" | "SQUARE" | "STAR" | "WATERDROP";
22
+ /**
23
+ * 海量点的预设尺寸。
24
+ * TINY 超小,宽高为2px * 2px;
25
+ * SMALLER 很小,宽高为4px * 4px;
26
+ * SMALL 小,宽高为8px * 8px;
27
+ * NORMAL 正常,宽高为10px * 10px(默认);
28
+ * BIG 大,宽高为16px * 16px;
29
+ * BIGGER 很大,宽高为20px * 20px;
30
+ * HUGE 超大,宽高为30px * 30px
31
+ */
32
+ SizeType?: "TINY" | "SMALLER" | "SMALL" | "NORMAL" | "HUGE" | "BIGGER" | "BIG";
33
+ /**
34
+ * 海量点的颜色,默认为'#fa937e'。
35
+ * 同时支持颜色字符串,如'red';
36
+ * 哈希字符串'#000000';
37
+ * rgb字符串,如'rgb(0,0,0)’;
38
+ * rgba字符串,如'rgb(255,0,0,0.1)';
39
+ * hsl字符串,如'hsl(0,100%,50%)';
40
+ * hsla字符串,如'hsla(0,100%,50%,0.4)'
41
+ */
42
+ color?: string;
43
+ }
44
+
45
+ type CloudMarkerCollectionEvents = Pick<
46
+ OverlayEvents<CloudMarkerCollection, LngLat, Overlay>,
47
+ "click" | "mouseover" | "mouseout"
48
+ >;
49
+ }
50
+ }
@@ -0,0 +1,75 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ interface ContextMenuOptions {
6
+ /** 菜单宽度(像素) */
7
+ width?: number;
8
+ }
9
+
10
+ /**
11
+ * 右键菜单
12
+ */
13
+ class ContextMenu {
14
+ /**
15
+ * 创建一个右键菜单实例。
16
+ * SDK 实现不判空:无参调用会在内部读 options.width 报错,
17
+ * 调用时至少传入一个 options 对象。
18
+ */
19
+ constructor(options?: ContextMenuOptions);
20
+ /** 添加菜单项 */
21
+ addItem(item: MenuItem): void;
22
+ /** 返回指定索引位置的菜单项,第一个菜单项的索引为 0 */
23
+ getItem(index: number): MenuItem;
24
+ /** 移除菜单项 */
25
+ removeItem(item: MenuItem): void;
26
+ /** 添加分隔符 */
27
+ addSeparator(): void;
28
+ /** 移除指定索引位置的分隔符,第一个分隔符的索引为 0 */
29
+ removeSeparator(index: number): void;
30
+ /** 返回所有菜单项 */
31
+ getItems(): MenuItem[];
32
+ /** 返回所有分割线 */
33
+ getAllSeparator(): unknown[];
34
+ /** 添加事件监听函数 */
35
+ addEventListener<E extends keyof ContextMenuEvents>(
36
+ event: E,
37
+ handler: ContextMenuEvents[E],
38
+ ): void;
39
+ /** 移除事件监听函数 */
40
+ removeEventListener<E extends keyof ContextMenuEvents>(
41
+ event: E,
42
+ handler: ContextMenuEvents[E],
43
+ ): void;
44
+ }
45
+
46
+ /**
47
+ * 右键菜单项。菜单项被点击时,以菜单弹出时的地理坐标点为参数调用回调函数
48
+ */
49
+ class MenuItem {
50
+ constructor(text: string, callback: (lnglat: LngLat) => void);
51
+ /** 设置菜单项显示的文本 */
52
+ setText(text: string): void;
53
+ /** 启用菜单项 */
54
+ enable(): void;
55
+ /** 禁用菜单项 */
56
+ disable(): void;
57
+ }
58
+
59
+ interface ContextMenuEvent {
60
+ /** 事件类型 */
61
+ type: string;
62
+ /** 菜单对象 */
63
+ target: ContextMenu;
64
+ /** 菜单开启时的像素坐标点 */
65
+ point: Point;
66
+ }
67
+
68
+ interface ContextMenuEvents {
69
+ /** 右键菜单打开时触发 */
70
+ open(e: ContextMenuEvent): void;
71
+ /** 右键菜单关闭时触发 */
72
+ close(e: Pick<ContextMenuEvent, "type" | "target">): void;
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,33 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class Icon {
6
+ /** 以给定的图像地址和大小创建图标对象实例 */
7
+ constructor(opts: IconOptions);
8
+ /** 设置图片资源的地址 */
9
+ setIconUrl(iconUrl: string): void;
10
+ /** 获取图标使用的图片URL */
11
+ getIconUrl(): string;
12
+ /** 设置图标可视区域的大小 */
13
+ setIconSize(size: Point): void;
14
+ /** 获取图标可视区域的大小 */
15
+ getIconSize(): Point;
16
+ /** 设置相对于图片左上角的像素距离 */
17
+ setIconAnchor(anchor: Point): void;
18
+ /** 获取相对于图片左上角的像素距离 */
19
+ getIconAnchor(): Point;
20
+
21
+ static Default(): Icon;
22
+ }
23
+
24
+ interface IconOptions {
25
+ /** 请求图标图片的URL(绝对或相对路径) */
26
+ iconUrl?: string;
27
+ /** 图标可视区域的大小。default:Point(25, 41) */
28
+ iconSize?: Point;
29
+ /** 图标的定位锚点。此点用来决定图标与地理位置的关系,是相对于图标左上角的偏移值,默认等于图标宽度和高度的中间值。default:Point(12, 41) */
30
+ iconAnchor?: Point;
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,13 @@
1
+ import "./circle";
2
+ import "./cloudMarkerCollection";
3
+ import "./contextMenu";
4
+ import "./icon";
5
+ import "./infowindow";
6
+ import "./label";
7
+ import "./marker";
8
+ import "./markerClusterer";
9
+ import "./overlay";
10
+ import "./polygon";
11
+ import "./polyline";
12
+ import "./rectangle";
13
+ import "./svg";
@@ -0,0 +1,59 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class InfoWindow extends OverlayBase<InfoWindowEvents> {
6
+ /** 创建一个信息窗实例 */
7
+ constructor(content: string | HTMLElement, opts?: InfoWindowOptions);
8
+ /** 关闭信息浮窗 */
9
+ closeInfoWindow(): void;
10
+ /** 设置或改变信息浮窗所指向的地理位置坐标 */
11
+ setLngLat(lnglat: LngLat): void;
12
+ /** 返回信息浮窗所指向的地理位置坐标 */
13
+ getLngLat(): LngLat;
14
+ /** 返回信息窗口的打开状态 */
15
+ isOpen(): boolean;
16
+ /** 设置信息浮窗的显示 HTML 内容 */
17
+ setContent(content: string | HTMLElement): void;
18
+ /** 返回信息浮窗的显示 HTML 内容 */
19
+ getContent(): string | HTMLElement;
20
+ /** 重绘信息窗口,当信息窗口内容发生变化时进行调用 */
21
+ /** 设置信息浮窗显示时向右下角偏移量(像素) */
22
+ setOffset(offset: Point): void;
23
+ /** 返回信息浮窗显示时向右下角偏移量 */
24
+ getOffset(): Point;
25
+ /** 重绘信息窗口,当信息窗口内容发生变化时进行调用 */
26
+ update(): void;
27
+ }
28
+
29
+ interface InfoWindowOptions {
30
+ /** 弹出框的最小宽度。default:50 */
31
+ minWidth?: number;
32
+ /** 弹出框的最大宽度。default:300 */
33
+ maxWidth?: number;
34
+ /** 设置后,如果内容超过弹出窗口的给定高度则产生一个可以滚动的容器 */
35
+ maxHeight?: number;
36
+ /** 是否开启信息窗口打开时地图自动移动(默认关闭)。default:false */
37
+ autoPan?: boolean;
38
+ /** 控制弹出窗口中出现的关闭按钮。default:true */
39
+ closeButton?: boolean;
40
+ /** 弹出窗口位置的补偿值。在同一图层中打开弹出窗口时对于控制锚点比较有用。default:Point(0,7) */
41
+ offset?: Point;
42
+ /** 在地图视图自动平移产生后弹出窗口和地图视图之间的边缘。default:Point(5,5) */
43
+ autoPanPadding?: Point;
44
+ /** 是否开启点击地图关闭信息窗口(默认关闭)。default:false */
45
+ closeOnClick?: boolean;
46
+ }
47
+
48
+ interface InfoWindowEvents {
49
+ /** 信息窗口被关闭时触发此事件 */
50
+ close(e: Pick<InfoWindowEvent, "type" | "target" | "lnglat">): void;
51
+ /** 信息窗口被打开时触发此事件 */
52
+ open(e: Pick<InfoWindowEvent, "type" | "target" | "lnglat">): void;
53
+ /** 点击信息窗口的关闭按钮时触发此事件 */
54
+ clickclose(e: Pick<InfoWindowEvent, "type" | "target">): void;
55
+ }
56
+
57
+ type InfoWindowEvent = OverlayEvent<InfoWindow, LngLat>;
58
+ }
59
+ }
@@ -0,0 +1,53 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class Label extends OverlayBase<LabelEvents> {
6
+ /** 根据给定参数对象创建文本标注 */
7
+ constructor(opts: LabelOptions);
8
+ /** 设置文本所在的地理位置坐标 */
9
+ setLngLat(lnglat: LngLat): void;
10
+ /** 返回文本所在的地理位置坐标 */
11
+ getLngLat(): LngLat;
12
+ /** 设置文本的内容 */
13
+ setLabel(content: string): void;
14
+ /** 返回文本的内容 */
15
+ getLabel(): string;
16
+ /** 设置文本的提示内容 */
17
+ setTitle(title: string): void;
18
+ /** 返回文本的提示内容 */
19
+ getTitle(): string;
20
+ /** 设置文本的文本内容字体大小 */
21
+ setFontSize(size: number): void;
22
+ /** 返回文本内容字体大小 */
23
+ getFontSize(): number;
24
+ /** 设置文本的文本的字体颜色 */
25
+ setFontColor(color: string): void;
26
+ /** 返回文本的字体颜色 */
27
+ getFontColor(): string;
28
+ /** 设置文本的背景色 */
29
+ setBackgroundColor(color: string): void;
30
+ /** 返回文本的背景色*/
31
+ getBackgroundColor(): string;
32
+ /** 设置文本的边框线宽 */
33
+ setBorderLine(width: number): void;
34
+ /** 返回文本的边框线宽 */
35
+ getBorderLine(): number;
36
+ /** 设置文本的边框颜色 */
37
+ setBorderColor(color: string): void;
38
+ /** 返回文本的边框颜色 */
39
+ getBorderColor(): string;
40
+ }
41
+
42
+ interface LabelOptions {
43
+ /** 文本标注的内容 */
44
+ text?: string;
45
+ /** 文本标注的位置偏移值。default:Point(0,0) */
46
+ offset?: Point;
47
+ /** 文本标注的地理位置。default:LngLat(0,0) */
48
+ position?: LngLat;
49
+ }
50
+
51
+ type LabelEvents = OverlayEvents<Label, LngLat>;
52
+ }
53
+ }
@@ -0,0 +1,50 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class Marker extends OverlayBase<MarkerEvents> {
6
+ /** 创建一个图像标注实例。lnglat参数指定了图像标注所在的地理位置 */
7
+ constructor(lnglat: LngLat, opts?: MarkerOptions);
8
+ /** 设置标注所在的地理位置坐标 */
9
+ setLngLat(lnglat: LngLat): void;
10
+ /** 返回标注所在的地理位置坐标 */
11
+ getLngLat(): LngLat;
12
+ /** 设置标注所用的图标对象 */
13
+ setIcon(icon: Icon): void;
14
+ /** 返回标记显示时所使用的图标对象 */
15
+ getIcon(): Icon;
16
+ /** 设置z-index */
17
+ setZIndexOffset(num: number): void;
18
+ /** 开启标注拖拽功能 */
19
+ enableDragging(): void;
20
+ /** 关闭标注拖拽功能 */
21
+ disableDragging(): void;
22
+ }
23
+
24
+ interface MarkerOptions {
25
+ /** 图标类用来表达注记。default:T.Icon.Default() */
26
+ icon?: Icon;
27
+ /** 决定注记是否可被鼠标或触摸拖动。default:false */
28
+ draggable?: boolean;
29
+ /** 默认情况下,注记图片的叠置顺序由纬度自动设置。如果你想将某一注记放置于其他之上可用这个选项,设置一个较大的值即可,比如1000(或是相反地设置一个较大的负值) */
30
+ title?: string;
31
+ /** 设置z-index。default:0 */
32
+ zIndexOffset?: number;
33
+ /** 设置透明度。default:1.0 */
34
+ opacity?: number;
35
+ /** 设置其他参数。 */
36
+ [index: string]: any;
37
+ }
38
+
39
+ interface MarkerEvents extends OverlayEvents<Marker, LngLat> {
40
+ dragstart(e: Pick<MarkerEvent, "type" | "target">): void;
41
+ drag(e: Pick<MarkerEvent, "type" | "target" | "lnglat">): void;
42
+ dragend(e: Pick<MarkerEvent, "type" | "target" | "lnglat">): void;
43
+ }
44
+
45
+ /** @deprecated 拼写笔误,请使用 {@linkcode MarkerEvents} */
46
+ type MakerEvents = MarkerEvents;
47
+
48
+ type MarkerEvent = OverlayEvent<Marker, LngLat>;
49
+ }
50
+ }
@@ -0,0 +1,103 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace T {
5
+ class MarkerClusterer extends OverlayBase<MarkerClustererEvents> {
6
+ /** 创建一个点聚合组件 */
7
+ constructor(map: Map, opts: MarkerClustererOptions);
8
+ /** 添加一个聚合的标记 */
9
+ addMarker(marker: Marker): void;
10
+ /** 添加要聚合的标记数组 */
11
+ addMarkers(markers: Marker[]): void;
12
+ /** 获取聚合的总数量 */
13
+ getClustersCount(): number;
14
+ /** 从地图上彻底清除所有的标记 */
15
+ clearMarkers(): number;
16
+ /** 获取网格大小 */
17
+ getGridSize(): number;
18
+ /** 获取所有的标记数组 */
19
+ getMarkers(): Marker[];
20
+ /** 获取聚合的最大缩放级别 */
21
+ getMaxZoom(): number;
22
+ /** 获取单个聚合的最小数量 */
23
+ getMinClusterSize(): number;
24
+ /** 获取聚合的样式风格集合 */
25
+ getStyles(): MarkerClustererStyle[];
26
+ /** 删除单个标记 */
27
+ removeMarker(marker: Marker): boolean;
28
+ /** 删除一组标记 */
29
+ removeMarkers(markers: Marker[]): boolean;
30
+ /** 设置网格大小 */
31
+ setGridSize(gridSize: number): void;
32
+ /** 设置聚合的最大缩放级别 */
33
+ setMaxZoom(maxZoom: number): void;
34
+ /** 设置聚合的样式风格集合 */
35
+ setStyles(styles: MarkerClustererStyle[]): void;
36
+ }
37
+
38
+ interface MarkerClustererOptions {
39
+ /** 要聚合的标注点数组 */
40
+ markers?: Marker[];
41
+ /** 聚合计算时网格的像素大小,默认60 */
42
+ girdSize?: number;
43
+ /** 最大的聚合级别,大于该级别就不进行聚合 */
44
+ maxZoom?: number;
45
+ /** 自定义聚合后的图标风格 */
46
+ styles?: MarkerClustererStyle[];
47
+ }
48
+
49
+ interface MarkerClustererEvents extends OverlayEvents<MarkerClusterer, LngLat, Marker> {
50
+ dragstart(e: Pick<MarkerClustererEvent, "type" | "target" | "layer">): void;
51
+ drag(e: Pick<MarkerClustererEvent, "type" | "target" | "lnglat" | "layer">): void;
52
+ dragend(e: Pick<MarkerClustererEvent, "type" | "target" | "lnglat" | "layer">): void;
53
+ clusterclick(e: MarkerClustererEvent): void;
54
+ }
55
+
56
+ type MarkerClustererEvent = OverlayEvent<MarkerClusterer, LngLat, Marker>;
57
+
58
+ /**
59
+ * ```
60
+ * [
61
+ * {
62
+ * url: "http://api.tianditu.gov.cn/img/map/cluster/heart30.png",
63
+ * size: [30, 26], //图片大小
64
+ * offset: new T.Point(-15, -13), //显示图片的偏移量
65
+ * textColor: "#000000", //显示数字的颜色
66
+ * textSize: 8, //显示文字的大小
67
+ * range: [0, 50]
68
+ * },
69
+ * {
70
+ * url: "http://api.tianditu.gov.cn/img/map/cluster/heart40.png",
71
+ * size: [42, 36],
72
+ * offset: new T.Point(-20, -17),
73
+ * textColor: "#ff0000",
74
+ * textSize: 10,
75
+ * range: [50, 400]
76
+ * },
77
+ * {
78
+ * url: "http://api.tianditu.gov.cn/img/map/cluster/heart50.png",
79
+ * size: [52, 46],
80
+ * soffset: new T.Point(-10, -22),
81
+ * textColor: "white",
82
+ * textSize: 12,
83
+ * range: [400, 500]
84
+ * }
85
+ * ];
86
+ * ```
87
+ */
88
+ interface MarkerClustererStyle {
89
+ /** 图片地址 */
90
+ url?: string;
91
+ /** 图片大小 */
92
+ size?: number[];
93
+ /** 显示图片的偏移量 */
94
+ offset?: Point;
95
+ /** 显示数字的颜色 */
96
+ textColor?: string;
97
+ /** 显示文字的大小 */
98
+ textSize?: number;
99
+ /** 显示图片的数字范围 */
100
+ range?: number[];
101
+ }
102
+ }
103
+ }