Skip to content
Permalink
Browse files

Merge pull request #6644 from elpaso/gml-inverted-axis

Add axisOrder to QgsAbstractGeometry GML generators
  • Loading branch information
elpaso committed Mar 24, 2018
2 parents 2220a6e + 84bdc92 commit 5eb9ab48137203cf3438eeddd3b5bec72c923105
Showing with 200 additions and 106 deletions.
  1. +12 −2 python/core/geometry/qgsabstractgeometry.sip.in
  2. +2 −2 python/core/geometry/qgscircularstring.sip.in
  3. +2 −2 python/core/geometry/qgscompoundcurve.sip.in
  4. +2 −2 python/core/geometry/qgscurvepolygon.sip.in
  5. +2 −2 python/core/geometry/qgsgeometrycollection.sip.in
  6. +2 −2 python/core/geometry/qgslinestring.sip.in
  7. +2 −2 python/core/geometry/qgsmulticurve.sip.in
  8. +2 −2 python/core/geometry/qgsmultilinestring.sip.in
  9. +2 −2 python/core/geometry/qgsmultipoint.sip.in
  10. +2 −2 python/core/geometry/qgsmultipolygon.sip.in
  11. +2 −2 python/core/geometry/qgsmultisurface.sip.in
  12. +2 −2 python/core/geometry/qgspoint.sip.in
  13. +1 −1 python/core/geometry/qgstriangle.sip.in
  14. +20 −2 src/core/geometry/qgsabstractgeometry.h
  15. +4 −4 src/core/geometry/qgscircularstring.cpp
  16. +2 −2 src/core/geometry/qgscircularstring.h
  17. +4 −4 src/core/geometry/qgscompoundcurve.cpp
  18. +2 −2 src/core/geometry/qgscompoundcurve.h
  19. +6 −6 src/core/geometry/qgscurvepolygon.cpp
  20. +2 −2 src/core/geometry/qgscurvepolygon.h
  21. +4 −4 src/core/geometry/qgsgeometrycollection.cpp
  22. +2 −2 src/core/geometry/qgsgeometrycollection.h
  23. +10 −4 src/core/geometry/qgsgeometryutils.cpp
  24. +3 −2 src/core/geometry/qgsgeometryutils.h
  25. +4 −4 src/core/geometry/qgslinestring.cpp
  26. +2 −2 src/core/geometry/qgslinestring.h
  27. +4 −4 src/core/geometry/qgsmulticurve.cpp
  28. +2 −2 src/core/geometry/qgsmulticurve.h
  29. +4 −4 src/core/geometry/qgsmultilinestring.cpp
  30. +2 −2 src/core/geometry/qgsmultilinestring.h
  31. +4 −4 src/core/geometry/qgsmultipoint.cpp
  32. +2 −2 src/core/geometry/qgsmultipoint.h
  33. +4 −4 src/core/geometry/qgsmultipolygon.cpp
  34. +2 −2 src/core/geometry/qgsmultipolygon.h
  35. +4 −4 src/core/geometry/qgsmultisurface.cpp
  36. +2 −2 src/core/geometry/qgsmultisurface.h
  37. +12 −4 src/core/geometry/qgspoint.cpp
  38. +2 −2 src/core/geometry/qgspoint.h
  39. +2 −2 src/core/geometry/qgstriangle.cpp
  40. +1 −1 src/core/geometry/qgstriangle.h
  41. +21 −2 tests/src/core/testqgsgeometry.cpp
  42. +32 −0 tests/src/core/testqgsgeometryutils.cpp
@@ -65,6 +65,14 @@ class QgsAbstractGeometry
MaximumDifference
};

enum AxisOrder
{

XY,

YX
};

QgsAbstractGeometry();
%Docstring
Constructor for QgsAbstractGeometry.
@@ -195,13 +203,14 @@ Returns a WKT representation of the geometry.
.. seealso:: :py:func:`asJson`
%End

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const = 0;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const = 0;
%Docstring
Returns a GML2 representation of the geometry.

:param doc: DOM document
:param precision: number of decimal places for coordinates
:param ns: XML namespace
:param axisOrder: Axis order for generated GML

.. seealso:: :py:func:`asWkb`

@@ -212,13 +221,14 @@ Returns a GML2 representation of the geometry.
.. seealso:: :py:func:`asJson`
%End

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const = 0;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const = 0;
%Docstring
Returns a GML3 representation of the geometry.

:param doc: DOM document
:param precision: number of decimal places for coordinates
:param ns: XML namespace
:param axisOrder: Axis order for generated GML

.. seealso:: :py:func:`asWkb`

@@ -46,9 +46,9 @@ class QgsCircularString: QgsCurve

virtual QString asWkt( int precision = 17 ) const;

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -46,9 +46,9 @@ class QgsCompoundCurve: QgsCurve

virtual QString asWkt( int precision = 17 ) const;

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -50,9 +50,9 @@ class QgsCurvePolygon: QgsSurface

virtual QString asWkt( int precision = 17 ) const;

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -105,9 +105,9 @@ Removes a geometry from the collection.

virtual QString asWkt( int precision = 17 ) const;

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -209,9 +209,9 @@ segment in the line.

virtual QString asWkt( int precision = 17 ) const;

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -31,9 +31,9 @@ class QgsMultiCurve: QgsGeometryCollection

virtual bool fromWkt( const QString &wkt );

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -30,9 +30,9 @@ class QgsMultiLineString: QgsMultiCurve

virtual bool fromWkt( const QString &wkt );

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -32,9 +32,9 @@ class QgsMultiPoint: QgsGeometryCollection

virtual void clear();

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -29,9 +29,9 @@ class QgsMultiPolygon: QgsMultiSurface

virtual bool fromWkt( const QString &wkt );

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -31,9 +31,9 @@ class QgsMultiSurface: QgsGeometryCollection

virtual bool fromWkt( const QString &wkt );

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -349,9 +349,9 @@ Example:

virtual QString asWkt( int precision = 17 ) const;

virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;

virtual QString asJson( int precision = 17 ) const;

@@ -66,7 +66,7 @@ Construct a QgsTriangle from three QPointF.
virtual bool fromWkt( const QString &wkt );


virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;


virtual QgsPolygon *surfaceToPolygon() const /Factory/;
@@ -104,6 +104,22 @@ class CORE_EXPORT QgsAbstractGeometry
};
Q_ENUM( SegmentationToleranceType )

//! Axis order for GML generation
enum AxisOrder
{

/**
* X comes before Y (or lon before lat)
*/
XY = 0,

/**
* Y comes before X (or lat before lon)
*/
YX
};
Q_ENUM( QgsAbstractGeometry::AxisOrder )

/**
* Constructor for QgsAbstractGeometry.
*/
@@ -221,24 +237,26 @@ class CORE_EXPORT QgsAbstractGeometry
* \param doc DOM document
* \param precision number of decimal places for coordinates
* \param ns XML namespace
* \param axisOrder Axis order for generated GML
* \see asWkb()
* \see asWkt()
* \see asGml3()
* \see asJson()
*/
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const = 0;
virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const = 0;

/**
* Returns a GML3 representation of the geometry.
* \param doc DOM document
* \param precision number of decimal places for coordinates
* \param ns XML namespace
* \param axisOrder Axis order for generated GML
* \see asWkb()
* \see asWkt()
* \see asGml2()
* \see asJson()
*/
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const = 0;
virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const = 0;

/**
* Returns a GeoJSON representation of the geometry.
@@ -301,15 +301,15 @@ QString QgsCircularString::asWkt( int precision ) const
return wkt;
}

QDomElement QgsCircularString::asGml2( QDomDocument &doc, int precision, const QString &ns ) const
QDomElement QgsCircularString::asGml2( QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder ) const
{
// GML2 does not support curves
std::unique_ptr< QgsLineString > line( curveToLine() );
QDomElement gml = line->asGml2( doc, precision, ns );
QDomElement gml = line->asGml2( doc, precision, ns, axisOrder );
return gml;
}

QDomElement QgsCircularString::asGml3( QDomDocument &doc, int precision, const QString &ns ) const
QDomElement QgsCircularString::asGml3( QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder ) const
{
QgsPointSequence pts;
points( pts );
@@ -321,7 +321,7 @@ QDomElement QgsCircularString::asGml3( QDomDocument &doc, int precision, const Q

QDomElement elemSegments = doc.createElementNS( ns, QStringLiteral( "segments" ) );
QDomElement elemArcString = doc.createElementNS( ns, QStringLiteral( "ArcString" ) );
elemArcString.appendChild( QgsGeometryUtils::pointsToGML3( pts, doc, precision, ns, is3D() ) );
elemArcString.appendChild( QgsGeometryUtils::pointsToGML3( pts, doc, precision, ns, is3D(), axisOrder ) );
elemSegments.appendChild( elemArcString );
elemCurve.appendChild( elemSegments );
return elemCurve;
@@ -48,8 +48,8 @@ class CORE_EXPORT QgsCircularString: public QgsCurve

QByteArray asWkb() const override;
QString asWkt( int precision = 17 ) const override;
QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
QString asJson( int precision = 17 ) const override;

bool isEmpty() const override;
@@ -262,15 +262,15 @@ QString QgsCompoundCurve::asWkt( int precision ) const
return wkt;
}

QDomElement QgsCompoundCurve::asGml2( QDomDocument &doc, int precision, const QString &ns ) const
QDomElement QgsCompoundCurve::asGml2( QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder ) const
{
// GML2 does not support curves
std::unique_ptr< QgsLineString > line( curveToLine() );
QDomElement gml = line->asGml2( doc, precision, ns );
QDomElement gml = line->asGml2( doc, precision, ns, axisOrder );
return gml;
}

QDomElement QgsCompoundCurve::asGml3( QDomDocument &doc, int precision, const QString &ns ) const
QDomElement QgsCompoundCurve::asGml3( QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder ) const
{
QDomElement compoundCurveElem = doc.createElementNS( ns, QStringLiteral( "CompositeCurve" ) );

@@ -280,7 +280,7 @@ QDomElement QgsCompoundCurve::asGml3( QDomDocument &doc, int precision, const QS
for ( const QgsCurve *curve : mCurves )
{
QDomElement curveMemberElem = doc.createElementNS( ns, QStringLiteral( "curveMember" ) );
QDomElement curveElem = curve->asGml3( doc, precision, ns );
QDomElement curveElem = curve->asGml3( doc, precision, ns, axisOrder );
curveMemberElem.appendChild( curveElem );
compoundCurveElem.appendChild( curveMemberElem );
}
@@ -48,8 +48,8 @@ class CORE_EXPORT QgsCompoundCurve: public QgsCurve

QByteArray asWkb() const override;
QString asWkt( int precision = 17 ) const override;
QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", const QgsAbstractGeometry::AxisOrder &axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const override;
QString asJson( int precision = 17 ) const override;

//curve interface
@@ -339,7 +339,7 @@ QString QgsCurvePolygon::asWkt( int precision ) const
return wkt;
}

QDomElement QgsCurvePolygon::asGml2( QDomDocument &doc, int precision, const QString &ns ) const
QDomElement QgsCurvePolygon::asGml2( QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder ) const
{
// GML2 does not support curves
QDomElement elemPolygon = doc.createElementNS( ns, QStringLiteral( "Polygon" ) );
@@ -349,7 +349,7 @@ QDomElement QgsCurvePolygon::asGml2( QDomDocument &doc, int precision, const QSt

QDomElement elemOuterBoundaryIs = doc.createElementNS( ns, QStringLiteral( "outerBoundaryIs" ) );
std::unique_ptr< QgsLineString > exteriorLineString( exteriorRing()->curveToLine() );
QDomElement outerRing = exteriorLineString->asGml2( doc, precision, ns );
QDomElement outerRing = exteriorLineString->asGml2( doc, precision, ns, axisOrder );
outerRing.toElement().setTagName( QStringLiteral( "LinearRing" ) );
elemOuterBoundaryIs.appendChild( outerRing );
elemPolygon.appendChild( elemOuterBoundaryIs );
@@ -358,23 +358,23 @@ QDomElement QgsCurvePolygon::asGml2( QDomDocument &doc, int precision, const QSt
{
QDomElement elemInnerBoundaryIs = doc.createElementNS( ns, QStringLiteral( "innerBoundaryIs" ) );
interiorLineString.reset( interiorRing( i )->curveToLine() );
QDomElement innerRing = interiorLineString->asGml2( doc, precision, ns );
QDomElement innerRing = interiorLineString->asGml2( doc, precision, ns, axisOrder );
innerRing.toElement().setTagName( QStringLiteral( "LinearRing" ) );
elemInnerBoundaryIs.appendChild( innerRing );
elemPolygon.appendChild( elemInnerBoundaryIs );
}
return elemPolygon;
}

QDomElement QgsCurvePolygon::asGml3( QDomDocument &doc, int precision, const QString &ns ) const
QDomElement QgsCurvePolygon::asGml3( QDomDocument &doc, int precision, const QString &ns, const QgsAbstractGeometry::AxisOrder &axisOrder ) const
{
QDomElement elemCurvePolygon = doc.createElementNS( ns, QStringLiteral( "Polygon" ) );

if ( isEmpty() )
return elemCurvePolygon;

QDomElement elemExterior = doc.createElementNS( ns, QStringLiteral( "exterior" ) );
QDomElement curveElem = exteriorRing()->asGml3( doc, precision, ns );
QDomElement curveElem = exteriorRing()->asGml3( doc, precision, ns, axisOrder );
if ( curveElem.tagName() == QLatin1String( "LineString" ) )
{
curveElem.setTagName( QStringLiteral( "LinearRing" ) );
@@ -385,7 +385,7 @@ QDomElement QgsCurvePolygon::asGml3( QDomDocument &doc, int precision, const QSt
for ( int i = 0, n = numInteriorRings(); i < n; ++i )
{
QDomElement elemInterior = doc.createElementNS( ns, QStringLiteral( "interior" ) );
QDomElement innerRing = interiorRing( i )->asGml3( doc, precision, ns );
QDomElement innerRing = interiorRing( i )->asGml3( doc, precision, ns, axisOrder );
if ( innerRing.tagName() == QLatin1String( "LineString" ) )
{
innerRing.setTagName( QStringLiteral( "LinearRing" ) );

0 comments on commit 5eb9ab4

Please sign in to comment.
You can’t perform that action at this time.