gpt4 book ai didi

objective-c - map 预览图

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:31 24 4
gpt4 key购买 nike

如何制作像 iPhone map 应用程序中那样的预览图标?

Screenshot http://img835.imageshack.us/img835/1619/img0016x.png

有这个功能吗?

最佳答案

在 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 之前执行以下操作之一:

  • 添加实时 map 并禁用交互。
  • 使用 Google Static Maps API(如下所述)。
  • 创建一个 MKMapView 并将其渲染为图像。我试过了(见之前的编辑)但无法加载图 block 。我尝试调用 needsLayout 和其他方法,但没有用。

Apple 与 Google 的交易比免费的 API 更可靠,但从好的方面来说,它真的很简单。文档位于 http://code.google.com/apis/maps/documentation/staticmaps/

这是实际使用的最少参数量: http://maps.googleapis.com/maps/api/staticmap?center=40.416878,-3.703530&zoom=15&size=290x179&sensor=false

参数汇总:

  • center:这可以是一个地址,或者最多 6 位小数的纬度、经度对(超过 6 位将被忽略)。
  • 格式:png8(默认)、png24、git、jpg、jpg-baseline。
  • language:使用任何语言。如果请求不可用,将使用默认值。
  • maptype:以下之一:路线图、卫星、混合、地形。
  • 规模:1,2,4。使用 2 返回视网膜显示器上两倍的像素数量。 4 仅限高级客户。 1 和 2 的非付费分辨率限制为 640x640。
  • 传感器:真或假。强制的。它指示用户是否正在使用设备定位。
  • size:以像素为单位的大小。
  • zoom:0(整个星球)到 21。

还有一些可以添加多边形、自定义标记和设置 map 样式。

  NSData* data = [NSData dataWithContentsOfURL:@"http://maps.googleap..."];
UIImage *img = [UIImage imageWithData:data];

关于objective-c - map 预览图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com