如何为kml图层添加颜色。
图层在地图上显示,但所有颜色均为紫色,但在KM1文件中,每个KM1图层均提到了颜色。 有什么办法可以使用swift以编程方式向KML图层添加颜色
对此的任何帮助将不胜感激。
预先感谢。
答案 0 :(得分:0)
在处理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阅读器中即可