BMKCircle.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * BMKCircle.h
  3. * BMapKit
  4. *
  5. * Copyright 2011 Baidu Inc. All rights reserved.
  6. *
  7. */
  8. #import "BMKShape.h"
  9. #import "BMKMultiPoint.h"
  10. #import "BMKOverlay.h"
  11. /// 该类用于定义一个圆
  12. @interface BMKCircle : BMKMultiPoint <BMKOverlay> {
  13. @package
  14. BOOL _invalidate;
  15. CLLocationCoordinate2D _coordinate;
  16. CLLocationDistance _radius;
  17. BMKMapRect _boundingMapRect;
  18. }
  19. /**
  20. *根据中心点和半径生成圆
  21. *@param coord 中心点的经纬度坐标
  22. *@param radius 半径,单位:米
  23. *@return 新生成的圆
  24. */
  25. + (BMKCircle *)circleWithCenterCoordinate:(CLLocationCoordinate2D)coord
  26. radius:(CLLocationDistance)radius;
  27. /**
  28. *根据指定的直角坐标矩形生成圆,半径由较长的那条边决定,radius = MAX(width, height)/2
  29. *@param mapRect 指定的直角坐标矩形
  30. *@return 新生成的圆
  31. */
  32. + (BMKCircle *)circleWithMapRect:(BMKMapRect)mapRect;
  33. /// 中心点坐标
  34. @property (nonatomic, assign) CLLocationCoordinate2D coordinate;
  35. /// 半径,单位:米
  36. @property (nonatomic, assign) CLLocationDistance radius;
  37. /// 该圆的外接矩形
  38. @property (nonatomic, readonly) BMKMapRect boundingMapRect;
  39. /**
  40. *设置圆的中心点和半径
  41. *@param coord 中心点的经纬度坐标
  42. *@param radius 半径,单位:米
  43. *@return 是否设置成功
  44. */
  45. - (BOOL)setCircleWithCenterCoordinate:(CLLocationCoordinate2D)coord radius:(CLLocationDistance)radius;
  46. /**
  47. *根据指定的直角坐标矩形设置圆,半径由较长的那条边决定,radius = MAX(width, height)/2
  48. *@param mapRect 指定的直角坐标矩形
  49. *@return 是否设置成功
  50. */
  51. - (BOOL)setCircleWithMapRect:(BMKMapRect)mapRect;
  52. @end