在给定纬度和经度的情况下,生成快照的最佳方法是什么,因此确实建议跳过MKMapView

编码农民

我正在我的APP中实现位置共享,这迫使我根据其纬度和经度相应地生成多个快照。因此,直接使用即可:

- (UIImage*) renderToImage:(MKMapView*) view
{
    UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

会给我带来未完成的快照。

我尝试使用以下代码:

 - (void)mapViewDidFinishRenderingMap:(MKMapView *)mapView fullyRendered:(BOOL)fullyRendered
    {
        // Image creation code here   
    }

但是,即使我知道快照已完全加载,也很难回到设置快照的正确单元格。

那么,是否有一些API可以直接从纬度和经度生成快照,而无需这些复杂的过程?预先谢谢你们!

Dylansturg

您可以MKMapSnapshotter用于此目的。它使您可以在以区域为中心的特定位置创建地图图像。

- (void)renderSnapshotForLocation:(CLLocationCoordinate2D)location {
    MKMapSnapshotOptions *options = [[MKMapSnapshotOptions alloc] init];
    options.size = CGSizeMake(200, 200); // whatever size you need
    options.scale = [[UIScreen mainScreen] scale];
    // size of region in degrees of latitude and longitude
    MKCoordinateSpan span = MKCoordinateSpanMake(0.25, 0.25);
    options.region = MKCoordinateRegionMake(location, span);

    MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
    [snapshotter startWithCompletionHandler:^(MKMapSnapshot * _Nullable snapshot, NSError * _Nullable error) {
        if(snapshot){
            UIImage *mapImage = snapshot.image;
            // do what you need with the image
            return;
        }

        NSLog(@"Error rendering snapshot for map at: (%f, %f)", options.region.center.latitude, options.region.center.longitude);
        NSLog(@"%@", error);
    }];
}

有一个漂亮的NSHipster好文章有关MKMapSnapshotter

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在给定纬度和经度的情况下计算地球凸包多边形面积

如何在给定纬度和经度的情况下提取海拔高度?

在给定经度和纬度的情况下,如何从DB到达地点

在给定中心点和半径的情况下获取边界框的经度/纬度值

在给定的当前点,距离和方位的情况下获取准确的经/纬度

Eigen和SVD在给定一组点的情况下找到最佳拟合平面

在Java中通过Google获取地址的经度和纬度的最佳方法是什么

在Android中从GPS获取经度和纬度的最佳方法是什么?

如何在没有循环的情况下找到给定经度和纬度的两点之间的距离?

默认情况下,使用并行bzip2和gzip的最佳方法是什么?

React Native:在Fetch(Url)请求中给定数据的情况下,制作按钮元素列表的最佳方法是什么?

在给定行ID的情况下,用于修改行条目的属性的正确更新语句是什么?

建议在给定没有旋转步骤的情况下提高阵列旋转的性能

在给定起始IP地址和结束IP地址的情况下,如何生成IP地址范围?

默认情况下,Spark sql模式中的可空性是建议性的。严格执行此规则的最佳方法是什么?

在没有`using` 关键字的情况下打开和关闭文件的最佳方法是什么

在不影响UI的情况下将外部几何加载到Three.js的最佳和最快方法是什么

在Razor Pages中,建议在没有UI的情况下运行操作的推荐方法是什么

如何在不使用Google地图的情况下获取特定城市或街道的经度和纬度?

如何在不使用GPS的情况下获取经度和纬度?

PYTHON:使用Python根据纬度/经度查找两点之间的距离的最佳方法是什么?

在这种情况下,处理AngularJS中事件的最佳方法是什么?

mysql:在这种情况下索引多列的最佳方法是什么

在不涉及XML的情况下,在gradle中定义BOM的最佳方法是什么?

在 Swift 中没有日期的情况下比较两次的最佳方法是什么

在这种情况下,绕过“ MemoryError”的最佳方法是什么?

在这种情况下使用索引匹配的最佳方法是什么?

在不使用颜色的情况下,在matplotlib中表示密度的最佳方法是什么?

在客户端上不安装任何内容的情况下显示报告的最佳方法是什么