【问题标题】:Integrate KML on offline Google Map iOS在离线 Google Map iOS 上集成 KML
【发布时间】:2018-09-28 10:53:10
【问题描述】:

我想在 iOS Swift4 中以编程方式创建一个 kml 文件。我浏览了很多关于 offline GoogleMaps 和将数据保存在 kml 文件中的信息,但我没有找到任何相关材料。简而言之,我只想在 kml 中存储一些 POI 并在 offline Googlemap 中显示它!

【问题讨论】:

    标签: ios google-maps swift4 kml offline


    【解决方案1】:

    KML 是一种 XML 文档方案。你可以用任何你认为合适的方式来写它。使用专用的 XML 编码器或使用字符串的暴力破解。

    完整的规范记录在https://developers.google.com/kml/documentation/kmlreference

    您可能会发现检查现有 KML 文件对于显示示例结构很有用。

    这是一个示例暴力编码器,用于对一组标记的地标进行编码……

    在写入文件之前,原始字符串需要进行 XML 转义。

    您可能会发现Google Toolbox for Mac 在这里很有用。

    class KMLWriter {
    
     func createKMLFormat(_ logs:[DDBLogEntry])->String {
    
            var kml = preamble()
    
            for log in logs {
                kml += placemarkForLog(log)
            }
    
            terminate(&kml)
    
            return kml
        }
    
        func placemarkForLog(_ log:DDBLogEntry)->String {
    
            let name = log.userContent ?? "empty"
            let time = log.dateCreated ?? Date()
            let timeStamp = Date.UTCDateFormatter.string(from: time)
    
            return "<Placemark>\n<name>\(name)</name>\n<Point><coordinates>\(log.longitude ?? 0),\(log.latitude ?? 0),\(log.elevation ?? 0)</coordinates></Point>\n<TimeStamp><when>\(timeStamp)</when></TimeStamp>\n</Placemark>\n"
    
        }
    
    
        func preamble()->String {
    
            return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http://www.opengis.net/kml/2.2\">\n<Document>\n"
    
        }
    
        func terminate(_ kml:inout String) {
    
            kml += "</Document>\n</kml>\n"
    
        }
    
    }
    

    【讨论】:

    • 这个文件对创建动态kml文件有帮助吗?
    • 它可以帮助我为我的用例创建一个 KML 文件,用于输出一组地标。我不知道你想做什么。
    • 我只想创建 Kml 文件。在 kml 中存储一些 POI 并在离线谷歌地图中显示!你能分享一下这方面的完整代码吗?
    • 我做到了。 KML 是 XML,XML 是文本文件。生成字符串并保存。这就是我给你看的。
    • 你能分享整个代码吗?因为我面临未知标识符错误!!
    猜你喜欢
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多