分享一个 mkmapview 截图
Posted
技术标签:
【中文标题】分享一个 mkmapview 截图【英文标题】:Sharing a mkmapview screenshot 【发布时间】:2013-07-22 11:15:39 【问题描述】:我有一张地图,上面有很多东西,我想以图片/屏幕截图的形式分享。
但是,据我所知,地图——Apple 的 ios 6 和 Google 的 iOS 5——都受版权保护,我不能简单地这样做。 我想到了谷歌静态地图 API,但我没有找到类似的苹果地图可用。 我怎样才能在不违反他们的规则并仍然使用 MapKit 框架的情况下分享地图视图图片?
谢谢!
【问题讨论】:
试试这个***.com/questions/2200736/… @Kalpesh 我可以毫无问题地截取屏幕截图,我的问题是如何合法分享。 【参考方案1】:我正在为共享 Apple 地图快照及其轨道信息的法律而苦苦挣扎。向 Apple 技术支持发送了询问,被重定向到 App Review 团队,到目前为止只得到了带有指南链接的答案。通过点击“法律”链接阅读许可证信息,是的,所有权利都是“保留的”。向 Tom Tom 发送请求,询问他们是否会对这种个人分享感到难过。
如果我们不能,Apple 的情况会相当悲惨,因为我不得不很快求助于 OSM 地图来显示轨道,而我的应用程序(我猜还有很多其他应用程序)中的 Apple 地图用例会归零。
对于答案,我正在考虑只保留一个选项来保存地图/轨道快照:“保存到相机胶卷”。如果用户可以随时截取屏幕截图,我可以只准备没有工具栏等的“更好”的图像,然后用户可以对相机胶卷中的图像做任何他们需要做的事情?我只提供他们可以自己裁剪的图像?我不需要关心他们是否以及如何分享?
所以这只是一个建议,看看它听起来是否合理......
【讨论】:
好吧,我还在为这个问题苦苦挣扎。实际上,我可以将图像保存在相机胶卷中。但是,用户很懒惰,如果我创建此版权“绕过”以重新打开他们的地图屏幕截图,那将只是分享之前的另一个令人沮丧的步骤。目前,我正在使用 Google 静态地图生成一些类似的布局。它与普通的 MKMapView 相似,但并不完全相同。好难过……【参考方案2】:您希望如何分享它? 如果通过电子邮件,那么您可以发送嵌入在电子邮件正文中的地图,因此它甚至是交互式的。
【讨论】:
是的,在电子邮件中有很多可能性,包括 html 嵌入,但我想要一些“通用”方法,我可以以图片的形式用于 twitter 或 facebook。 那么你必须使用一些开源地图或带有许可证的地图,允许你对其进行拍照和分发。【参考方案3】:- (UIImage *) imageFromView:(UIView *)view
UIGraphicsBeginImageContext(view.frame.size);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(currentContext, 0, view.size.height);
// passing negative values to flip the image
CGContextScaleCTM(currentContext, 1.0, -1.0);
[[appDelegate.scatterPlotView layer] renderInContext:currentContext];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshot;
只需将您的地图视图添加到 uiview 并将 pas uiview 添加到此方法,现在您可以将您的地图视图图像分享到任何地方。
【讨论】:
以上是关于分享一个 mkmapview 截图的主要内容,如果未能解决你的问题,请参考以下文章
使用 MKMapView 的 showShowsUserLocation 方法而不显示视图
MKMapView 和 setRegion:animated: 不更新地图视觉效果
如何在 MKMapView 中将图钉和地图保持在移动叠加层上方的中心