-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
145 lines (113 loc) · 3.26 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
export declare interface IShapeStyle {
fillColor?: string // 多边形填充颜色
strokeWidth?: number // 线条宽度
strokeColor?: string // 线条颜色
opacity?: number
fillImage?:IFillImage
[other: string]: any
}
export declare interface IFillImage {
imgData?: CanvasImageSource
height?:number
width?:number
}
export declare interface IRenderContext{
ctx?: CanvasRenderingContext2D |OffscreenCanvasRenderingContext2D
event?: MapEvent
retina?: boolean
canvas?: HTMLCanvasElement |OffscreenCanvas
mapBounds?: [any, any]
callByMap?: boolean
fullRender?:boolean
zoomLevel?:number
offScreen?:boolean
}
export declare interface ITile{
key:string
x?:number
y?:number
resolution?:number
data?:ImageBitmap
bounds?:Bounds
}
export declare interface IPromiseCallback{
resolve:Function
reject:Function
}
export declare type LngLat = [number, number]
export declare type Pixel = {x:number,y:number}
export declare type Bounds = [LngLat, LngLat]
export declare class MapEvent extends MouseEvent {
extData:any
pos:LngLat
mapElement:MapElement
static create(mouseEv: MouseEvent, extData?:any) : MapEvent
}
export declare type EventType = 'click' | 'hover' | 'dblclick' | 'mousemove' |'unmousemove'
export declare type ElementType = 'layer'|'circle'|'line'|'marker'|'polygon'|'shape'|'groupmarker'
export declare class MapElement {
id:string
name?:string
parent?:MapElement
type: ElementType
style:IShapeStyle
view:MapView
dataset?:any
bounds:Bounds
render(rctx?:IRenderContext): Promise<ImageBitmap|void>
contain(pos:LngLat):boolean
addChildren(el:MapElement)
clear(repaint?:boolean)
setZIndex(zIndex:number)
getZIndex()
eachChildren(cb:(item:MapElement)=>boolean|void)
on(eventName:EventType, handler:(el:MapEvent)=>any)
off(eventName:EventType, handler?:(el:MapEvent)=>any)
trigger(eventName:EventType, ev:MapEvent)
}
export declare class MapView extends MapElement {
map:AMap.Map
constructor(el?:HTMLElement,config?:any)
init(el:HTMLElement, config:any)
pixelToLngLat(x:number,y:number):LngLat
lnglatToPixel(lnglat: LngLat)
}
export declare class Layer extends MapElement {
}
export declare class Polygon extends MapElement {
path: LngLat[]
constructor(path: LngLat[], style?: IShapeStyle)
}
export declare class Circle extends MapElement {
center: LngLat
radius: number
constructor(center: LngLat, radius: number, style?: IShapeStyle)
}
export declare class PolyLine extends MapElement {
path: LngLat[]
constructor(path: LngLat[], style?: IShapeStyle)
}
export declare class Marker extends MapElement {
constructor(location: LngLat, style?: IShapeStyle)
position:LngLat
scale?:(zoom:number)=>number
}
export declare interface IRenderer {
renderCircle
}
declare class GroupMarker extends Marker {
constructor(marker:Marker)
markers:Marker[]
offset:Pixel
numOffset:Pixel
textStyle:{
fontSize:number
color:string
}
}
export declare class MarkerLayer extends Layer{
groupThreshold:number
canMerge?:(m1:Marker, m2:Marker, zoom:number)=>boolean
beforeRender:(gm:GroupMarker)=>any
addChildren(el:Marker)
}