根据map zoomScale计算Text Rectangle区域的大小

时间:2012-05-11 20:54:48

标签: ios

我有自定义的mapOverlayView,它使用以下代码在地图上显示文字:

- (void)drawMapRect:(MKMapRect)mapRect
          zoomScale:(MKZoomScale)zoomScale
          inContext:(CGContextRef)ctx
{
       [super drawMapRect:mapRect zoomScale:zoomScale inContext:ctx];
        NSString *t=text2display;
      CGPoint point = CGPointMake(0,30);
        CGFloat fontSize = (3 * MKRoadWidthAtZoomScale(zoomScale)); 

        UIFont *font = [UIFont fontWithName:@"Helvetica-Bold" size:fontSize];

        // Draw outlined text.
        CGContextSetTextDrawingMode(ctx, kCGTextStroke);
        // Make the thickness of the outline a function of the font size in use.
        CGContextSetLineWidth(ctx, fontSize/18);
        CGContextSetStrokeColorWithColor(ctx, [[UIColor blackColor] CGColor]);
        [t drawAtPoint:point withFont:font];
        CGContextRestoreGState(ctx);
       UIGraphicsPopContext();

我还有一个相应的mapOverlay,用于创建文本的矩形区域:

- (MKMapRect)boundingMapRect
{

MKMapRect bounds = MKMapRectMake(upperLeft.x, upperLeft.y-Z , 2000, 2000);

    return bounds;
}

我需要文本的底线始终保持在同一级别。因此,我需要根据要绘制的文本大小更改上述代码中的Z值。

文字大小取决于地图的 zoomScale 是否可以知道地图的缩放比例?以便我可以计算文字的大小。

0 个答案:

没有答案