如何在单击注释中的显示后在Info中显示当前地图的快照

时间:2012-02-16 18:26:16

标签: iphone

点击注释中的公开按钮后,您将得到名为信息的视图。在此屏幕的左上角,有一个小图像,它是您当前位置的快照。有人知道如何从地图中获取快照并在信息屏幕中显示 有一个图像,以便您可以轻松地知道我在说什么 请帮忙,欢迎所有答案。 enter image description here

2 个答案:

答案 0 :(得分:0)

您想要使用CoreGraphics将地图渲染为图像。

if (UIGraphicsBeginImageContextWithOptions != NULL) {
    UIGraphicsBeginImageContextWithOptions(frameYouWantToCopy.size, NO, 0.0);
}
else {
    UIGraphicsBeginImageContext(frameYouWantToCopy.size);
}
[mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return result;

答案 1 :(得分:0)

我已经得到了解决这一问题的方法 当您单击信息按钮时,只需将地图设置为中心。并从那里拍摄图像 到目前为止我所做的是 在.h中拍摄了一个图像mapImageview,并使用该imageview存储注释的图像  首先记住你掉落的针脚的坐标 然后通过调用函数

来居中到该区域
-(void)setMaptocentre:(double)lat (double)long
 {
     MKCoordinateRegion region;
     region.center.latitude=lat;
     region.center.longitude=long;

     MKCoordinateSpan span;
    span.latitudeDelta=10;
    span.longitudeDelta=10;
    region.span =span;   
    [MapView setRegion:region animated:YES];
 } 

-(IBAction)infoPressed:(id)sender
 {
    [self setMaptocentre: rememberedLat rememberdLong];
   //here the rememberedlat and rememberedLong are the latitude and longitude you have 
   // saved at the time of pin drop. the function brings the pin to centre of map
   //  and then does the following part to take the image, where it includes the pin

   UIGraphicsBeginImageContext(CGRectMake(150, 200, 100, 100).size);
   CGContextRef c = UIGraphicsGetCurrentContext();
   CGContextTranslateCTM(c,-105, -130); 
   [self.view.layer renderInContext:c];
   UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();
   NSData *imageData = UIImagePNGRepresentation(viewImage);
   mapImageview.image = [UIImage imageWithData:imageData];
 }

我知道你现在得到了答案但是为了震撼他人,我在这里发帖 感谢