点击注释中的公开按钮后,您将得到名为信息的视图。在此屏幕的左上角,有一个小图像,它是您当前位置的快照。有人知道如何从地图中获取快照并在信息屏幕中显示 有一个图像,以便您可以轻松地知道我在说什么 请帮忙,欢迎所有答案。
答案 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];
}
我知道你现在得到了答案但是为了震撼他人,我在这里发帖 感谢