我试图在使用MKOverlayRenderer的地图上绘制文本。我有一个现有的,功能强大的MKOverlayRenderer呈现一组点,所以我唯一的问题就是为' - (void)drawMapRect:(MKMapRect)中的每个点渲染一段文本mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)上下文“功能。使用MKOverlayRenderer绘制文本
我通过SO和Google发现的所有解决方案均使用注释或UILabels。但是我想让文本绘图代码与渲染点的代码位于同一位置。也有大约10000点,虽然我确保它不是在同一时间通过缩放和边界检查来渲染它们。我确信我不想用其他解决方案创建10,000个对象。
这是当前的测试代码,我必须尝试渲染“文本文本”项目之一。它是我在网上找到的一些方法的组合,用于呈现某些东西。
CGPoint* point = self.pointList.pointArray + pointIndex;
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSelectFont(context, "Helvetica", 20.f, kCGEncodingFontSpecific);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, xform);
CGContextShowTextAtPoint(context, point->x, point->y, "Test Text 1", 11);
CGContextShowTextAtPoint(context, 10, 10, "Test Text 2", 11);
CGContextShowText(context, "Test Text 4", 11);
UIFont* font = [UIFont fontWithName:@"Helvetica" size:12.0];
[@"Test Text 3" drawAtPoint:*point withFont:font];
这是我的第一个SO问题,所以对不起,如果它不是正确的。
编辑:我刚看到放大的文字,只要我可以去,所以意识到我没有计算缩放比例。假设我需要在渲染之前进行缩放转换来解决它。目前还没有解决,但我想我正在路上。