答案 0 :(得分:4)
在iOS 7中使用MKMap Snapshotter。来自NSHipster:
MKMapSnapshotOptions *options = [[MKMapSnapshotOptions alloc] init];
options.region = self.mapView.region;
options.size = self.mapView.frame.size;
options.scale = [[UIScreen mainScreen] scale];
NSURL *fileURL = [NSURL fileURLWithPath:@"path/to/snapshot.png"];
MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
[snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
if (error) {
NSLog(@"[Error] %@", error);
return;
}
UIImage *image = snapshot.image;
NSData *data = UIImagePNGRepresentation(image);
[data writeToURL:fileURL atomically:YES];
}];
在iOS7之前执行以下操作之一:
这是实际使用的最小参数量: http://maps.googleapis.com/maps/api/staticmap?center=40.416878,-3.703530&zoom=15&size=290x179&sensor=false
参数摘要:
center
:这可以是一个地址,或纬度,经度对,最多6位小数(超过6会被忽略)。format
:png8(默认),png24,git,jpg,jpg-baseline。language
:使用任何语言。如果请求不可用,将使用默认值。maptype
:以下其中一项:路线图,卫星,混合动力,地形。scale
:1,2,4。使用2可以在视网膜显示屏上返回两倍的像素。 4仅限于高级客户。
对于1和2,非付费解决方案限制为640x640。sensor
:真或假。强制性。它表示是否使用设备找到用户。size
:大小(以像素为单位)。zoom
:0(整个星球)到21。还可以添加多个多边形,自定义标记以及为地图设置样式。
NSData* data = [NSData dataWithContentsOfURL:@"http://maps.googleap..."];
UIImage *img = [UIImage imageWithData:data];
答案 1 :(得分:2)
您可以使用Google Maps Static API生成图片,而不是加载整个UIMapView
。