Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef COORDINATEFILE_H
00029 #define COORDINATEFILE_H
00030
00031 #include <QGpCoreTools.h>
00032
00033 #include "Dialog.h"
00034 #include "ui_CoordinateFile.h"
00035 #include "QGpGuiToolsDLLExport.h"
00036
00037 namespace QGpGuiTools {
00038
00039 class QGPGUITOOLS_EXPORT CoordinateFile: public Dialog, private Ui::CoordinateFile
00040 {
00041 Q_OBJECT
00042 public:
00043 CoordinateFile(QWidget * parent=0);
00044 ~CoordinateFile();
00045
00046 bool read(QString fileName=QString::null, const QString &format=QString::null);
00047 static bool write(const QList<NamedPoint>& points, QString fileName=QString::null);
00048
00049 bool contains(const QString& name) const;
00050 const QList<NamedPoint>& points() const {return _points;}
00051 private slots:
00052 void setUtmZone();
00053 void switchConversion();
00054 void copyPointToReference();
00055 void copyReference();
00056 void beforeLeaving();
00057 private:
00058 enum CoordinateType {Undefined, Cartesian, Geographical};
00059
00060 bool setFile(const QString& fileName, const QString& format);
00061 CoordinateType coordinateType(const ColumnTextParser * parser, bool warn) const;
00062 void setPoints(const ColumnTextParser * parser);
00063 void convert(CoordinateConvert::Projection p, const Point2D& reference);
00064
00065 QList<NamedPoint> _points;
00066 static const QString _fileFilter;
00067 static QStringList _types;
00068 };
00069
00070 }
00071
00072 #endif // COORDINATEFILE_H