Добавить цвет в KML LAyer на картах Google

Как я могу добавить цвет к слою kml.

слой отображается на карте, но цвет фиолетовый для всех, но в файлах KML упоминается цвет для каждого слоя KML. есть ли способ программно добавить цвет в слой KML, используя swift

любая помощь относительно этого будет оценена.

заранее спасибо.


person shahzaib    schedule 22.12.2018    source источник


Ответы (1)


Когда вы имеете дело с KML, это в основном файл XML, и цвета закодированы в файле. Если вы хотите изменить цвета, вам нужно сначала преобразовать KML в XML, используя что-то вроде AEXML.

     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")

где вы заменяете «из» и «с» цветами, которые вы ищете и хотите заменить.

Дополнительный совет: вы можете использовать тот же метод .replacingOccurrences, чтобы изменить ширину линии и в kml.

РЕДАКТИРОВАТЬ: После того, как вы внесете свои изменения, преобразуйте xml в данные и передайте их средству визуализации kml Google Maps.

     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.

person Rob.R    schedule 22.12.2018