Добавить Цвет в KML LAyer на картах Google - PullRequest
0 голосов
/ 22 декабря 2018

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

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

, любая помощь по этому поводу будет принята.

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

1 Ответ

0 голосов
/ 22 декабря 2018

Когда вы имеете дело с 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")

где вы заменяете "of" и "with" на цвета, которые вы ищете и хотите заменить на.

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

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

     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 ридере

...