Marble
7 #include "KmlLinearRingTagWriter.h"
9 #include "GeoDataLinearRing.h"
10 #include "GeoDataTypes.h"
11 #include "GeoDataCoordinates.h"
12 #include "GeoWriter.h"
13 #include "KmlElementDictionary.h"
14 #include "KmlObjectTagWriter.h"
19 static GeoTagWriterRegistrar s_writerLookAt(
21 kml::kmlTag_nameSpaceOgc22 ),
22 new KmlLinearRingTagWriter );
24 bool KmlLinearRingTagWriter::write(
const GeoNode *node, GeoWriter& writer )
const
26 const GeoDataLinearRing *ring =
static_cast<const GeoDataLinearRing*
>( node );
28 if ( ring->size() > 1 )
30 writer.writeStartElement( kml::kmlTag_LinearRing );
31 KmlObjectTagWriter::writeIdentifiers( writer, ring );
32 writer.writeOptionalElement( kml::kmlTag_extrude,
QString::number( ring->extrude() ),
"0" );
33 writer.writeOptionalElement( kml::kmlTag_tessellate,
QString::number( ring->tessellate() ),
"0" );
34 writer.writeStartElement(
"coordinates" );
36 int size = ring->size() >= 3 && ring->first() != ring->last() ? ring->size() + 1 : ring->size();
38 for (
int i = 0; i < size; ++i )
40 GeoDataCoordinates coordinates = ring->at( i % ring->size() );
43 writer.writeCharacters(
" " );
46 qreal lon = coordinates.longitude( GeoDataCoordinates::Degree );
48 writer.writeCharacters(
"," );
49 qreal lat = coordinates.latitude( GeoDataCoordinates::Degree );
53 writer.writeEndElement();
54 writer.writeEndElement();
QString number(int n, int base)
QPair< QString, QString > QualifiedName
Object Name and Namespace Pair This type is intended to be used in a similar way to.
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Oct 4 2023 04:09:42 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.