MATileOverlay.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // MATileOverlay.h
  3. // MAMapKitNew
  4. //
  5. // Created by xiaoming han on 14-1-24.
  6. // Copyright (c) 2014年 Amap. All rights reserved.
  7. //
  8. #import "MAOverlay.h"
  9. ///该类是覆盖在球面墨卡托投影上的图片tiles的数据源
  10. @interface MATileOverlay : NSObject<MAOverlay>
  11. /**
  12. * @brief 根据指定的URLTemplate生成tileOverlay
  13. * @param URLTemplate URLTemplate是一个包含"{x}","{y}","{z}","{scale}"的字符串,"{x}","{y}","{z}","{scale}"会被tile path的值所替换,并生成用来加载tile图片数据的URL 。例如 http://server/path?x={x}&y={y}&z={z}&scale={scale}
  14. * @return 以指定的URLTemplate字符串生成tileOverlay
  15. */
  16. - (instancetype)initWithURLTemplate:(NSString *)URLTemplate;
  17. ///默认tileSize 256x256
  18. @property CGSize tileSize;
  19. ///overlay可以渲染的最小缩放级别。当0级时,一个tile覆盖整个世界范围,1级时覆盖 1/4th 世界,2级时1/16th,以此类推。
  20. @property NSInteger minimumZ;
  21. ///overlay可以渲染的最大缩放级别。
  22. @property NSInteger maximumZ;
  23. ///同initWithURLTemplate:中的URLTemplate
  24. @property (readonly) NSString *URLTemplate;
  25. ///暂未开放
  26. @property (nonatomic) BOOL canReplaceMapContent;
  27. ///区域外接矩形,可用来设定tileOverlay的可渲染区域
  28. @property (nonatomic) MAMapRect boundingMapRect;
  29. @end
  30. ///记录某特定tile的据结构。contentScaleFactor根据设备的ScrennScale而定, 为1.0或2.0。
  31. struct MATileOverlayPath{
  32. NSInteger x; ///< x坐标
  33. NSInteger y; ///< y坐标
  34. NSInteger z; ///< 缩放级别
  35. CGFloat contentScaleFactor; ///< 屏幕的scale factor
  36. };
  37. typedef struct MATileOverlayPath MATileOverlayPath;
  38. ///子类可覆盖CustomLoading中的方法来自定义加载MATileOverlay的行为。
  39. @interface MATileOverlay (CustomLoading)
  40. /**
  41. * @brief 以tile path生成URL。用于加载tile,此方法默认填充URLTemplate
  42. * @param path tile path
  43. * @return 以tile path生成tileOverlay
  44. */
  45. - (NSURL *)URLForTilePath:(MATileOverlayPath)path;
  46. /**
  47. * @brief 加载被请求的tile,并以tile数据或加载tile失败error访问回调block;默认实现为首先用URLForTilePath去获取URL,然后用异步NSURLConnection加载tile
  48. * @param path tile path
  49. * @param result 用来传入tile数据或加载tile失败的error访问的回调block
  50. */
  51. - (void)loadTileAtPath:(MATileOverlayPath)path result:(void (^)(NSData *tileData, NSError *error))result;
  52. @end