Skip to content

Commit f624792

Browse files
committed
Add epsg_nr to datum transform table
1 parent 30900e9 commit f624792

5 files changed

+17
-9
lines changed

resources/srs.db

6 KB
Binary file not shown.

src/core/qgscoordinatereferencesystem.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2032,7 +2032,7 @@ bool QgsCoordinateReferenceSystem::syncDatumTransform( const QString& dbPath )
20322032
{
20332033
//not yet in database, do insert
20342034
QgsDebugMsg( "Trying datum transform insert" );
2035-
sql = QString( "INSERT INTO tbl_datum_transform ( coord_op_code, source_crs_code, target_crs_code, coord_op_method_code, p1, p2, p3, p4, p5, p6, p7 ) VALUES ( %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11 )" )
2035+
sql = QString( "INSERT INTO tbl_datum_transform ( epsg_nr, coord_op_code, source_crs_code, target_crs_code, coord_op_method_code, p1, p2, p3, p4, p5, p6, p7 ) VALUES ( %1, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11 )" )
20362036
.arg( coord_op ).arg( source_crs ).arg( target_crs ).arg( coord_op_method ).arg( p1 ).arg( p2 ).arg( p3 ).arg( p4 ).arg( p5 ).arg( p6 ).arg( p7 );
20372037

20382038
}

src/core/qgscoordinatetransform.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@ QString QgsCoordinateTransform::datumTransformString( int datumTransform )
932932
return transformString;
933933
}
934934

935-
bool QgsCoordinateTransform::datumTransformCrsInfo( int datumTransform, QString& srcProjection, QString& dstProjection )
935+
bool QgsCoordinateTransform::datumTransformCrsInfo( int datumTransform, int& epsgNr, QString& srcProjection, QString& dstProjection )
936936
{
937937
sqlite3* db;
938938
int openResult = sqlite3_open( QgsApplication::srsDbFilePath().toUtf8().constData(), &db );
@@ -943,7 +943,7 @@ bool QgsCoordinateTransform::datumTransformCrsInfo( int datumTransform, QString&
943943
}
944944

945945
sqlite3_stmt* stmt;
946-
QString sql = QString( "SELECT source_crs_code, target_crs_code FROM tbl_datum_transform WHERE coord_op_code = %1" ).arg( datumTransform );
946+
QString sql = QString( "SELECT epsg_nr, source_crs_code, target_crs_code FROM tbl_datum_transform WHERE coord_op_code = %1" ).arg( datumTransform );
947947
int prepareRes = sqlite3_prepare( db, sql.toAscii(), sql.size(), &stmt, NULL );
948948
if ( prepareRes != SQLITE_OK )
949949
{
@@ -954,8 +954,9 @@ bool QgsCoordinateTransform::datumTransformCrsInfo( int datumTransform, QString&
954954
int srcCrsId, destCrsId;
955955
if ( sqlite3_step( stmt ) == SQLITE_ROW )
956956
{
957-
srcCrsId = sqlite3_column_int( stmt, 0 );
958-
destCrsId = sqlite3_column_int( stmt, 1 );
957+
epsgNr = sqlite3_column_int( stmt, 0 );
958+
srcCrsId = sqlite3_column_int( stmt, 1 );
959+
destCrsId = sqlite3_column_int( stmt, 2 );
959960
}
960961

961962
QgsCoordinateReferenceSystem srcCrs;

src/core/qgscoordinatetransform.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,9 @@ class CORE_EXPORT QgsCoordinateTransform : public QObject
214214
/**Returns list of datum transformations for the given src and dest CRS*/
215215
static QList< QList< int > > datumTransformations( const QgsCoordinateReferenceSystem& srcCRS, const QgsCoordinateReferenceSystem& destCRS );
216216
static QString datumTransformString( int datumTransform );
217-
/**Gets name of source and dest geographical CRS (to show in a tooltip)*/
218-
static bool datumTransformCrsInfo( int datumTransform, QString& srcProjection, QString& dstProjection );
217+
/**Gets name of source and dest geographical CRS (to show in a tooltip)
218+
@return epsgNr epsg code of the transformation (or 0 if not in epsg db)*/
219+
static bool datumTransformCrsInfo( int datumTransform, int& epsgNr, QString& srcProjection, QString& dstProjection );
219220

220221
int sourceDatumTransform() const { return mSourceDatumTransform; }
221222
void setSourceDatumTransform( int dt ) { mSourceDatumTransform = dt; }

src/gui/qgsdatumtransformdialog.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,15 @@ QgsDatumTransformDialog::QgsDatumTransformDialog( const QString& layerName, cons
4444

4545
//Describe datums in a tooltip
4646
QString srcGeoProj, destGeoProj;
47-
if ( QgsCoordinateTransform::datumTransformCrsInfo( nr, srcGeoProj, destGeoProj ) )
47+
int epsgNr;
48+
if ( QgsCoordinateTransform::datumTransformCrsInfo( nr, epsgNr, srcGeoProj, destGeoProj ) )
4849
{
49-
QString toolTipString = QString( "EPSG Transformations Code: %1\nSource CRS: %2\nDestination CRS: %3" ).arg( nr ).arg( srcGeoProj ).arg( destGeoProj );
50+
QString toolTipString;
51+
if ( epsgNr > 0 )
52+
{
53+
toolTipString.append( QString( "EPSG Transformations Code: %1\n" ).arg( epsgNr ) );
54+
}
55+
toolTipString.append( QString( "Source CRS: %1\nDestination CRS: %2" ).arg( srcGeoProj ).arg( destGeoProj ) );
5056
item->setToolTip( i, toolTipString );
5157
}
5258
}

0 commit comments

Comments
 (0)