MBMapkit
|
MBOverlayView类定义了所有与覆盖层视图相关的基本行为。一个覆盖层视图提供了覆盖层对象的视觉显示。本类定义了在地图视 图使用的绘制结构但不执行任何实际的绘制。子类需要重写 drawMapRect:zoomScale:inContext: 方法来绘制图覆盖层视图的 内容。
MBMapKit 框架提供了一些具体的覆盖层视图实例。它给每个具体的覆盖层对象提供覆盖层视图。如果你希望以别的方式绘制覆盖层 的内容你可以使用一个现有的覆盖层视图来定义自己的子类。
更多...
#import <MBOverlayView.h>
公有成员 | |
(id) | - initWithOverlay: |
初始化并返回与指定覆盖层对象关联的覆盖层视图。 | |
(CGPoint) | - pointForMapPoint: |
返回指定地图点在覆盖层视图中对应的点。 | |
(MBMapPoint) | - mapPointForPoint: |
返回指定覆盖层视图中的点对应的地图点。 | |
(CGRect) | - rectForMapRect: |
指定地图点在覆盖层视图中对应的点。 | |
(MBMapRect) | - mapRectForRect: |
返回指定覆盖层视图坐标系中矩形对应的地图矩形。 | |
(BOOL) | - canDrawMapRect:zoomScale: |
返回布尔值表示覆盖层视图是否准备好绘制它的内容。 | |
(void) | - drawMapRect:zoomScale:inContext: |
绘制覆盖层视图的内容。 | |
(void) | - setNeedsDisplayInMapRect: |
在所有缩放等级下使给定地图矩形中的视图无效。 | |
(void) | - setNeedsDisplayInMapRect:zoomScale: |
只在指定的缩放等级下使给定地图矩形中的视图无效。 | |
保护属性 | |
package id< MBOverlay > | _overlay |
MBMapRect | _boundingMapRect |
CGAffineTransform | _mapTransform |
id | _geometryDelegate |
id | _canDrawCache |
pthread_rwlock_t | _rwLock |
CFTimeInterval | _lastTile |
CFRunLoopTimerRef | _scheduledScaleTimer |
struct { | |
unsigned int keepAlive:1 | |
unsigned int levelCrossFade:1 | |
unsigned int drawingDisabled:1 | |
unsigned int usesTiledLayer:1 | |
} | _flags |
属性 | |
id< MBOverlay > | overlay |
包含绘制数据的覆盖层对象。 |
MBOverlayView类定义了所有与覆盖层视图相关的基本行为。一个覆盖层视图提供了覆盖层对象的视觉显示。本类定义了在地图视 图使用的绘制结构但不执行任何实际的绘制。子类需要重写 drawMapRect:zoomScale:inContext: 方法来绘制图覆盖层视图的 内容。
MBMapKit 框架提供了一些具体的覆盖层视图实例。它给每个具体的覆盖层对象提供覆盖层视图。如果你希望以别的方式绘制覆盖层 的内容你可以使用一个现有的覆盖层视图来定义自己的子类。
你可以基于自定义的形状和内容子类化 MBOverlayView 以创建覆盖层。你只应该重写 drawMapRect:zoomScale:inContext: 方法。但是如果你的类可能包含了未准备好不能立刻绘制的内容,你还需要重写 canDrawMapRect:zoomScale: 方法,调用这 个方法来报告你的类什么时候已经准备好可以绘制。 你实现的 drawMapRect:zoomScale:inContext: 方法必须保证多线程安全运行。为了提高性能,地图视图可能把足够大的覆 盖层拆分成片在独立的线程中执行每个片的渲染。
- (BOOL) canDrawMapRect: | (MBMapRect) | mapRect | |
zoomScale: | (MBZoomScale) | zoomScale | |
返回布尔值表示覆盖层视图是否准备好绘制它的内容。
canDrawMapRect:zoomScale:
mapRect | 需要更新的地图矩形。 |
zoomScale | 应用到地图的当前缩放系数 |
- (void) drawMapRect: | (MBMapRect) | mapRect | |
zoomScale: | (MBZoomScale) | zoomScale | |
inContext: | (CGContextRef) | context | |
绘制覆盖层视图的内容。
drawMapRect:zoomScale:inContext:
mapRect | 需要更新的地图矩形。你可以使用这个矩形来限制只绘制视图改变了的部分。 |
zoomScale | 应用到地图的当前缩放系数。你可以使用这个值来配置笔画的线宽或者其它可能受到视图内容缩放等级影响的属性。 |
context | 用于绘制地图内容的图像上下文。 |
- (id) initWithOverlay: | (id< MBOverlay >) | overlay |
初始化并返回与指定覆盖层对象关联的覆盖层视图。
initWithOverlay:
overlay | 用于在地图中绘制的覆盖层对象。本对象提供覆盖层形状的数据。覆盖层视图将保留这个对象。 |
- (MBMapPoint) mapPointForPoint: | (CGPoint) | point |
返回指定覆盖层视图中的点对应的地图点。
mapPointForPoint:
point | 你想要转换的视图坐标系中的点。 |
- (MBMapRect) mapRectForRect: | (CGRect) | rect |
返回指定覆盖层视图坐标系中矩形对应的地图矩形。
mapRectForRect:
rect | 接收者坐标系中指定的矩形 |
- (CGPoint) pointForMapPoint: | (MBMapPoint) | mapPoint |
返回指定地图点在覆盖层视图中对应的点。
pointForMapPoint:
mapPoint | 二维地图投影中的点。如果是是一个坐标值(经度和纬度),你可以使用 MBMapPointForCoordinate 函数把这个点转成地图点 |
- (CGRect) rectForMapRect: | (MBMapRect) | mapRect |
- (void) setNeedsDisplayInMapRect: | (MBMapRect) | mapRect |
在所有缩放等级下使给定地图矩形中的视图无效。
setNeedsDisplayInMapRect:
mapRect | 需要更新的覆盖层部分。这个值是地图矩形而不是视图中的矩形。你可以调用 mapRectForRect 方法把视图矩形 转成地图矩形。 |
- (void) setNeedsDisplayInMapRect: | (MBMapRect) | mapRect | |
zoomScale: | (MBZoomScale) | zoomScale | |
只在指定的缩放等级下使给定地图矩形中的视图无效。
setNeedsDisplayInMapRect:zoomScale:
mapRect | 需要更新的覆盖层部分。这个值是地图矩形而不是视图中的矩形。你可以调用 mapRectForRect 方法把视图矩形 转成地图矩形。 |
zoomScale | 你想让覆盖层失效的缩放等级。 |