1 | import { ComponentType } from 'react'
|
2 | import { StandardProps, CommonEventFunction } from './common'
|
3 | interface MapProps extends StandardProps {
|
4 | /** 中心经度
|
5 | * @supported weapp, alipay, swan, tt, qq, jd
|
6 | */
|
7 | longitude: number
|
8 | /** 中心纬度
|
9 | * @supported weapp, alipay, swan, tt, qq, jd
|
10 | */
|
11 | latitude: number
|
12 | /** 缩放级别,取值范围为 3-20
|
13 | * @default 16
|
14 | * @supported weapp, alipay, swan, tt, qq, jd
|
15 | * @swan 取值范围为4-21
|
16 | * @alipay 取值范围为5-18
|
17 | */
|
18 | scale?: number
|
19 | /** 最小缩放级别 3-20
|
20 | * @default 3
|
21 | * @supported weapp, tt
|
22 | */
|
23 | minScale?: number
|
24 | /** 最大缩放级别 3-20
|
25 | * @default 20
|
26 | * @supported weapp, tt
|
27 | */
|
28 | maxScale?: number
|
29 | /** 标记点
|
30 | * @supported weapp, alipay, swan, tt, qq, jd
|
31 | */
|
32 | markers?: MapProps.marker[]
|
33 | /** **即将移除,请使用 markers**
|
34 | * @supported weapp
|
35 | * @deprecated
|
36 | */
|
37 | covers?: any[]
|
38 | /** 路线
|
39 | * @supported weapp, alipay, swan, tt, qq, jd
|
40 | */
|
41 | polyline?: MapProps.polyline[]
|
42 | /** 圆
|
43 | * @supported weapp, alipay, swan, tt, qq, jd
|
44 | */
|
45 | circles?: MapProps.circle[]
|
46 | /** 控件(即将废弃,建议使用 cover-view 代替)
|
47 | * @deprecated
|
48 | * @supported weapp, alipay, swan, jd
|
49 | */
|
50 | controls?: MapProps.control[]
|
51 | /** 缩放视野以包含所有给定的坐标点
|
52 | * @supported weapp, alipay, swan, tt, qq, jd
|
53 | */
|
54 | includePoints?: MapProps.point[]
|
55 | /** 显示带有方向的当前定位点
|
56 | * @default false
|
57 | * @supported weapp, alipay, swan, tt, qq, jd
|
58 | */
|
59 | showLocation?: boolean
|
60 | /** 多边形
|
61 | * @supported weapp, swan, tt, qq
|
62 | */
|
63 | polygons?: MapProps.polygon[]
|
64 | /** 个性化地图使用的 key
|
65 | * @supported weapp, qq
|
66 | */
|
67 | subkey?: string
|
68 | /** 个性化地图配置的 style,不支持动态修改
|
69 | * @default 1
|
70 | * @supported weapp, qq
|
71 | */
|
72 | layerStyle?: number
|
73 | /** 旋转角度,范围 0 ~ 360, 地图正北和设备 y 轴角度的夹角
|
74 | * @default 0
|
75 | * @supported weapp, alipay, tt, qq
|
76 | */
|
77 | rotate?: number
|
78 | /** 倾斜角度,范围 0 ~ 40 , 关于 z 轴的倾角
|
79 | * @default 0
|
80 | * @supported weapp, alipay, tt, qq
|
81 | */
|
82 | skew?: number
|
83 | /** 显示指南针
|
84 | * @default false
|
85 | * @supported weapp, alipay, swan, tt, qq
|
86 | */
|
87 | showCompass?: boolean
|
88 | /** 显示比例尺
|
89 | * @default false
|
90 | * @supported weapp, alipay, tt, qq
|
91 | */
|
92 | showScale?: boolean
|
93 | /** 开启俯视
|
94 | * @default false
|
95 | * @supported weapp, alipay, swan, tt, qq
|
96 | */
|
97 | enableOverlooking?: boolean
|
98 | /** 是否支持缩放
|
99 | * @default true
|
100 | * @supported weapp, alipay, swan, tt, qq
|
101 | */
|
102 | enableZoom?: boolean
|
103 | /** 是否支持拖动
|
104 | * @default true
|
105 | * @supported weapp, alipay, swan, tt, qq
|
106 | */
|
107 | enableScroll?: boolean
|
108 | /** 是否支持旋转
|
109 | * @default false
|
110 | * @supported weapp, alipay, swan, tt, qq
|
111 | */
|
112 | enableRotate?: boolean
|
113 | /** 是否开启卫星图
|
114 | * @default false
|
115 | * @supported weapp, alipay, tt, qq
|
116 | */
|
117 | enableSatellite?: boolean
|
118 | /** 是否开启实时路况
|
119 | * @default false
|
120 | * @supported weapp, alipay, tt, qq
|
121 | */
|
122 | enableTraffic?: boolean
|
123 | /** 配置项
|
124 | *
|
125 | * 提供 setting 对象统一设置地图配置。同时对于一些动画属性如 rotate 和 skew,通过 setData 分开设置时无法同时生效,需通过 settting 统一修改。
|
126 | * @supported weapp, alipay, qq
|
127 | */
|
128 | setting?:
|
129 | | MapProps
|
130 | | {
|
131 | [key: string]: number | string | any
|
132 | }
|
133 | /** 视野在地图 padding 范围内展示
|
134 | * @supported alipay
|
135 | */
|
136 | includePadding?: { [key in 'left' | 'right' | 'top' | 'bottom']: number | string }
|
137 | /** 覆盖物,自定义贴图
|
138 | * @supported alipay
|
139 | */
|
140 | groundOverlays?: MapProps.groundOverlays[]
|
141 | /** 覆盖物,网格贴图
|
142 | * @supported alipay
|
143 | */
|
144 | tileOverlay?: MapProps.tileOverlay
|
145 | /** 是否展示 POI 点
|
146 | * @supported weapp, alipay, tt
|
147 | * @default true
|
148 | */
|
149 | enablePoi?: boolean
|
150 | /** 是否展示建筑物
|
151 | * @supported weapp, alipay, tt
|
152 | * @default true
|
153 | */
|
154 | enableBuilding?: boolean
|
155 | /** 覆盖物,多边形。
|
156 | * @supported alipay
|
157 | */
|
158 | polygon?: MapProps.polygon[]
|
159 | /** 设置地图样式。
|
160 | *
|
161 | * default:默认样式
|
162 | * light:精简样式
|
163 | * @supported alipay
|
164 | */
|
165 | customMapStyle?: string
|
166 | /** 基于 map 高级定制渲染,设置覆盖在地图上的 view。
|
167 | * @supported alipay
|
168 | */
|
169 | panels?: MapProps.panels[]
|
170 | /** 否
|
171 | * @supported jd
|
172 | */
|
173 | theme?: string
|
174 | /** 保持缩放比例不变
|
175 | * @supported alipay
|
176 | * @default false
|
177 | */
|
178 | optimize?: boolean
|
179 | /** 开启最大俯视角,俯视角度从 45 度拓展到 75 度
|
180 | * @supported weapp
|
181 | * @default false
|
182 | */
|
183 | enableAutoMaxOverlooking?: boolean
|
184 | /** 展示3D楼块
|
185 | * @supported weapp, swan, tt, qq
|
186 | * @default false
|
187 | */
|
188 | enable3D?: boolean
|
189 | /** 点击地图时触发
|
190 | * @supported weapp, alipay, swan, tt, qq, jd
|
191 | */
|
192 | onTap?: CommonEventFunction
|
193 | /** 点击标记点时触发,e.detail = {markerId}
|
194 | * @supported weapp, alipay, swan, tt, qq, jd
|
195 | */
|
196 | onMarkerTap?: CommonEventFunction<MapProps.onMarkerTapEventDetail>
|
197 | /** 点击label时触发,e.detail = {markerId}
|
198 | * @supported weapp, tt
|
199 | */
|
200 | onLabelTap?: CommonEventFunction<MapProps.onLabelTapEventDetail>
|
201 | /** 点击控件时触发,e.detail = {controlId}
|
202 | * @supported weapp, alipay, swan, jd
|
203 | */
|
204 | onControlTap?: CommonEventFunction<MapProps.onControlTapEventDetail>
|
205 | /** 点击标记点对应的气泡时触发,e.detail = {markerId}
|
206 | * @supported alipay
|
207 | */
|
208 | onCalloutTap?: CommonEventFunction<MapProps.onCalloutTapEventDetail>
|
209 | /** 在地图渲染更新完成时触发
|
210 | * @supported weapp, swan, tt, qq
|
211 | */
|
212 | onUpdated?: CommonEventFunction
|
213 | /** 视野发生变化时触发
|
214 | * @supported weapp, alipay, swan, tt, qq, jd
|
215 | */
|
216 | onRegionChange?: CommonEventFunction<MapProps.onRegionEventDetail<'begin'> | MapProps.onRegionEventDetail<'end'>>
|
217 | /** 点击地图poi点时触发,e.detail = {name, longitude, latitude}
|
218 | * @supported weapp, swan, qq
|
219 | */
|
220 | onPoiTap?: CommonEventFunction<MapProps.onPoiTapEventDetail>
|
221 | /** 点击地图路线时触发,e.detail = {longitude, latitude}
|
222 | * @supported weapp, swan, qq
|
223 | */
|
224 | onPolylineTap?: CommonEventFunction<MapProps.onPolylineTapEventDetail>
|
225 | /** 地图能力生效时触发,e.detail = {ability, errCode, errMsg}
|
226 | * @supported weapp
|
227 | */
|
228 | onAbilitySuccess?: CommonEventFunction<MapProps.onAbilityEventDetail>
|
229 | /** 地图能力失败时触发,e.detail = {ability, errCode, errMsg}
|
230 | * @supported weapp
|
231 | */
|
232 | onAbilityFailed?: CommonEventFunction<MapProps.onAbilityEventDetail>
|
233 | /** 地图鉴权结果成功时触发,e.detail = {errCode, errMsg}
|
234 | * @supported weapp
|
235 | */
|
236 | onAuthSuccess?: CommonEventFunction<{ errCode: number; errMsg: string }>
|
237 | /** MapContext.moveAlong 插值动画时触发。e.detail = {markerId, longitude, latitude, animationStatus: "interpolating" | "complete"}
|
238 | * @supported weapp
|
239 | */
|
240 | onInterpolatePoint?: CommonEventFunction<MapProps.onInterpolatePointEventDetail>
|
241 | /** 组件错误时触发,例如创建或鉴权失败,e.detail = {longitude, latitude}
|
242 | * @supported weapp
|
243 | */
|
244 | onError: CommonEventFunction<MapProps.point>
|
245 | /** 点击标记点对应的气泡时触发e.detail = {markerId}
|
246 | * @supported weapp, swan, tt, jd
|
247 | */
|
248 | onCallOutTap?: CommonEventFunction<MapProps.onCalloutTapEventDetail>
|
249 | /** 点击定位标时触发,e.detail = {longitude, latitude}
|
250 | * @supported weapp, tt
|
251 | */
|
252 | onAnchorPointTap?: CommonEventFunction<MapProps.point>
|
253 | /** 点击 panel 时触发。
|
254 | * @supported alipay
|
255 | */
|
256 | onPanelTap?: CommonEventFunction<{
|
257 | panelId
|
258 | layoutId
|
259 | }>
|
260 | /** 地图初始化完成即将开始渲染第一帧时触发。
|
261 | * @supported alipay
|
262 | */
|
263 | onInitComplete?: CommonEventFunction
|
264 | }
|
265 | declare namespace MapProps {
|
266 | /** 标记点用于在地图上显示标记的位置 */
|
267 | interface marker {
|
268 | /** 标记点id
|
269 | * @remarks marker 点击事件回调会返回此id。建议为每个 marker 设置上 Number 类型 id,保证更新 marker 时有更好的性能。
|
270 | */
|
271 | id?: number
|
272 | /** 纬度
|
273 | * @remarks 浮点数,范围 -90 ~ 90
|
274 | */
|
275 | latitude: number
|
276 | /** 经度
|
277 | * @remarks 浮点数,范围 -180 ~ 180
|
278 | */
|
279 | longitude: number
|
280 | /** 标注点名
|
281 | * @remarks 点击时显示,callout 存在时将被忽略
|
282 | */
|
283 | title?: string
|
284 | /** 显示层级
|
285 | */
|
286 | zIndex?: number
|
287 | /** 显示的图标
|
288 | * @remarks 项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对小程序根目录;也支持临时路径和网络图片
|
289 | */
|
290 | iconPath: string
|
291 | /** 旋转角度
|
292 | * @remarks 顺时针旋转的角度,范围 0 ~ 360,默认为 0
|
293 | */
|
294 | rotate?: number
|
295 | /** 标注的透明度
|
296 | * @remarks 默认1,无透明,范围 0 ~ 1
|
297 | */
|
298 | alpha?: number
|
299 | /** 标注图标宽度
|
300 | * @remarks 默认为图片实际宽度
|
301 | */
|
302 | width?: number | string
|
303 | /** 标注图标高度
|
304 | * @remarks 默认为图片实际高度
|
305 | */
|
306 | height?: number | string
|
307 | /** 标记点上方的气泡窗口
|
308 | * @remarks 支持的属性见下表,可识别换行符。
|
309 | */
|
310 | callout?: callout
|
311 | /** 自定义气泡窗口
|
312 | * @remarks 支持的属性见下表,可识别换行符。
|
313 | */
|
314 | customCallout?: customCallout
|
315 | /** 为标记点旁边增加标签
|
316 | * @remarks 支持的属性见下表
|
317 | */
|
318 | label?: label
|
319 | /** 经纬度在标注图标的锚点,默认底边中点
|
320 | * @remarks {x, y},x表示横向(0-1),y表示竖向(0-1)。{x: .5, y: 1} 表示底边中点
|
321 | */
|
322 | anchor?: {
|
323 | x: number
|
324 | y: number
|
325 | }
|
326 | /** 无障碍访问,(属性)元素的额外描述 */
|
327 | ariaLabel?: string
|
328 | }
|
329 | /** marker 上的气泡 callout */
|
330 | interface callout {
|
331 | /** 文本 */
|
332 | content: string
|
333 | /** 文本颜色 */
|
334 | color: string
|
335 | /** 文字大小 */
|
336 | fontSize: number
|
337 | /** 横向偏移量,向右为正数 */
|
338 | anchorX: number
|
339 | /** 纵向偏移量,向下为正数 */
|
340 | anchorY: number
|
341 | /** 边框圆角 */
|
342 | borderRadius: number
|
343 | /** 边框宽度 */
|
344 | borderWidth: number
|
345 | /** 边框颜色 */
|
346 | borderColor: string
|
347 | /** 背景色 */
|
348 | bgColor: string
|
349 | /** 文本边缘留白 */
|
350 | padding: number
|
351 | /** 'BYCLICK':点击显示; 'ALWAYS':常显 */
|
352 | display: 'BYCLICK' | 'ALWAYS'
|
353 | /** 文本对齐方式。有效值: left, right, center */
|
354 | textAlign: 'left' | 'right' | 'center'
|
355 | }
|
356 | /** marker 上的自定义气泡 customCallout
|
357 | *
|
358 | * `customCallout` 存在时将忽略 `callout` 与 `title` 属性。自定义气泡采用采用 `cover-view` 定制,灵活度更高。
|
359 | */
|
360 | interface customCallout {
|
361 | /** 'BYCLICK':点击显示; 'ALWAYS':常显 */
|
362 | display: 'BYCLICK' | 'ALWAYS' | string
|
363 | /** 横向偏移量,向右为正数 */
|
364 | anchorX: number
|
365 | /** 纵向偏移量,向下为正数 */
|
366 | anchorY: number
|
367 | }
|
368 | /** marker 上的气泡 label */
|
369 | interface label {
|
370 | /** 文本 */
|
371 | content: string
|
372 | /** 文本颜色 */
|
373 | color: string
|
374 | /** 文字大小 */
|
375 | fontSize: number
|
376 | /** label的坐标,原点是 marker 对应的经纬度 */
|
377 | anchorX: number
|
378 | /** label的坐标,原点是 marker 对应的经纬度 */
|
379 | anchorY: number
|
380 | /** 边框宽度 */
|
381 | borderWidth: number
|
382 | /** 边框颜色 */
|
383 | borderColor: string
|
384 | /** 边框圆角 */
|
385 | borderRadius: number
|
386 | /** 背景色 */
|
387 | bgColor: string
|
388 | /** 文本边缘留白 */
|
389 | padding: number
|
390 | /** 文本对齐方式。有效值: left, right, center */
|
391 | textAlign: 'left' | 'right' | 'center'
|
392 | }
|
393 | /** 指定一系列坐标点,从数组第一项连线至最后一项 */
|
394 | interface polyline {
|
395 | /** 经纬度数组
|
396 | * @remarks [{latitude: 0, longitude: 0}]
|
397 | */
|
398 | points: point[]
|
399 | /** 线的颜色
|
400 | * @remarks 十六进制
|
401 | */
|
402 | color?: string
|
403 | /** 线的宽度 */
|
404 | width?: number
|
405 | /** 是否虚线
|
406 | * @remarks 默认 false
|
407 | */
|
408 | dottedLine?: boolean
|
409 | /** 带箭头的线
|
410 | * @remarks 默认 false,开发者工具暂不支持该属性
|
411 | */
|
412 | arrowLine?: boolean
|
413 | /** 更换箭头图标
|
414 | * @remarks 在 arrowLine 为 true 时生效
|
415 | */
|
416 | arrowIconPath?: string
|
417 | /** 线的边框颜色 */
|
418 | borderColor?: string
|
419 | /** 线的厚度 */
|
420 | borderWidth?: number
|
421 | }
|
422 | /** 指定一系列坐标点,根据 points 坐标数据生成闭合多边形 */
|
423 | interface polygon {
|
424 | /**
|
425 | * 边线虚线
|
426 | * @remarks 默认值 [0, 0] 为实线,[10, 10]表示十个像素的实线和十个像素的空白(如此反复)组成的虚线
|
427 | * @default [0,0]
|
428 | * @supported weapp
|
429 | */
|
430 | dashArray?: number[]
|
431 | /** 经纬度数组
|
432 | * @remarks [{latitude: 0, longitude: 0}]
|
433 | */
|
434 | points: point[]
|
435 | /**
|
436 | * 线的颜色,用 8 位十六进制表示,后两位表示 alpha 值,如:#eeeeeeAA。
|
437 | * @remarks 当前 Android 与 iOS 上此属性默认值存在差异(分别为 transparent 与 #ff0000ff ),建议在代码中统一显式设置。
|
438 | * @supported alipay
|
439 | */
|
440 | color?: string
|
441 | /** 描边的宽度 */
|
442 | strokeWidth?: number
|
443 | /** 描边的颜色
|
444 | * @remarks 十六进制
|
445 | */
|
446 | strokeColor?: string
|
447 | /** 填充颜色
|
448 | * @remarks 十六进制
|
449 | */
|
450 | fillColor?: string
|
451 | /**
|
452 | * 线的宽度
|
453 | * @remarks 当前 Android 与 iOS 上此属性默认值存在差异(分别为 0 与 5),建议在代码中统一显式设置。
|
454 | * @supported alipay
|
455 | */
|
456 | width?: number
|
457 | /** 设置多边形Z轴数值 */
|
458 | zIndex?: number
|
459 | /**
|
460 | * 压盖关系
|
461 | * @supported weapp
|
462 | * @remarks 默认为 abovelabels
|
463 | */
|
464 | level?: string
|
465 | /**
|
466 | * 标明在特定地图缩放级别下展示。
|
467 | * @remarks [{ from: 12, to: 17}]
|
468 | * @supported alipay
|
469 | */
|
470 | displayRanges?: [
|
471 | {
|
472 | from: number
|
473 | to: number
|
474 | }
|
475 | ]
|
476 | }
|
477 | /** 在地图上显示圆 */
|
478 | interface circle {
|
479 | /** 纬度
|
480 | * @remarks 浮点数,范围 -90 ~ 90
|
481 | */
|
482 | latitude: number
|
483 | /** 经度
|
484 | * @remarks 浮点数,范围 -180 ~ 180
|
485 | */
|
486 | longitude?: number
|
487 | /** 描边的颜色
|
488 | * @remarks 十六进制
|
489 | */
|
490 | color?: string
|
491 | /** 填充颜色
|
492 | * @remarks 十六进制
|
493 | */
|
494 | fillColor?: string
|
495 | /** 半径 */
|
496 | radius: number
|
497 | /** 描边的宽度 */
|
498 | strokeWidth?: number
|
499 | }
|
500 | /** 在地图上显示控件,控件不随着地图移动。即将废弃,请使用 cover-view
|
501 | * @deprecated
|
502 | */
|
503 | interface control {
|
504 | /** 控件id
|
505 | * @remarks 在控件点击事件回调会返回此id
|
506 | */
|
507 | id?: number
|
508 | /** 控件在地图的位置
|
509 | * @remarks 控件相对地图位置
|
510 | */
|
511 | position: position
|
512 | /** 显示的图标
|
513 | * @remarks 项目目录下的图片路径,支持本地路径、代码包路径
|
514 | */
|
515 | iconPath: string
|
516 | /** 是否可点击
|
517 | * @remarks 默认不可点击
|
518 | */
|
519 | clickable?: boolean
|
520 | }
|
521 | interface point {
|
522 | /** 经度 */
|
523 | longitude: number
|
524 | /** 纬度 */
|
525 | latitude: number
|
526 | }
|
527 | interface position {
|
528 | /** 距离地图的左边界多远
|
529 | * @default 0
|
530 | */
|
531 | left: number
|
532 | /** 距离地图的上边界多远
|
533 | * @default 0
|
534 | */
|
535 | top: number
|
536 | /** 控件宽度
|
537 | * @default 图片宽度
|
538 | */
|
539 | width: number
|
540 | /** 控件高度
|
541 | * @default 图片宽度
|
542 | */
|
543 | height: number
|
544 | }
|
545 | interface groundOverlays {
|
546 | /**刷新的时候需要变更id值 */
|
547 | id: string
|
548 | /**右上 左下 */
|
549 | 'include-points': [
|
550 | {
|
551 | latitude: number
|
552 | longitude: number
|
553 | },
|
554 | {
|
555 | latitude: number
|
556 | longitude: number
|
557 | }
|
558 | ]
|
559 | image: string
|
560 | alpha: number
|
561 | zIndex: number
|
562 | }
|
563 | interface tileOverlay {
|
564 | url: string
|
565 | type: number
|
566 | tileWidth: number
|
567 | tileHeight: number
|
568 | zIndex: number
|
569 | }
|
570 | interface panels {
|
571 | id: number
|
572 | layout: {
|
573 | src: string
|
574 | }
|
575 | position: position
|
576 | }
|
577 | interface onMarkerTapEventDetail {
|
578 | markerId: number | string
|
579 | }
|
580 | interface onLabelTapEventDetail {
|
581 | markerId: number | string
|
582 | }
|
583 | interface onControlTapEventDetail {
|
584 | controlId: number | string
|
585 | }
|
586 | interface onCalloutTapEventDetail {
|
587 | markerId: number | string
|
588 | }
|
589 | namespace RegionChangeDetail {
|
590 | interface type {
|
591 | begin
|
592 | end
|
593 | }
|
594 | interface CausedByBegin {
|
595 | /** 手势触发 */
|
596 | gesture
|
597 | /** 接口触发 */
|
598 | update
|
599 | }
|
600 | interface CausedByEnd {
|
601 | /** 拖动导致 */
|
602 | drag
|
603 | /** 缩放导致 */
|
604 | scale
|
605 | /** 调用更新接口导致 */
|
606 | update
|
607 | }
|
608 | }
|
609 | interface onRegionEventDetail<T = keyof RegionChangeDetail.type> {
|
610 | /** 视野变化开始、结束时触发
|
611 | * @remarks 视野变化开始为begin,结束为end
|
612 | */
|
613 | type: T
|
614 | /** 导致视野变化的原因
|
615 | * @remarks 有效值为 gesture(手势触发)、update(接口触发或调用更新接口导致)、drag(拖动导致)、scale(缩放导致)
|
616 | */
|
617 | causedBy: keyof (T extends 'begin' ? RegionChangeDetail.CausedByBegin : RegionChangeDetail.CausedByEnd)
|
618 | /** 视野改变详情 */
|
619 | detail: regionChangeDetail<RegionChangeDetail.type>
|
620 | }
|
621 | interface regionChangeDetail<T = keyof RegionChangeDetail.type> {
|
622 | /** 旋转角度 */
|
623 | rotate: number
|
624 | /** 倾斜角度 */
|
625 | skew: number
|
626 | causedBy: keyof (T extends 'begin' ? RegionChangeDetail.CausedByBegin : RegionChangeDetail.CausedByEnd)
|
627 | type: T | string
|
628 | scale: number
|
629 | centerLocation: point
|
630 | region: {
|
631 | northeast: point
|
632 | southeast: point
|
633 | }
|
634 | }
|
635 | interface onPoiTapEventDetail {
|
636 | name: string
|
637 | longitude: number
|
638 | latitude: number
|
639 | }
|
640 | interface onPolylineTapEventDetail {
|
641 | polylineId: number
|
642 | longitude: number
|
643 | latitude: number
|
644 | }
|
645 | interface onAbilityEventDetail {
|
646 | ability: string
|
647 | errCode: number
|
648 | errMsg: string
|
649 | }
|
650 | interface onInterpolatePointEventDetail {
|
651 | markerId: number
|
652 | longitude: number
|
653 | latitude: number
|
654 | animationStatus: 'interpolating' | 'complete'
|
655 | }
|
656 | }
|
657 | /** 地图。相关api Taro.createMapContext。
|
658 | * @classification maps
|
659 | * @supported weapp, alipay, swan, tt, qq, jd
|
660 | * @example_react
|
661 | * ```tsx
|
662 | * class App extends Component {
|
663 | * onTap () {}
|
664 | * render () {
|
665 | * return (
|
666 | * <Map onClick={this.onTap} />
|
667 | * )
|
668 | * }
|
669 | * }
|
670 | * ```
|
671 | * @example_vue
|
672 | * ```html
|
673 | * <template>
|
674 | * <map
|
675 | * id="map"
|
676 | * style="width: 100%; height: 300px;"
|
677 | * longitude="113.324520"
|
678 | * latitude="23.099994"
|
679 | * scale="14"
|
680 | * :markers="markers"
|
681 | * :polyline="polyline"
|
682 | * :show-location="true"
|
683 | * `@regionchange="regionchange"
|
684 | * `@markertap="markertap"
|
685 | * />
|
686 | * </template>
|
687 | *
|
688 | * <script>
|
689 | * export default {
|
690 | * data() {
|
691 | * return {
|
692 | * markers: [{
|
693 | * iconPath: "https://avatars2.githubusercontent.com/u/1782542?s=460&u=d20514a52100ed1f82282bcfca6f49052793c889&v=4",
|
694 | * id: 0,
|
695 | * latitude: 23.099994,
|
696 | * longitude: 113.324520,
|
697 | * width: 50,
|
698 | * height: 50
|
699 | * }],
|
700 | * polyline: [{
|
701 | * points: [{
|
702 | * longitude: 113.3245211,
|
703 | * latitude: 23.10229
|
704 | * }, {
|
705 | * longitude: 113.324520,
|
706 | * latitude: 23.21229
|
707 | * }],
|
708 | * color:"#FF0000DD",
|
709 | * width: 2,
|
710 | * dottedLine: true
|
711 | * }]
|
712 | * }
|
713 | * },
|
714 | * methods: {
|
715 | * regionchange(e) {
|
716 | * console.log(e.type)
|
717 | * },
|
718 | * markertap(e) {
|
719 | * console.log("markertap:", e.detail.markerId)
|
720 | * }
|
721 | * }
|
722 | * }
|
723 | * </script>
|
724 | * ```
|
725 | * @see https://developers.weixin.qq.com/miniprogram/dev/component/map.html#map
|
726 | */
|
727 | declare const Map: ComponentType<MapProps>
|
728 | export { Map, MapProps }
|