31 #include <QDomElement>
32 #include <QStringList>
41 class CORE_EXPORT
QgsGml :
public QObject
46 const QString& typeName,
47 const QString& geometryAttribute,
67 QMap<QgsFeatureId, QgsFeature* >
featuresMap()
const {
return mFeatures; }
70 QMap<QgsFeatureId, QString >
idsMap()
const {
return mIdMap; }
81 void handleProgressEvent( qint64 progress, qint64 totalSteps );
84 void dataReadProgress(
int progress );
85 void totalStepsUpdate(
int totalSteps );
87 void dataProgressAndSteps(
int progress,
int totalSteps );
106 void startElement(
const XML_Char* el,
const XML_Char** attr );
107 void endElement(
const XML_Char* el );
108 void characters(
const XML_Char* chars,
int len );
109 static void start(
void* data,
const XML_Char* el,
const XML_Char** attr )
111 static_cast<QgsGml*
>( data )->startElement( el, attr );
113 static void end(
void* data,
const XML_Char* el )
115 static_cast<QgsGml*
>( data )->endElement( el );
117 static void chars(
void* data,
const XML_Char* chars,
int len )
119 static_cast<QgsGml*
>( data )->characters( chars, len );
129 int readEpsgFromAttribute(
int& epsgNr,
const XML_Char** attr )
const;
135 QString readAttribute(
const QString& attributeName,
const XML_Char** attr )
const;
138 int createBBoxFromCoordinateString(
QgsRectangle &bb,
const QString& coordString )
const;
144 int pointsFromCoordinateString( QList<QgsPoint>& points,
const QString& coordString )
const;
152 int pointsFromPosListString( QList<QgsPoint>& points,
const QString& coordString,
int dimension )
const;
154 int pointsFromString( QList<QgsPoint>& points,
const QString& coordString )
const;
155 int getPointWKB(
unsigned char** wkb,
int*
size,
const QgsPoint& )
const;
156 int getLineWKB(
unsigned char** wkb,
int*
size,
const QList<QgsPoint>& lineCoordinates )
const;
157 int getRingWKB(
unsigned char** wkb,
int*
size,
const QList<QgsPoint>& ringCoordinates )
const;
163 int createMultiLineFromFragments();
164 int createMultiPointFromFragments();
165 int createPolygonFromFragments();
166 int createMultiPolygonFromFragments();
168 int totalWKBFragmentSize()
const;
171 QWidget* findMainWindow()
const;
177 void calculateExtentFromFeatures();
QgsRectangle mCurrentExtent
A rectangle specified with double values.
enum QgsApplication::ENDIAN endian_t
constants for endian-ness
QgsApplication::endian_t mEndian
QString mGeometryAttribute
Name of geometry attribute.
static void start(void *data, const XML_Char *el, const XML_Char **attr)
QgsFeature * mCurrentFeature
ParseMode modeStackPop()
Safely (if empty) pop from mode stack.
Container of fields for a vector layer.
WkbType
Used for symbology operations.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
QMap< QgsFeatureId, QString > idsMap() const
Get feature ids map.
QString mCurrentFeatureId
QString mCoordinateSeparator
Coordinate separator for coordinate strings.
This class reads data from a WFS server or alternatively from a GML file.
unsigned char * mCurrentWKB
The total WKB for a feature.
ParseMode modeStackTop()
Get safely (if empty) top from mode stack.
static void chars(void *data, const XML_Char *chars, int len)
QString mTupleSeparator
Tuple separator for coordinate strings.
QVector< QVariant > mCurrentAttributes
A class to represent a point geometry.
static void end(void *data, const XML_Char *el)
QStack< ParseMode > mParseModeStack
Keep track about the most important nested elements.
ParseMode mCoorMode
Coordinates mode, coordinate or posList.
QMap< QgsFeatureId, QgsFeature * > featuresMap() const
Get parsed features for given type name.
QMap< QgsFeatureId, QgsFeature * > mFeatures
The features of the layer, map of feature maps for each feature type.
Class for storing a coordinate reference system (CRS)
bool mFinished
True if the request is finished.
QList< QList< unsigned char * > > mCurrentWKBFragments
WKB intermediate storage during parsing.
int mEpsg
EPSG of parsed features geometries.
QgsRectangle mExtent
Bounding box of the layer.
QList< QList< int > > mCurrentWKBFragmentSizes
Similar to mCurrentWKB, but only the size.
int mDimension
Number of dimensions in pos or posList.
QMap< QString, QPair< int, QgsField > > mThematicAttributes
int mCurrentWKBSize
The total WKB size for a feature.
QMap< QgsFeatureId, QString > mIdMap
Stores the relation between provider ids and WFS server ids.
QString mStringCash
This contains the character data if an important element has been encountered.