用于 kml 和文本文件的 UIActivityViewController
Posted
技术标签:
【中文标题】用于 kml 和文本文件的 UIActivityViewController【英文标题】:UIActivityViewController for a kml and text files 【发布时间】:2020-04-06 14:04:05 【问题描述】:我使用以下代码在 iPhone 应用程序上保存几个文件。一个是带有经度和纬度列表的纯文本文件。第二个文件与 KML 代码相同,以显示具有相同坐标的地标。该代码可按预期生成带有 .txt 扩展名的两个文件。我想做的是生成两个不同的扩展名,.txt 用于纯文本文件,.kml 用于第二个。 .kml 扩展名的原因是能够在 iPhone 上的 Google 地球应用程序中显示这些坐标。任何帮助将不胜感激...
let activityViewController = UIActivityViewController(activityItems: [kml, locations], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)``
两个数组activityViewController分别包含kml和文本代码。
【问题讨论】:
【参考方案1】:这是我解决它的方法...我确信这不是最有效的方法,但它有效:-)。仍在寻找一种更有效的方法,因为此方法会生成一个临时文件,从而增加了应用程序开销……此外,用户必须保存文件两次,一次用于 kml,一次用于文本文件。所以无论如何,希望它可以帮助其他人。
let kmlFile = "soofie_loc.kml"
let tmpDir = FileManager.default.temporaryDirectory
var fileURL : URL?
fileURL = tmpDir.appendingPathComponent(kmlFile)
let data = Data(kml.utf8)
do
try data.write(to: fileURL! , options: .atomic)
catch
print(error)
//let activityViewController = UIActivityViewController(activityItems: [kml, locations], applicationActivities: nil)
if ( !kmlOption )
let activityViewController = UIActivityViewController(activityItems: [locations], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
else
let activityViewController = UIActivityViewController(activityItems: [fileURL!], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
【讨论】:
以上是关于用于 kml 和文本文件的 UIActivityViewController的主要内容,如果未能解决你的问题,请参考以下文章
Google Earth中的地标文件kml与kmz有何区别?
GlobalMapper精品教程017:KML generator快速将坐标转为KML文件