2

我想用混合模式绘制地图叠加。但是这段代码只是在没有任何混合模式的情况下绘制白色叠加层。我做错了什么?

- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context
{
    UIGraphicsPushContext(context);

    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
    CGContextSetBlendMode(context, kCGBlendModeSaturation);
    CGContextFillRect(context, [self rectForMapRect:mapRect]);

    UIGraphicsPopContext();
}

这是我想要的结果。我在 Photoshop 中制作了三层:

  1. 原谷歌地图。
  2. 具有饱和度混合模式的黑色图层。
  3. 具有排除混合模式的白色图层。 在此处输入图像描述
4

2 回答 2

2

我建议使用 openstreetmap 和 wms 服务器或使用 mapbox 之类的服务设计您自己的地图,而不是将此自定义地图添加为叠加层。

以下是如何将其他地图添加为叠加层的示例:https ://github.com/mtigas/iOS-MapLayerDemo

于 2013-01-06T21:42:18.727 回答
1

我猜你不能直接访问真正的地图视图上下文。因此,您可能必须拍摄地图的“屏幕截图”并在您的上下文中再次绘制它。之后,您当然可以应用您的效果。

于 2012-06-05T13:40:52.327 回答