百度地图SDK for iOS v4.1.1 类参考
构造函数 | Protected 属性 | 属性 | 所有成员列表
BMKOverlayView类 参考

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

#import <BMKOverlayView.h>

类 BMKOverlayView 继承关系图:
BMKGroundOverlayView BMKOverlayGLBasicView BMKOverlayPathView BMKTileLayerView BMKArclineView BMKCircleView BMKPolygonView BMKPolylineView

构造函数

(void) - setOverlayGeometryDelegate:
 设置该overlay的GeometryDelegate
 
(id) - initWithOverlay:
 
(CGPoint) - pointForMapPoint:
 
(BMKMapPoint- mapPointForPoint:
 
(CGRect) - rectForMapRect:
 
(BMKMapRect- mapRectForRect:
 
(BOOL) - canDrawMapRect:zoomScale:
 
(void) - drawMapRect:zoomScale:inContext:
 
(void) - setNeedsDisplayInMapRect:
 
(void) - renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:
 
(void) - renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:lineDash:
 
(void) - renderTexturedLinesWithPoints:pointCount:lineWidth:textureID:looped:
 
(void) - renderTexturedLinesWithPoints:pointCount:lineWidth:textureID:strokeColor:looped:tileTexture:keepScale:
 
(void) - renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:
 
(void) - renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:tileTexture:keepScale:
 
(void) - renderRegionWithPoints:pointCount:fillColor:usingTriangleFan:
 
(void) - renderATRegionWithPoint:pointCount:fillColor:usingTriangleFan:
 
(void) - glRender
 
(GLuint) - loadStrokeTextureImage:
 
(BOOL) - loadStrokeTextureImages:
 

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
 
NSArray * colors
 

详细描述

该类是地图覆盖物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

绘制函数(子类需要重载来实现)

◆ initWithOverlay:()

- (id) initWithOverlay: (id< BMKOverlay >)  overlay

初始化并返回一个overlay view

参数
overlay关联的overlay对象
返回
初始化成功则返回overlay view,否则返回nil

◆ loadStrokeTextureImage:()

- (GLuint) loadStrokeTextureImage: (UIImage *)  textureImage

加载纹理图片

参数
textureImage图片对象,opengl要求图片宽高必须是2的n次幂,如果图片对象为nil,则清空原有纹理
返回
openGL纹理ID, 若纹理加载失败返回0

◆ loadStrokeTextureImages:()

- (BOOL) loadStrokeTextureImages: (NSArray *)  textureImages

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

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

◆ mapPointForPoint:()

- (BMKMapPoint) mapPointForPoint: (CGPoint)  point

将overlay view坐标转为直角坐标

参数
pointview坐标
返回
对应的直角坐标

◆ 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矩形

◆ renderATRegionWithPoint:pointCount:fillColor:usingTriangleFan:()

- (void) renderATRegionWithPoint: (BMKMapPoint *)  points
pointCount: (NSUInteger)  pointCount
fillColor: (UIColor *)  fillColor
usingTriangleFan: (BOOL)  usingTriangleFan 

使用OpenGLES 绘制区域(支持凹多边形)

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

◆ renderLinesWithPoints:pointCount:strokeColor:lineWidth:looped:()

- (void) renderLinesWithPoints: (BMKMapPoint *)  points
pointCount: (NSUInteger)  pointCount
strokeColor: (UIColor *)  strokeColor
lineWidth: (CGFloat)  lineWidth
looped: (BOOL)  looped 

使用OpenGLES 绘制线

参数
points直角坐标点
pointCount点个数
strokeColor线颜色
lineWidthOpenGLES支持线宽尺寸
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: (BOOL)  lineDash 

使用OpenGLES 绘制线

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

◆ renderRegionWithPoints:pointCount:fillColor:usingTriangleFan:()

- (void) renderRegionWithPoints: (BMKMapPoint *)  points
pointCount: (NSUInteger)  pointCount
fillColor: (UIColor *)  fillColor
usingTriangleFan: (BOOL)  usingTriangleFan 

使用OpenGLES 绘制区域

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

◆ renderTexturedLinesWithPartPoints:lineWidth:textureIndexs:isFocus:()

- (void) renderTexturedLinesWithPartPoints: (NSArray *)  partPt
lineWidth: (CGFloat)  lineWidth
textureIndexs: (NSArray *)  textureIndexs
isFocus: (BOOL)  isFoucs 

使用OpenGLES 按指定纹理绘制多边形,适配坐标数量过多产生飞线bug

参数
points直角坐标点
pointCount点个数
lineWidthOpenGLES支持线宽尺寸
textureID纹理ID,使用- (void)loadStrokeTextureImage:textureImage;加载
tileTexture是否纹理图片平铺绘制
keepScale纹理图片是否缩放(tileTexture为YES时生效) 使用OpenGLES 分段纹理绘制线
partPt分段直角坐标点
lineWidthOpenGLES支持线宽尺寸
textureIndexs分段纹理索引,使用- (void)loadStrokeTextureImage: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: (BOOL)  keepScale 

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

参数
partPt分段直角坐标点
lineWidthOpenGLES支持线宽尺寸
textureIndexs分段纹理索引,使用- (BOOL)loadStrokeTextureImages:(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: (BOOL)  looped 

使用OpenGLES 按指定纹理绘制线

参数
points直角坐标点
pointCount点个数
lineWidthOpenGLES支持线宽尺寸
textureID纹理ID,使用- (void)loadStrokeTextureImage: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: (BOOL)  keepScale 

使用OpenGLES 按指定纹理绘制线

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

◆ setNeedsDisplayInMapRect:()

- (void) setNeedsDisplayInMapRect: (BMKMapRect mapRect

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

参数
mapRect需要更新的区域

属性说明

◆ colors

- (NSArray*) colors
readwritenonatomicstrong

使用分段颜色绘制时,必须设置(内容必须为UIColor) 注:请使用 - (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha; 初始化UIColor。使用[UIColor ***Color]初始化时,个别case转换成RGB后会有问题


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