如何在完整地图的 mapbox ios sdk 中拍摄快照

how to take snapshot in mapbox ios sdk of full map

/** @name 捕获地图视图的快照 */

/** 拍摄地图视图的快照。 默认情况下,还会捕获包含任何可见注释的叠加层。 @return 描绘地图视图的图像。 */

- (UIImage *)takeSnapshot;

/** 拍摄地图视图的快照。

@param includeOverlay 是否包含包含任何可见注释的叠加层。

@return 描绘地图视图的图像。 */

- (UIImage *)takeSnapshotAndIncludeOverlay:(BOOL)includeOverlay;

这取决于您所处的缩放级别。如果它尽可能地缩小(从 z0-2 的某处,取决于设备大小),世界将是 2565121024px 的一侧。如果进一步放大,比如在 z17 处的街道级别,则您在谈论图像每一侧的 2 ^ 17 * 25633,554,432px。这就是为什么地图是平铺绘制的,也是默认情况下不内置此功能的原因。

实际上,您可以在 RMMapView 和 returns UIImage[ 中使用名为 takeSnapshot 的方法=16=] 所以你可以随心所欲地使用它,这里是一个模糊我的快照的例子

-(UIImage*) performScreenshotAndBlur
{
    UIImage *blurImage = self.mapView.takeSnapshot;
    blurImage = [blurImage applyBlurWithRadius:10 tintColor:[UIColor colorWithRed:0.067 green:0.067 blue:0.067 alpha:0.2] saturationDeltaFactor:1.8 maskImage:nil];
    return blurImage;
}