SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
vectorexport.h
Go to the documentation of this file.
1
25#ifndef OPENSWMMVIS_IO_VECTOREXPORT_H
26#define OPENSWMMVIS_IO_VECTOREXPORT_H
27
29
30#include <QPair>
31#include <QPointF>
32#include <QString>
33#include <QStringList>
34#include <QVariantList>
35#include <QVector>
36
37#include <functional>
38
39namespace openswmmvis::io
40{
41
45
51 QString name;
52 QString label;
53 QString unit;
57 QVector<openswmmvis::feature::FieldChoice> choices;
58
63 [[nodiscard]] QString description() const
64 {
65 return unit.isEmpty() ? label : QStringLiteral("%1 (%2)").arg(label, unit);
66 }
67};
68
73struct ExportRow {
76 QVector<QPointF> points;
77 QVariantList values;
78};
79
85 QString name;
87 QVector<ExportField> fields;
88 QVector<ExportRow> rows;
90 QStringList skipped;
91};
92
96 QString driver;
99 QString destination;
100 QString sourceSrsWkt;
104};
105
109 QStringList files;
111 QVector<QPair<QString, QString>> layers;
112 QStringList warnings;
113 QString error;
114};
115
118using ExportProgress = std::function<bool(int done, int total, const QString &what)>;
119
132bool exportVectorTables(const QVector<ExportTable> &tables, const ExportOptions &options,
134
140 QString path;
141 QString layerName;
142 QString outputName;
144 QVector<qint64> fids;
145};
146
159
171bool exportRaster(const QString &sourcePath, const QString &destination,
172 const QString &targetSrsWkt, const ExportProgress &progress,
174
181[[nodiscard]] QString exportPathFor(const ExportOptions &options, const QString &tableName);
182
192[[nodiscard]] QStringList shortFieldNames(const QStringList &names, int maxLen = 10);
193
194} // namespace openswmmvis::io
195
196#endif // OPENSWMMVIS_IO_VECTOREXPORT_H
Schema and feature value types for editable feature layers (workplans/MESH_DIALOG_TABS_AND_FEATURE_LA...
QPointer< OpenSWMMVisLayer > source
Definition maskclipresolver.cpp:34
int total
Definition meshassignmentsampling.cpp:34
std::function< void(int, int)> report
Definition meshassignmentsampling.cpp:33
FieldType
The attribute types an authored schema may declare.
Definition featuretypes.h:48
Definition gdaldrivers.h:29
QString exportPathFor(const ExportOptions &options, const QString &tableName)
Compute a table output path using the curated format metadata.
Definition vectorexport.cpp:516
bool exportVectorTables(const QVector< ExportTable > &tables, const ExportOptions &options, const ExportProgress &progress, ExportReport *report)
Write tables to options.destination.
Definition vectorexport.cpp:528
std::function< bool(int done, int total, const QString &what)> ExportProgress
Definition vectorexport.h:118
bool exportRaster(const QString &sourcePath, const QString &destination, const QString &targetSrsWkt, const ExportProgress &progress, ExportReport *report)
Write raster sourcePath to GeoTIFF destination, warped to targetSrsWkt when it is set (plan Q10)....
Definition vectorexport.cpp:756
ExportGeometry
The one geometry kind of an exported table.
Definition vectorexport.h:44
QStringList shortFieldNames(const QStringList &names, int maxLen=10)
Shapefile field names: at most maxLen characters and unique (case-insensitively), in order....
Definition vectorexport.cpp:500
bool exportVectorLayer(const VectorLayerSource &source, const ExportOptions &options, const ExportProgress &progress, ExportReport *report)
Translate source into options.destination, reprojecting when options.targetSrsWkt is set....
Definition vectorexport.cpp:631
const ConstraintAuditOptions & options
Definition constraintaudit.cpp:34
One attribute column of an ExportTable.
Definition vectorexport.h:50
openswmmvis::feature::FieldType type
Definition vectorexport.h:54
QString name
Output name: an import key or a sanitised label (ยง8.4, Q9).
Definition vectorexport.h:51
QString label
Full readable label, e.g. "Max Depth".
Definition vectorexport.h:52
QVector< openswmmvis::feature::FieldChoice > choices
Definition vectorexport.h:57
QString description() const
Format the column description for GIS metadata.
Definition vectorexport.h:63
QString unit
e.g. "ft"; empty when unitless.
Definition vectorexport.h:53
Where and how to write.
Definition vectorexport.h:95
QString destination
Definition vectorexport.h:99
QString sourceSrsWkt
CRS of the table coordinates; may be empty.
Definition vectorexport.h:100
QString driver
GDAL short name (gdalcaps::vectorWriteFormats()).
Definition vectorexport.h:96
QString targetSrsWkt
Definition vectorexport.h:103
What happened.
Definition vectorexport.h:108
QVector< QPair< QString, QString > > layers
Definition vectorexport.h:111
QStringList warnings
Skipped objects, format notes.
Definition vectorexport.h:112
QStringList files
Every path created, in creation order.
Definition vectorexport.h:109
QString error
Empty on success; "Cancelled" when stopped.
Definition vectorexport.h:113
One feature: its coordinates and one value per field.
Definition vectorexport.h:73
QVector< QPointF > points
Definition vectorexport.h:76
QVariantList values
Parallel to ExportTable::fields; invalid = null.
Definition vectorexport.h:77
One output layer (one SWMM object type, one mesh element kind).
Definition vectorexport.h:84
QVector< ExportField > fields
Definition vectorexport.h:87
ExportGeometry geometry
Definition vectorexport.h:86
QString name
Layer / file stem, e.g. "junctions".
Definition vectorexport.h:85
QVector< ExportRow > rows
Definition vectorexport.h:88
QStringList skipped
Definition vectorexport.h:90
A GIS vector or feature layer to export as it is.
Definition vectorexport.h:139
QString layerName
Layer inside it; empty = the first.
Definition vectorexport.h:141
QString path
Datasource path, re-opened read-only.
Definition vectorexport.h:140
QString outputName
Output layer / file stem.
Definition vectorexport.h:142
QVector< qint64 > fids
Definition vectorexport.h:144
QString what
Definition vectorexport.cpp:213
const ExportProgress * progress
Definition vectorexport.cpp:211