【问题标题】:Add Colour to KML LAyer on Google maps在 Google 地图上为 KML 图层添加颜色
【发布时间】:2018-12-22 08:42:31
【问题描述】:

如何为 kml 图层添加颜色。

图层在地图上显示,但所有颜色均为紫色,但在 KMl 文件中,每个 KMl 图层的颜色都被提及。 有什么方法可以使用 swift 以编程方式向 KML 图层添加颜色

对此的任何帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: swift google-maps kml


    【解决方案1】:

    当您处理 KML 时,它基本上是一个 XML 文件,并且颜色被编码到文件中。如果要更改颜色,则需要先使用 AEXML 之类的工具将 KML 解析为 XML。

         let filePath = Bundle.main.path(forResource: "(your file name)", ofType: "kml")
    
         guard let data = try? Data(contentsOf: url) else {
         print("error loading kml from URL")
         return}
    
    
         var options = AEXMLOptions()
         options.parserSettings.shouldProcessNamespaces = true
         options.parserSettings.shouldReportNamespacePrefixes = true
         var kml = try AEXMLDocument(xml: data, options: options)
    

    现在您有了一个 XML 文件,您可以简单地使用该文件进行编辑

         kml.replacingOccurrences(of: "ff000000", with: "ff8f8f8f")
    

    您将“of”和“with”替换为您正在寻找并想要替换的颜色。

    额外提示: 您也可以使用相同的 .replacingOccurrences 方法来更改 kml 中的线宽。

    编辑: 进行编辑后,将 xml 转换为数据并将其传递给 Google Maps kml 渲染器。

         guard let kmlData = kml.data(using: .utf8) else {return}
         kmlParser = GMUKMLParser(data: kmlData)
         kmlParser.parse()
    
    
    
         renderer = GMUGeometryRenderer(map: mapView,
                                        geometries: kmlParser.placemarks,
                                        styles: kmlParser.styles)
    
         renderer.render()
    

    如果您需要帮助更好地理解 kml 的结构,只需将扩展名更改为 xml 并将其加载到您的浏览器或其他一些 xml 阅读器中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-28
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多