1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org> 4 // 5 6 #include "KmlStyleMapTagWriter.h" 7 8 #include "GeoDataStyleMap.h" 9 #include "GeoDataTypes.h" 10 #include "GeoWriter.h" 11 #include "KmlElementDictionary.h" 12 #include "KmlObjectTagWriter.h" 13 14 namespace Marble 15 { 16 17 static GeoTagWriterRegistrar s_writerStyleMap( 18 GeoTagWriter::QualifiedName( GeoDataTypes::GeoDataStyleMapType, 19 kml::kmlTag_nameSpaceOgc22 ), 20 new KmlStyleMapTagWriter ); 21 write(const GeoNode * node,GeoWriter & writer) const22bool KmlStyleMapTagWriter::write( const GeoNode *node, GeoWriter& writer ) const 23 { 24 const GeoDataStyleMap *map = static_cast<const GeoDataStyleMap*>( node ); 25 26 writer.writeStartElement( kml::kmlTag_StyleMap ); 27 KmlObjectTagWriter::writeIdentifiers( writer, map ); 28 29 QMapIterator<QString, QString> iter( *map ); 30 while ( iter.hasNext() ) { 31 iter.next(); 32 writer.writeStartElement( kml::kmlTag_Pair ); 33 writer.writeElement( kml::kmlTag_key, iter.key() ); 34 writer.writeElement( kml::kmlTag_styleUrl, iter.value() ); 35 writer.writeEndElement(); 36 } 37 38 writer.writeEndElement(); 39 40 return true; 41 } 42 43 } 44