MAAnnotation.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //
  2. // MAAnnotation.h
  3. // MAMapKit
  4. //
  5. // Created by yin cai on 11-12-13.
  6. // Copyright (c) 2011年 Amap. All rights reserved.
  7. //
  8. #import "MAConfig.h"
  9. #import <CoreGraphics/CoreGraphics.h>
  10. #import <CoreLocation/CoreLocation.h>
  11. #import <Foundation/Foundation.h>
  12. #import "MAGeometry.h"
  13. ///该类为标注点的protocol,提供了标注类的基本信息函数
  14. @protocol MAAnnotation <NSObject>
  15. ///标注view中心坐标
  16. @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
  17. @optional
  18. ///annotation标题
  19. @property (nonatomic, copy) NSString *title;
  20. ///annotation副标题
  21. @property (nonatomic, copy) NSString *subtitle;
  22. /**
  23. * @brief 设置标注的坐标,在拖拽时会被调用.
  24. * @param newCoordinate 新的坐标值
  25. */
  26. - (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;
  27. @end
  28. /**
  29. * 支持动画需要实现的协议. since 4.5.0
  30. */
  31. @protocol MAAnimatableAnnotation <NSObject>
  32. @required
  33. /**
  34. * @brief 动画帧更新回调接口,实现者可在内部做更新处理,如更新coordinate. (since 4.5.0)
  35. * @param timeDelta 时间步长,单位秒
  36. */
  37. - (void)step:(CGFloat)timeDelta;
  38. /**
  39. * @brief 动画是否已完成. 通过此方法判断是否需要将动画annotation移出渲染执行过程。(since 4.5.0)
  40. * @return YES动画已完成,NO没有完成
  41. */
  42. - (BOOL)isAnimationFinished;
  43. /**
  44. * @brief 动画是否可以开始. 通过此方法判断是否需要将动画annotation加入渲染过程,已经start且尚未finish的动画标注才会调用step方法。(since 6.0.0)
  45. * @return YES 可以开始,NO 尚未开始。
  46. */
  47. - (BOOL)shouldAnimationStart;
  48. @optional
  49. /**
  50. * @brief 动画更新时调用此接口,获取annotationView的旋转角度,不实现默认为0. (since 4.5.0)
  51. * @return 当前annotation的旋转角度
  52. */
  53. - (CLLocationDirection)rotateDegree;
  54. @end