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) const22 bool 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