MAMapView.h
21.5 KB
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
//
// MAMapView.h
// MAMapKit
//
// Created by AutoNavi.
// Copyright (c) 2013年 Amap. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "MAGeometry.h"
#import "MAOverlay.h"
#import "MAOverlayRenderer.h"
#import "MAAnnotationView.h"
#import "MAOverlayView.h"
typedef NS_ENUM(NSInteger, MAMapLanguage)
{
MAMapLanguageZhCN = 0, ///< 中文
MAMapLanguageEn = 1, ///< 英文
};
typedef NS_ENUM(NSInteger, MAMapType)
{
MAMapTypeStandard, ///< 普通地图
MAMapTypeSatellite ///< 卫星地图
};
typedef NS_ENUM(NSInteger, MAUserTrackingMode)
{
MAUserTrackingModeNone = 0, ///< 不追踪用户的location更新
MAUserTrackingModeFollow = 1, ///< 追踪用户的location更新
MAUserTrackingModeFollowWithHeading = 2 ///< 追踪用户的location与heading更新
};
@protocol MAMapViewDelegate;
@class MAUserLocation;
@class MAAnnotationView;
@class MAUserLocationRepresentation;
@interface MAMapView : UIView
#pragma mark - Properties
///地图View的Delegate
@property (nonatomic, weak) id<MAMapViewDelegate> delegate;
///地图类型
@property (nonatomic, assign) MAMapType mapType;
///地图语言
@property (nonatomic, assign) MAMapLanguage language;
///是否显示交通,默认为NO
@property (nonatomic, assign, getter = isShowTraffic) BOOL showTraffic;
///是否支持平移,默认为YES
@property (nonatomic, assign, getter = isScrollEnabled) BOOL scrollEnabled;
///是否支持缩放,默认为YES
@property (nonatomic, assign, getter = isZoomEnabled) BOOL zoomEnabled;
///标识当前地图中心位置是否在中国范围外。此属性不是精确判断,不能用于边界区域
@property (nonatomic, readonly) BOOL isAbroad;
///是否允许对annotationView根据zIndex进行排序,默认为YES。当annotationView数量比较大时可能会引起性能问题,可以设置此属性为NO
@property (nonatomic, assign) BOOL allowsAnnotationViewSorting;
#pragma mark - Logo
///logo位置, 必须在mapView.bounds之内,否则会被忽略
@property (nonatomic) CGPoint logoCenter;
///logo的宽高
@property (nonatomic, readonly) CGSize logoSize;
#pragma mark - Compass
///是否显示罗盘,默认为YES
@property (nonatomic, assign) BOOL showsCompass;
///罗盘原点位置
@property (nonatomic) CGPoint compassOrigin;
///罗盘的宽高
@property (nonatomic, readonly) CGSize compassSize;
#pragma mark - Scale
///是否显示比例尺,默认为YES
@property (nonatomic) BOOL showsScale;
///比例尺原点位置
@property (nonatomic) CGPoint scaleOrigin;
///比例尺的最大宽高
@property (nonatomic, readonly) CGSize scaleSize;
///在当前缩放级别下, 基于地图中心点, 1 screen point 对应的距离(单位是米). 支持KVO
@property (nonatomic, readonly) CGFloat metersPerPointForCurrentZoomLevel;
#pragma mark - Movement
///当前地图的中心点经纬度坐标,改变该值时,地图缩放级别不会发生变化
@property (nonatomic, assign) CLLocationCoordinate2D centerCoordinate;
///当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围
@property (nonatomic, assign) MACoordinateRegion region;
///当前地图可见范围的map rect
@property (nonatomic, assign) MAMapRect visibleMapRect;
#pragma mark - Limitation
///设置可见地图区域的矩形边界,如限制地图只显示北京市范围
@property (nonatomic, assign) MACoordinateRegion limitRegion;
///设置可见地图区域的矩形边界,如限制地图只显示北京市范围
@property (nonatomic, assign) MAMapRect limitMapRect;
#pragma mark - Zoom
///缩放级别, [3, 20]
@property (nonatomic, assign) double zoomLevel;
///最小缩放级别, 最小值为3
@property (nonatomic, assign) double minZoomLevel;
///最大缩放级别,最大值为20
@property (nonatomic, assign) double maxZoomLevel;
#pragma mark - UserLocation
///是否显示用户位置
@property (nonatomic, assign, getter = isShowsUserLocation) BOOL showsUserLocation;
///当前的位置数据
@property (nonatomic, readonly) MAUserLocation *userLocation;
///定位用户位置的模式
@property (nonatomic) MAUserTrackingMode userTrackingMode;
///当前位置再地图中是否可见
@property (nonatomic, readonly, getter=isUserLocationVisible) BOOL userLocationVisible;
#pragma mark - Annotations
///标注数组
@property (nonatomic, readonly) NSArray *annotations;
///处于选中状态的标注数据数据(其count == 0 或 1)
@property (nonatomic, copy) NSArray *selectedAnnotations;
///annotation 可见区域
@property (nonatomic, readonly) CGRect annotationVisibleRect;
#pragma mark - Overlays
///Overlay数组
@property (nonatomic, readonly) NSArray *overlays;
#pragma mark - Compass func
/**
* @brief 设置罗盘的图像
* @param image 当设置图像非空时,指南针将呈现该图像,如果为nil时,则恢复默认
*/
- (void)setCompassImage:(UIImage *)image;
#pragma mark - Scale func
/**
* @brief 在指定的缩放级别下, 基于地图中心点, 1 screen point 对应的距离(单位是米)
* @param zoomLevel 指定的缩放级别, 在[minZoomLevel, maxZoomLevel]范围内
* @return 对应的距离(单位是米)
*/
- (CGFloat)metersPerPointForZoomLevel:(CGFloat)zoomLevel;
#pragma mark - Movement func
/**
* @brief 设定地图中心点经纬度
* @param centerCoordinate 要设定的地图中心点经纬度
* @param animated 是否采用动画效果
*/
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate animated:(BOOL)animated;
/**
* @brief 设定当前地图的region
* @param region 要设定的地图范围,用经纬度的方式表示
* @param animated 是否采用动画效果
*/
- (void)setRegion:(MACoordinateRegion)region animated:(BOOL)animated;
/**
* @brief 根据当前地图视图frame的大小调整region范围,返回适合当前地图frame的region,调整过程中当前地图的中心点不会改变
* @param region 要调整的经纬度范围
* @return 调整后的经纬度范围
*/
- (MACoordinateRegion)regionThatFits:(MACoordinateRegion)region;
/**
* @brief 设置当前地图可见范围的map rect
* @param mapRect 要调整的map rect
* @param animated 是否采用动画效果
*/
- (void)setVisibleMapRect:(MAMapRect)mapRect animated:(BOOL)animated;
/**
* @brief 设置当前地图可见范围的map rect
* @param mapRect 要设置的map rect
* @param insets 嵌入边界
* @param animated 是否采用动画效果
*/
- (void)setVisibleMapRect:(MAMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
/**
* @brief 调整map rect使其适合地图窗口显示的范围
* @param mapRect 要调整的map rect
* @return 调整后的maprect
*/
- (MAMapRect)mapRectThatFits:(MAMapRect)mapRect;
/**
* @brief 调整map rect使其适合地图窗口显示的范围
* @param mapRect 要调整的map rect
* @param insets 嵌入边界
* @return 调整后的map rect
*/
- (MAMapRect)mapRectThatFits:(MAMapRect)mapRect edgePadding:(UIEdgeInsets)insets;
#pragma mark - Zoom func
/**
* @brief 设置当前地图的缩放级别zoom level
* @param newZoomLevel 要设置的zoom level
* @param animated 是否采用动画效果
*/
- (void)setZoomLevel:(double)newZoomLevel animated:(BOOL)animated;
/**
* @brief 设置当前地图的缩放级别zoom level
* @param newZoomLevel 要设置的zoom level
* @param pivot 指定缩放的锚点,屏幕坐标
* @param animated 是否采用动画效果
*/
- (void)setZoomLevel:(double)newZoomLevel atPivot:(CGPoint)pivot animated:(BOOL)animated;
#pragma mark - Conversions func
/**
* @brief 将经纬度坐标转化为相对于指定view的坐标
* @param coordinate 要转化的经纬度坐标
* @param view 指定的坐标系统的view
* @return 指定view的坐标
*/
- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view;
/**
* @brief 将相对于view的坐标转化为经纬度坐标
* @param point 要转化的坐标
* @param view point所基于的view
* @return 转化后的经纬度坐标
*/
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
/**
* @brief 将map rect 转化为相对于view的坐标
* @param region 要转化的 map rect
* @param view 返回值所基于的view
* @return 基于view的坐标
*/
- (CGRect)convertRegion:(MACoordinateRegion)region toRectToView:(UIView *)view;
/**
* @brief 将相对于view的rectangle转化为region
@param rect 要转化的rectangle
@param view rectangle所基于的view
@return 转化后的region
*/
- (MACoordinateRegion)convertRect:(CGRect)rect toRegionFromView:(UIView *)view;
#pragma mark - UserLocation func
/**
* @brief 设置追踪用户位置的模式
* @param mode 要使用的模式
* @param animated 是否采用动画效果
*/
- (void)setUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
/**
* @brief 设定UserLocationView样式。如果用户自定义了userlocation的annotationView,或者该annotationView还未添加到地图上,此方法将不起作用
* @param representation 样式信息对象
*/
- (void)updateUserLocationRepresentation:(MAUserLocationRepresentation *)representation;
#pragma mark - Annotations func
/**
* @brief 向地图窗口添加标注,需要实现MAMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
* @param annotation 要添加的标注
*/
- (void)addAnnotation:(id <MAAnnotation>)annotation;
/**
* @brief 向地图窗口添加一组标注,需要实现MAMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
*@param annotations 要添加的标注数组
*/
- (void)addAnnotations:(NSArray *)annotations;
/**
* @brief 移除标注
* @param annotation 要移除的标注
*/
- (void)removeAnnotation:(id <MAAnnotation>)annotation;
/**
* @brief 移除一组标注
* @param annotations 要移除的标注数组
*/
- (void)removeAnnotations:(NSArray *)annotations;
/**
* @brief 根据标注数据过去标注view
* @param annotation 标注数据
* @return 对应的标注view
*/
- (MAAnnotationView *)viewForAnnotation:(id <MAAnnotation>)annotation;
/**
* @brief 从复用内存池中获取制定复用标识的annotation view
* @param identifier 复用标识
* @return annotation view
*/
- (MAAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
/**
* @brief 选中标注数据对应的view
* @param annotation 标注数据
8 @param animated 是否有动画效果
*/
- (void)selectAnnotation:(id <MAAnnotation>)annotation animated:(BOOL)animated;
/**
* @brief 取消选中标注数据对应的view
* @param annotation 标注数据
* @param animated 是否有动画效果
*/
- (void)deselectAnnotation:(id <MAAnnotation>)annotation animated:(BOOL)animated;
/**
* @brief 获取指定投影矩形范围内的标注
* @param mapRect 投影矩形范围
* @return 标注集合
*/
- (NSSet *)annotationsInMapRect:(MAMapRect)mapRect;
/**
* @brief 设置地图使其可以显示数组中所有的annotation, 如果数组中只有一个则直接设置地图中心为annotation的位置
* @param annotations 需要显示的annotation
* @param animated 是否执行动画
*/
- (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated;
/**
* @brief 设置地图使其可以显示数组中所有的annotation, 如果数组中只有一个则直接设置地图中心为annotation的位置
* @param annotations 需要显示的annotation
* @param insets insets 嵌入边界
* @param animated 是否执行动画
*/
- (void)showAnnotations:(NSArray *)annotations edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
#pragma mark - Overlays func
/**
* @brief 查找指定overlay对应的Renderer,如果该Renderer尚未创建,返回nil
* @param overlay 指定的overlay
* @return 指定overlay对应的Renderer
*/
- (MAOverlayRenderer *)rendererForOverlay:(id <MAOverlay>)overlay;
- (MAOverlayView *)viewForOverlay:(id <MAOverlay>)overlay __attribute__ ((deprecated("use - (MAOverlayRenderer *)rendererForOverlay:(id <MAOverlay>)overlay instead")));
/**
* @brief 向地图添加Overlay,需要实现MAMapViewDelegate的-mapView:rendererForOverlay:函数来生成标注对应的Renderer
* @param overlay 要添加的overlay
*/
- (void)addOverlay:(id <MAOverlay>)overlay;
/**
* @brief 向地图添加一组Overlay,需要实现MAMapViewDelegate的-mapView:rendererForOverlay:函数来生成标注对应的Renderer
* @param overlays 要添加的overlay数组
*/
- (void)addOverlays:(NSArray *)overlays;
/**
* @brief 移除Overlay
* @param overlay 要移除的overlay
*/
- (void)removeOverlay:(id <MAOverlay>)overlay;
/**
* @brief 移除一组Overlay
* @param overlays 要移除的overlay数组
*/
- (void)removeOverlays:(NSArray *)overlays;
/**
* @brief 在指定的索引处添加一个Overlay
* @param overlay 要添加的overlay
* @param index 指定的索引
*/
- (void)insertOverlay:(id <MAOverlay>)overlay atIndex:(NSUInteger)index;
/**
* @brief 在交换指定索引处的Overlay
* @param index1 索引1
* @param index2 索引2
*/
- (void)exchangeOverlayAtIndex:(NSUInteger)index1 withOverlayAtIndex:(NSUInteger)index2;
/**
* @brief 在指定的Overlay之上插入一个overlay
* @param overlay 带添加的Overlay
* @param sibling 用于指定相对位置的Overlay
*/
- (void)insertOverlay:(id <MAOverlay>)overlay aboveOverlay:(id <MAOverlay>)sibling;
/**
* @brief 在指定的Overlay之下插入一个overlay
* @param overlay 带添加的Overlay
* @param sibling 用于指定相对位置的Overlay
*/
- (void)insertOverlay:(id <MAOverlay>)overlay belowOverlay:(id <MAOverlay>)sibling;
/**
* @brief 设置地图使其可以显示数组中所有的overlay
* @param overlays 需要显示的overlays
* @param animated 是否执行动画
*/
- (void)showOverlays:(NSArray *)overlays animated:(BOOL)animated;
/**
* @brief 设置地图使其可以显示数组中所有的overlay
* @param overlays 需要显示的overlays
* @param insets insets 嵌入边界
* @param animated 是否执行动画
*/
- (void)showOverlays:(NSArray *)overlays edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
#pragma mark - Cache
/**
* @brief 清除所有磁盘上缓存的地图数据
*/
- (void)clearDisk;
@end
#pragma mark - Snapshots
///地图view关于截图的类别
@interface MAMapView (Snapshot)
/**
* @brief 在指定区域内截图(默认会包含该区域内的annotationView)
* @param rect 指定的区域
* @return 截图image
*/
- (UIImage *)takeSnapshotInRect:(CGRect)rect;
/**
* @brief 获得地图当前可视区域截图
* @param rect 指定截图区域
* @param block 回调block
*/
- (void)takeSnapshotInRect:(CGRect)rect withCompletionBlock:(void (^)(UIImage *resultImage, CGRect rect))block;
@end
#pragma mark - LocationOption
///定位相关参数的类别
@interface MAMapView (LocationOption)
///设定定位的最小更新距离。默认为kCLDistanceFilterNone,会提示任何移动
@property (nonatomic) CLLocationDistance distanceFilter;
///设定定位精度。默认为kCLLocationAccuracyBest
@property (nonatomic) CLLocationAccuracy desiredAccuracy;
///设定最小更新角度。默认为1度,设定为kCLHeadingFilterNone会提示任何角度改变
@property (nonatomic) CLLocationDegrees headingFilter;
///指定定位是否会被系统自动暂停。默认为YES。只在iOS 6.0之后起作用
@property (nonatomic) BOOL pausesLocationUpdatesAutomatically;
///是否允许后台定位。默认为NO。只在iOS 9.0之后起作用。设置为YES的时候必须保证 Background Modes 中的 Location updates处于选中状态,否则会抛出异常
@property (nonatomic) BOOL allowsBackgroundLocationUpdates;
@end
#pragma mark - MAMapViewDelegate
///地图view的delegate
@protocol MAMapViewDelegate <NSObject>
@optional
/**
* @brief 地图区域即将改变时会调用此接口
* @param mapView 地图View
* @param animated 是否动画
*/
- (void)mapView:(MAMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
/**
* @brief 地图区域改变完成后会调用此接口
* @param mapView 地图View
* @param animated 是否动画
*/
- (void)mapView:(MAMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
/**
* @brief 地图将要发生移动时调用此接口
* @param mapView 地图view
* @param wasUserAction 标识是否是用户动作
*/
- (void)mapView:(MAMapView *)mapView mapWillMoveByUser:(BOOL)wasUserAction;
/**
* @brief 地图移动结束后调用此接口
* @param mapView 地图view
* @param wasUserAction 标识是否是用户动作
*/
- (void)mapView:(MAMapView *)mapView mapDidMoveByUser:(BOOL)wasUserAction;
/**
* @brief 地图将要发生缩放时调用此接口
* @param mapView 地图view
* @param wasUserAction 标识是否是用户动作
*/
- (void)mapView:(MAMapView *)mapView mapWillZoomByUser:(BOOL)wasUserAction;
/**
* @brief 地图缩放结束后调用此接口
* @param mapView 地图view
* @param wasUserAction 标识是否是用户动作
*/
- (void)mapView:(MAMapView *)mapView mapDidZoomByUser:(BOOL)wasUserAction;
/**
* @brief 单击地图底图调用此接口
* @param mapView 地图View
* @param coordinate 点击位置经纬度
*/
- (void)mapView:(MAMapView *)mapView didSingleTappedAtCoordinate:(CLLocationCoordinate2D)coordinate;
/**
* @brief 长按地图底图调用此接口
* @param mapView 地图View
* @param coordinate 长按位置经纬度
*/
- (void)mapView:(MAMapView *)mapView didLongPressedAtCoordinate:(CLLocationCoordinate2D)coordinate;
/**
* @brief 根据anntation生成对应的View
* @param mapView 地图View
* @param annotation 指定的标注
* @return 生成的标注View
*/
- (MAAnnotationView*)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation;
/**
* @brief 当mapView新添加annotation views时调用此接口
* @param mapView 地图View
* @param views 新添加的annotation views
*/
- (void)mapView:(MAMapView *)mapView didAddAnnotationViews:(NSArray *)views;
/**
* @brief 当选中一个annotation views时调用此接口
* @param mapView 地图View
* @param view 选中的annotationView
*/
- (void)mapView:(MAMapView *)mapView didSelectAnnotationView:(MAAnnotationView *)view;
/**
* @brief 当取消选中一个annotation views时调用此接口
* @param mapView 地图View
* @param view 取消选中的annotationView
*/
- (void)mapView:(MAMapView *)mapView didDeselectAnnotationView:(MAAnnotationView *)view;
/**
* @brief 标注view的accessory view(必须继承自UIControl)被点击时调用此接口
* @param mapView 地图View
* @param view callout所属的标注view
* @param control 对应的control
*/
- (void)mapView:(MAMapView *)mapView annotationView:(MAAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;
/**
* @brief 标注view的calloutview整体点击时调用此接口
* @param mapView 地图的view
* @param view calloutView所属的annotationView
*/
- (void)mapView:(MAMapView *)mapView didAnnotationViewCalloutTapped:(MAAnnotationView *)view;
/**
* @brief 在地图View将要启动定位时调用此接口
* @param mapView 地图View
*/
- (void)mapViewWillStartLocatingUser:(MAMapView *)mapView;
/**
* @brief 在地图View停止定位后调用此接口
* @param mapView 地图View
*/
- (void)mapViewDidStopLocatingUser:(MAMapView *)mapView;
/**
* @brief 位置或者设备方向更新后调用此接口
* @param mapView 地图View
* @param userLocation 用户定位信息(包括位置与设备方向等数据)
* @param updatingLocation 标示是否是location数据更新, YES:location数据更新 NO:heading数据更新
*/
- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation;
/**
* @brief 定位失败后调用此接口
* @param mapView 地图View
* @param error 错误号,参考CLError.h中定义的错误号
*/
- (void)mapView:(MAMapView *)mapView didFailToLocateUserWithError:(NSError *)error;
/**
* @brief 当userTrackingMode改变时调用此接口
* @param mapView 地图View
* @param mode 改变后的mode
* @param animated 动画
*/
- (void)mapView:(MAMapView *)mapView didChangeUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
/**
* @brief 拖动annotation view时view的状态变化,ios3.2以后支持
* @param mapView 地图View
* @param view annotation view
* @param newState 新状态
* @param oldState 旧状态
*/
- (void)mapView:(MAMapView *)mapView annotationView:(MAAnnotationView *)view didChangeDragState:(MAAnnotationViewDragState)newState fromOldState:(MAAnnotationViewDragState)oldState;
/**
* @brief 根据overlay生成对应的Renderer
* @param mapView 地图View
* @param overlay 指定的overlay
* @return 生成的覆盖物Renderer
*/
- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id <MAOverlay>)overlay;
/**
* @brief 当mapView新添加overlay renderer时调用此接口
* @param mapView 地图View
* @param renderers 新添加的overlay renderers
*/
- (void)mapView:(MAMapView *)mapView didAddOverlayRenderers:(NSArray *)renderers;
#pragma mark - Deprecated
- (MAOverlayView *)mapView:(MAMapView *)mapView viewForOverlay:(id <MAOverlay>)overlay __attribute__ ((deprecated("use - (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id <MAOverlay>)overlay instead")));
- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation __attribute__ ((deprecated("use -(void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation instead")));
- (void)mapView:(MAMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews __attribute__ ((deprecated("use - (void)mapView:(MAMapView *)mapView didAddOverlayRenderers:(NSArray *)renderers instead")));
@end