BaiduMap_IOSSDK_v7.2.0_Docs 7.2.0

构造函数 | Protected 属性 | 属性 | 所有成员列表
BMKOverlayView类 参考

该类是地图覆盖物View的基类，提供绘制overlay的接口但本身并无实现，所有地图覆盖物View需要继承自此类 更多...

`#import <BMKOverlayView.h>`

类 BMKOverlayView 继承关系图:

## 构造函数
(nullable instancetype) | - initWithOverlay:
(GLuint) | - loadStrokeTextureImage:
(BOOL) | - loadStrokeTextureImages:
(void) | - setOverlayGeometryDelegate:
| 设置该overlay的GeometryDelegate 更多...
(CGPoint) | - pointForMapPoint:
(BMKMapPoint) | - mapPointForPoint:
(CGRect) | - rectForMapRect:
(BMKMapRect) | - mapRectForRect:
(BOOL) | - canDrawMapRect:zoomScale:
(void) | - drawMapRect:zoomScale:inContext:
(void) | - setNeedsDisplayInMapRect:
(void) | - renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:
(void) | - renderTexturedLinesWithPoints:pointCount:lineWidth:textureID:looped:
(void) | - renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:lineDashType:
(void) | - renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:lineDash:
(void) | - renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:
(void) | - renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:tileTexture:keepScale:
(void) | - renderTexturedLinesWithPoints:pointCount:lineWidth:textureID:strokeColor:looped:tileTexture:keepScale:
(void) | - renderTexturedPolyLineWithPoints:lineWidth:textureID:strokeColor:isFoucs:keepScale:lineJoinType:lineCapType:
(void) | - renderMultiTexturedPolyLineWithPartPoints:lineWidth:textureIndexs:isFoucs:keepScale:lineJoinType:lineCapType:
(void) | - renderDashPolyLineWithPoints:lineWidth:strokeColor:lineDashType:
(void) | - renderMultiDashPolyLineWithPartPoints:lineWidth:textureIndexs:lineDashType:
(void) | - renderRegionWithPoints:pointCount:fillColor:usingTriangleFan:
(void) | - renderATRegionWithPoint:pointCount:fillColor:usingTriangleFan:
(void) | - rendeCircleWithPoints:pointCount:lineWidth:fillColor:strokeColor:
(void) | - rendePolygonWithPoints:pointCount:lineWidth:fillColor:strokeColor:
(void) | - glRender

## Protected 属性
package id< BMKOverlay > | _overlay
BMKMapRect | _boundingMapRect
CGAffineTransform | _mapTransform
id | _geometryDelegate
id | _canDrawCache
BOOL | keepScale
CFTimeInterval | _lastTile
CFRunLoopTimerRef | _scheduledScaleTimer
struct {
unsigned int keepAlive:1
unsigned int levelCrossFade:1
unsigned int drawingDisabled:1
unsigned int usesTiledLayer:1
} | _flags

## 属性
id< BMKOverlay > | overlay
| 关联的overlay对象 更多...
GLuint | strokeTextureID
| 关联的纹理对象ID 更多...

## 详细描述

该类是地图覆盖物View的基类，提供绘制overlay的接口但本身并无实现，所有地图覆盖物View需要继承自此类

## 函数文档

## ◆ canDrawMapRect:zoomScale:

- (BOOL) canDrawMapRect: |  | (BMKMapRect) | mapRect
zoomScale: |  | (BMKZoomScale) | zoomScale

判断ovlerlay view是否准备绘制内容 默认返回YES，如果用户设为NO，当需要绘制内容时要显示调用setNeedsDisplayInMapRect:zoomScale:方法

参数

  mapRect | 需要更新的地图矩形区域
  zoomScale | 当前的缩放因子

返回
  如果view准备好绘制内容，返回YES,否则返回NO

## ◆ drawMapRect:zoomScale:inContext:

- (void) drawMapRect: |  | (BMKMapRect) | mapRect
zoomScale: |  | (BMKZoomScale) | zoomScale
inContext: |  | (CGContextRef) | context

绘制overlay view内容 该方法默认不做任何事，子类需要重载该方法来绘制view的内容

参数

  mapRect | 需要更新的地图矩形区域
  zoomScale | 当前的缩放因子
  context | 使用的graphics context

## ◆ glRender

- (void) glRender |  |  |

绘制函数(子类需要重载来实现) since 6.0.0 无效

## ◆ initWithOverlay:

- (nullable instancetype) initWithOverlay: |  | (id< BMKOverlay >) | overlay |

初始化并返回一个overlay view

参数

  overlay | 关联的overlay对象

返回
  初始化成功则返回overlay view,否则返回nil

## ◆ loadStrokeTextureImage:

- (GLuint) loadStrokeTextureImage: |  | ("已废弃since 6.5.0，请使用BMKOverlayGLBasicView中textureImage字段") | __deprecated_msg |

加载纹理图片

参数

  textureImage | 图片对象，opengl要求图片宽高必须是2的n次幂，如果图片对象为nil，则清空原有纹理

返回
  openGL纹理ID, 若纹理加载失败返回0

## ◆ loadStrokeTextureImages:

- (BOOL) loadStrokeTextureImages: |  | ("已废弃since 6.5.0，请使用BMKMultiTexturePolylineView中textureImages字段") | __deprecated_msg |

加载分段纹理绘制 所需的纹理图片

参数

  textureImages | 必须UIImage数组，opengl要求图片宽高必须是2的n次幂，否则，返回NO，无法分段纹理绘制

返回
  是否成功

## ◆ mapPointForPoint:

- (BMKMapPoint) mapPointForPoint: |  | (CGPoint) | point |

将overlay view坐标转为直角坐标

参数

  point | view坐标

返回
  对应的直角坐标

## ◆ mapRectForRect:

- (BMKMapRect) mapRectForRect: |  | (CGRect) | rect |

将overlay view区域转为二维地图投影区域

参数

  rect | 指定的view矩形

返回
  对应的二维地图投影矩形

## ◆ pointForMapPoint:

- (CGPoint) pointForMapPoint: |  | (BMKMapPoint) | mapPoint |

将直角坐标转为overlay view坐标

参数

  mapPoint | 直角坐标

返回
  对应的view坐标

## ◆ rectForMapRect:

- (CGRect) rectForMapRect: |  | (BMKMapRect) | mapRect |

将二维地图投影矩形转为overlay view矩形

参数

  mapRect | 二维地图投影矩形

返回
  对应的view矩形

## ◆ rendeCircleWithPoints:pointCount:lineWidth:fillColor:strokeColor:

- (void) rendeCircleWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
lineWidth: |  | (CGFloat) | lineWidth
fillColor: |  | (UIColor *) | fillColor
strokeColor: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 绘制圆

参数

  points | 直角坐标点
  pointCount | 点个数
  lineWidth | 线宽
  fillColor | 填充颜色
  strokeColor | 线颜色

## ◆ rendePolygonWithPoints:pointCount:lineWidth:fillColor:strokeColor:

- (void) rendePolygonWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
lineWidth: |  | (CGFloat) | lineWidth
fillColor: |  | (UIColor *) | fillColor
strokeColor: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 绘制Polygon

参数

  points | 直角坐标点
  pointCount | 点个数
  lineWidth | 线宽
  fillColor | 填充颜色
  strokeColor | 线颜色

## ◆ renderATRegionWithPoint:pointCount:fillColor:usingTriangleFan:

- (void) renderATRegionWithPoint: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
fillColor: |  | (UIColor *) | fillColor
usingTriangleFan: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 绘制区域（支持凹多边形）

参数

  points | 直角坐标点
  pointCount | 点个数
  fillColor | 填充颜色
  usingTriangleFan | YES对应GL_TRIANGLE_FAN, NO对应GL_TRIANGLES

## ◆ renderDashPolyLineWithPoints:lineWidth:strokeColor:lineDashType:

- (void) renderDashPolyLineWithPoints: |  | (NSArray< NSValue * > *) | points
lineWidth: |  | (CGFloat) | lineWidth
strokeColor: |  | (UIColor *) | strokeColor
lineDashType: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 按指定单色绘制虚线 since 5.0.0

参数

  points | 墨卡托坐标点转换的NSValue
  lineWidth | OpenGLES支持线宽尺寸
  strokeColor | 虚线颜色
  lineDashType | 虚线样式

## ◆ renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:

- (void) renderLinesWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
strokeColor: |  | (UIColor *) | strokeColor
lineWidth: |  | (CGFloat) | lineWidth
looped: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 指定颜色绘制线

参数

  points | 直角坐标点
  pointCount | 点个数
  strokeColor | 线颜色
  lineWidth | OpenGLES支持线宽尺寸
  looped | 是否闭合, 如polyline会设置NO, polygon会设置YES.

## ◆ renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:lineDash:

- (void) renderLinesWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
strokeColor: |  | (UIColor *) | strokeColor
lineWidth: |  | (CGFloat) | lineWidth
looped: |  | (BOOL) | looped
lineDash: |  | ("已废弃since 5.0.0，内部无实现，请使用renderLinesWithPoints: pointCount: strokeColor: lineWidth:looped: lineDashType:") | __deprecated_msg

使用OpenGLES 绘制线

参数

  points | 直角坐标点
  pointCount | 点个数
  strokeColor | 线颜色
  lineWidth | OpenGLES支持线宽尺寸
  looped | 是否闭合, 如polyline会设置NO, polygon会设置YES.
  lineDash | 是否虚线样式

## ◆ renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:lineDashType:

- (void) renderLinesWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
strokeColor: |  | (UIColor *) | strokeColor
lineWidth: |  | (CGFloat) | lineWidth
looped: |  | (BOOL) | looped
lineDashType: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 指定颜色绘制线 since 5.0.0

参数

  points | 直角坐标点
  pointCount | 点个数
  strokeColor | 线颜色
  lineWidth | OpenGLES支持线宽尺寸
  looped | 是否闭合, 如polyline会设置NO, polygon会设置YES.
  lineDashType | 虚线样式

## ◆ renderMultiDashPolyLineWithPartPoints:lineWidth:textureIndexs:lineDashType:

- (void) renderMultiDashPolyLineWithPartPoints: |  | (NSArray *) | partPt
lineWidth: |  | (CGFloat) | lineWidth
textureIndexs: |  | (NSArray< NSNumber * > *) | textureIndexs
lineDashType: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 分段多颜色虚线 since 5.0.0

参数

  partPt | 分段墨卡托坐标点转换为的NSValue
  lineWidth | OpenGLES支持线宽尺寸
  textureIndexs | 分段纹理索引,使用colors;加载
  lineDashType | 虚线样式

## ◆ renderMultiTexturedPolyLineWithPartPoints:lineWidth:textureIndexs:isFoucs:keepScale:lineJoinType:lineCapType:

- (void) renderMultiTexturedPolyLineWithPartPoints: |  | (NSArray *) | partPt
lineWidth: |  | (CGFloat) | lineWidth
textureIndexs: |  | (NSArray< NSNumber * > *) | textureIndexs
isFoucs: |  | (BOOL) | isFoucs
keepScale: |  | (BOOL) | keepScale
lineJoinType: |  | (BMKLineJoinType) | lineJoinType
lineCapType: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 分段多纹理/多颜色绘制线 since 5.0.0

参数

  partPt | 分段墨卡托坐标点转换为的NSValue
  lineWidth | OpenGLES支持线宽尺寸
  textureIndexs | 分段纹理索引,使用- (BOOL)loadStrokeTextureImages:(UIImage *)textureImage;加载
  isFoucs | 高亮(该属性已废弃)
  keepScale | 纹理图片是否缩放(纹理绘制生效)
  lineJoinType | 拐角衔接方式（默认kBMKLineJoinBevel）
  lineCapType | 头尾处理样式(默认kBMKLineCapButt)

## ◆ renderRegionWithPoints:pointCount:fillColor:usingTriangleFan:

- (void) renderRegionWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
fillColor: |  | (UIColor *) | fillColor
usingTriangleFan: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 绘制区域

参数

  points | 直角坐标点
  pointCount | 点个数
  fillColor | 填充颜色
  usingTriangleFan | YES对应GL_TRIANGLE_FAN, NO对应GL_TRIANGLES

## ◆ renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:

- (void) renderTexturedLinesWithPartPoints: |  | (NSArray *) | partPt
lineWidth: |  | (CGFloat) | lineWidth
textureIndexs: |  | (NSArray *) | textureIndexs
isFocus: |  | ("已废弃since 5.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 分段纹理绘制线

参数

  partPt | 分段直角坐标点
  lineWidth | OpenGLES支持线宽尺寸
  textureIndexs | 分段纹理索引,使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载
  isFoucs | 是否使用分段纹理绘制

## ◆ renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:tileTexture:keepScale:

- (void) renderTexturedLinesWithPartPoints: |  | (NSArray *) | partPt
lineWidth: |  | (CGFloat) | lineWidth
textureIndexs: |  | (NSArray *) | textureIndexs
isFocus: |  | (BOOL) | isFoucs
tileTexture: |  | (BOOL) | tileTexture
keepScale: |  | ("已废弃since 5.0.0，内部无实现，请使用renderMultiTexturedPolyLine") | __deprecated_msg

使用OpenGLES 分段纹理绘制线

参数

  partPt | 分段直角坐标点
  lineWidth | OpenGLES支持线宽尺寸
  textureIndexs | 分段纹理索引,使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载
  isFoucs | 是否使用分段纹理绘制
  tileTexture | 是否纹理图片平铺绘制
  keepscale | 纹理图片是否缩放（tileTexture为YES时生效）

## ◆ renderTexturedLinesWithPoints:pointCount:lineWidth:textureID:looped:

- (void) renderTexturedLinesWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
lineWidth: |  | (CGFloat) | lineWidth
textureID: |  | (GLuint) | textureID
looped: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 按指定纹理绘制线

参数

  points | 直角坐标点
  pointCount | 点个数
  lineWidth | OpenGLES支持线宽尺寸
  textureID | 纹理ID,使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载
  looped | 是否闭合, 如polyline会设置NO, polygon会设置YES.

## ◆ renderTexturedLinesWithPoints:pointCount:lineWidth:textureID:strokeColor:looped:tileTexture:keepScale:

- (void) renderTexturedLinesWithPoints: |  | (BMKMapPoint *) | points
pointCount: |  | (NSUInteger) | pointCount
lineWidth: |  | (CGFloat) | lineWidth
textureID: |  | (GLuint) | textureID
strokeColor: |  | (UIColor *) | strokeColor
looped: |  | (BOOL) | looped
tileTexture: |  | (BOOL) | tileTexture
keepScale: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 按指定单纹理/单色绘制线

参数

  points | 直角坐标点
  pointCount | 点个数
  lineWidth | OpenGLES支持线宽尺寸
  textureID | 纹理ID,使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载
  strokeColor | 画笔颜色
  looped | 是否闭合, 如polyline会设置NO, polygon会设置YES.
  tileTexture | 是否纹理图片平铺绘制
  keepScale | 纹理图片是否缩放（tileTexture为YES时生效）

## ◆ renderTexturedPolyLineWithPoints:lineWidth:textureID:strokeColor:isFoucs:keepScale:lineJoinType:lineCapType:

- (void) renderTexturedPolyLineWithPoints: |  | (NSArray< NSValue * > *) | points
lineWidth: |  | (CGFloat) | lineWidth
textureID: |  | (GLuint) | textureID
strokeColor: |  | (UIColor *) | strokeColor
isFoucs: |  | (BOOL) | isFoucs
keepScale: |  | (BOOL) | keepScale
lineJoinType: |  | (BMKLineJoinType) | lineJoinType
lineCapType: |  | ("已废弃since 6.0.0，内部无实现") | __deprecated_msg

使用OpenGLES 按指定单色/单纹理绘制线 since 5.0.0

参数

  points | 墨卡托坐标点转换的NSValue
  lineWidth | OpenGLES支持线宽尺寸
  textureID | 纹理ID,使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载
  strokeColor | 线颜色
  isFoucs | 高亮(该属性已废弃)
  keepScale | 纹理图片是否缩放（(纹理绘制生效)
  lineJoinType | 拐角衔接方式（默认kBMKLineJoinBevel）
  lineCapType | 头部处理方式（默认kBMKLineCapButt）

## ◆ setNeedsDisplayInMapRect:

- (void) setNeedsDisplayInMapRect: |  | (BMKMapRect) | mapRect |

使view在给定矩形的区域无效,系统将重绘该区域

参数

  mapRect | 需要更新的区域

## ◆ setOverlayGeometryDelegate:

- (void) setOverlayGeometryDelegate: |  | (id) | delegate |

设置该overlay的GeometryDelegate

## 类成员变量说明

## ◆ _boundingMapRect

- (BMKMapRect) _boundingMapRect
| protected

## ◆ _canDrawCache

- (id) _canDrawCache
| protected

## ◆ _flags

struct { ... } BMKOverlayView::_flags

## ◆ _geometryDelegate

- (id) _geometryDelegate
| protected

## ◆ _lastTile

- (CFTimeInterval) _lastTile
| protected

## ◆ _mapTransform

- (CGAffineTransform) _mapTransform
| protected

## ◆ _overlay

- (package id<BMKOverlay>) _overlay
| protected

## ◆ _scheduledScaleTimer

- (CFRunLoopTimerRef) _scheduledScaleTimer
| protected

## ◆ drawingDisabled

- (unsigned int) drawingDisabled

## ◆ keepAlive

- (unsigned int) keepAlive

## ◆ keepScale

- (BOOL) keepScale
| protected

## ◆ levelCrossFade

- (unsigned int) levelCrossFade

## ◆ usesTiledLayer

- (unsigned int) usesTiledLayer

## 属性说明

## ◆ overlay

- (id<BMKOverlay>) overlay
| read nonatomic assign

关联的overlay对象

## ◆ strokeTextureID

- (GLuint) strokeTextureID
| read nonatomic assign

关联的纹理对象ID

该类的文档由以下文件生成:

- BaiduMapAPI_Map.framework/Headers/BMKOverlayView.h