crs-borys.diff
| src/app/qgsoptions.cpp (working copy) | ||
|---|---|---|
| 188 | 188 |
{
|
| 189 | 189 |
radUseGlobalProjection->setChecked( true ); |
| 190 | 190 |
} |
| 191 |
QString myLayerDefaultCrsString = settings.value( "/Projections/defaultProjectionString", GEOPROJ4 ).toString();
|
|
| 192 |
mLayerDefaultCrs.createFromProj4( myLayerDefaultCrsString );
|
|
| 191 |
QString myLayerDefaultCrs = settings.value( "/Projections/layerDefaultCrs", GEO_EPSG_CRS_AUTHID ).toString();
|
|
| 192 |
mLayerDefaultCrs.createFromOgcWmsCrs( myLayerDefaultCrs );
|
|
| 193 | 193 |
//display the crs as friendly text rather than in wkt |
| 194 | 194 |
leLayerGlobalCrs->setText( mLayerDefaultCrs.authid() + " - " + mLayerDefaultCrs.description() ); |
| 195 | 195 | |
| 196 | 196 |
//on the fly CRS transformation settings |
| 197 | 197 |
chkOtfTransform->setChecked( settings.value( "/Projections/otfTransformEnabled", 0 ).toBool() ); |
| 198 |
|
|
| 199 |
QString myDefaultCrsString = settings.value( "/Projections/projectDefaultProjectionString", GEOPROJ4 ).toString();
|
|
| 200 |
mDefaultCrs.createFromProj4( myDefaultCrsString );
|
|
| 198 | ||
| 199 |
QString myDefaultCrs = settings.value( "/Projections/projectDefaultCrs", GEO_EPSG_CRS_AUTHID ).toString();
|
|
| 200 |
mDefaultCrs.createFromOgcWmsCrs( myDefaultCrs );
|
|
| 201 | 201 |
//display the crs as friendly text rather than in wkt |
| 202 | 202 |
leProjectGlobalCrs->setText( mDefaultCrs.authid() + " - " + mDefaultCrs.description() ); |
| 203 | 203 | |
| ... | ... | |
| 639 | 639 |
settings.setValue( "/Projections/defaultBehaviour", "useGlobal" ); |
| 640 | 640 |
} |
| 641 | 641 | |
| 642 |
settings.setValue( "/Projections/defaultProjectionString", mLayerDefaultCrs.toProj4() );
|
|
| 642 |
settings.setValue( "/Projections/layerDefaultCrs", mLayerDefaultCrs.authid() );
|
|
| 643 | 643 | |
| 644 | 644 |
// save 'on the fly' CRS transformation settings |
| 645 | 645 |
settings.setValue( "/Projections/otfTransformEnabled", chkOtfTransform->isChecked() ); |
| 646 |
settings.setValue( "/Projections/projectDefaultProjectionString", mDefaultCrs.toProj4() );
|
|
| 646 |
settings.setValue( "/Projections/projectDefaultCrs", mDefaultCrs.authid() );
|
|
| 647 | 647 | |
| 648 | 648 |
settings.setValue( "/qgis/measure/ellipsoid", getEllipsoidAcronym( cmbEllipsoid->currentText() ) ); |
| 649 | 649 | |
| ... | ... | |
| 758 | 758 | |
| 759 | 759 |
if ( mySelector->exec() ) |
| 760 | 760 |
{
|
| 761 |
mLayerDefaultCrs.createFromProj4( mySelector->selectedProj4String() ); |
|
| 762 |
QgsDebugMsg( QString( "Setting default project CRS to : %1").arg( mySelector->selectedProj4String() ) ); |
|
| 763 |
leLayerGlobalCrs->setText( mLayerDefaultCrs.authid() + " - " + |
|
| 764 |
mLayerDefaultCrs.description() ); |
|
| 761 |
mLayerDefaultCrs.createFromOgcWmsCrs( mySelector->selectedAuthId() ); |
|
| 762 |
QgsDebugMsg( QString( "Setting default project CRS to : %1" ).arg( mySelector->selectedAuthId() ) ); |
|
| 763 |
leLayerGlobalCrs->setText( mLayerDefaultCrs.authid() + " - " + mLayerDefaultCrs.description() ); |
|
| 765 | 764 |
QgsDebugMsg( QString( "------ Global Layer Default Projection Selection set to ----------\n%1" ).arg( leLayerGlobalCrs->text() ) ); |
| 766 | 765 |
} |
| 767 | 766 |
else |
| ... | ... | |
| 782 | 781 | |
| 783 | 782 |
if ( mySelector->exec() ) |
| 784 | 783 |
{
|
| 785 |
mDefaultCrs.createFromProj4( mySelector->selectedProj4String() ); |
|
| 786 |
QgsDebugMsg( QString( "Setting default project CRS to : %1").arg( mySelector->selectedProj4String() ) ); |
|
| 787 |
leProjectGlobalCrs->setText( mDefaultCrs.authid() + " - " + |
|
| 788 |
mDefaultCrs.description() ); |
|
| 784 |
mDefaultCrs.createFromOgcWmsCrs( mySelector->selectedAuthId() ); |
|
| 785 |
QgsDebugMsg( QString( "Setting default project CRS to : %1" ).arg( mySelector->selectedAuthId() ) ); |
|
| 786 |
leProjectGlobalCrs->setText( mDefaultCrs.authid() + " - " + mDefaultCrs.description() ); |
|
| 789 | 787 |
QgsDebugMsg( QString( "------ Global OTF Projection Selection set to ----------\n%1" ).arg( leProjectGlobalCrs->text() ) ); |
| 790 | 788 |
} |
| 791 | 789 |
else |
| src/app/qgsnewvectorlayerdialog.cpp (working copy) | ||
|---|---|---|
| 155 | 155 |
if ( mySelector->exec() ) |
| 156 | 156 |
{
|
| 157 | 157 |
mCrsId = mySelector->selectedCrsId(); |
| 158 |
leSpatialRefSys->setText( mySelector->selectedProj4String() );
|
|
| 158 |
leSpatialRefSys->setText( mySelector->selectedAuthId() );
|
|
| 159 | 159 |
} |
| 160 | 160 |
else |
| 161 | 161 |
{
|
| src/app/qgswmssourceselect.cpp (working copy) | ||
|---|---|---|
| 654 | 654 |
mySelector->setMessage(); |
| 655 | 655 |
mySelector->setOgcWmsCrsFilter( mCRSs ); |
| 656 | 656 | |
| 657 |
QString myDefaultProjString = QgsProject::instance()->readEntry( "SpatialRefSys", "/ProjectCRSProj4String", GEOPROJ4 );
|
|
| 657 |
QString myDefaultCrs = QgsProject::instance()->readEntry( "SpatialRefSys", "/ProjectCrs", GEO_EPSG_CRS_AUTHID );
|
|
| 658 | 658 |
QgsCoordinateReferenceSystem defaultCRS; |
| 659 |
if ( defaultCRS.createFromProj4( myDefaultProjString ) )
|
|
| 659 |
if ( defaultCRS.createFromOgcWmsCrs( myDefaultCrs ) )
|
|
| 660 | 660 |
{
|
| 661 | 661 |
mySelector->setSelectedCrsId( defaultCRS.srsid() ); |
| 662 | 662 |
} |
| src/app/qgisapp.cpp (working copy) | ||
|---|---|---|
| 319 | 319 |
*/ |
| 320 | 320 |
static void customSrsValidation_( QgsCoordinateReferenceSystem* srs ) |
| 321 | 321 |
{
|
| 322 |
QString toProj4;
|
|
| 322 |
QString authid;
|
|
| 323 | 323 |
QSettings mySettings; |
| 324 | 324 |
QString myDefaultProjectionOption = mySettings.value( "/Projections/defaultBehaviour" ).toString(); |
| 325 | 325 |
if ( myDefaultProjectionOption == "prompt" ) |
| ... | ... | |
| 327 | 327 |
//@note this class is not a descendent of QWidget so we cant pass |
| 328 | 328 |
//it in the ctor of the layer projection selector |
| 329 | 329 | |
| 330 |
QgsGenericProjectionSelector * mySelector = new QgsGenericProjectionSelector();
|
|
| 330 |
QgsGenericProjectionSelector *mySelector = new QgsGenericProjectionSelector(); |
|
| 331 | 331 |
mySelector->setMessage( srs->validationHint() ); //shows a generic message, if not specified |
| 332 |
toProj4 = QgsProject::instance()->readEntry( "SpatialRefSys", "//ProjectCRSProj4String", GEOPROJ4 );
|
|
| 333 |
QgsCoordinateReferenceSystem defaultCRS;
|
|
| 334 |
if ( defaultCRS.createFromProj4( toProj4 ) )
|
|
| 332 |
authid = QgsProject::instance()->readEntry( "SpatialRefSys", "/ProjectCrs", GEO_EPSG_CRS_AUTHID );
|
|
| 333 |
QgsCoordinateReferenceSystem defaultCrs;
|
|
| 334 |
if ( defaultCrs.createFromOgcWmsCrs( authid ) )
|
|
| 335 | 335 |
{
|
| 336 |
mySelector->setSelectedCrsId( defaultCRS.srsid() );
|
|
| 336 |
mySelector->setSelectedCrsId( defaultCrs.srsid() );
|
|
| 337 | 337 |
} |
| 338 | 338 | |
| 339 | 339 |
QApplication::setOverrideCursor( Qt::ArrowCursor ); |
| ... | ... | |
| 341 | 341 |
if ( mySelector->exec() ) |
| 342 | 342 |
{
|
| 343 | 343 |
QgsDebugMsg( "Layer srs set from dialog: " + QString::number( mySelector->selectedCrsId() ) ); |
| 344 |
srs->createFromProj4( mySelector->selectedProj4String() );
|
|
| 344 |
srs->createFromOgcWmsCrs( mySelector->selectedAuthId() );
|
|
| 345 | 345 |
} |
| 346 | 346 | |
| 347 | 347 |
QApplication::restoreOverrideCursor(); |
| ... | ... | |
| 351 | 351 |
else if ( myDefaultProjectionOption == "useProject" ) |
| 352 | 352 |
{
|
| 353 | 353 |
// XXX TODO: Change project to store selected CS as 'projectCRS' not 'selectedWkt' |
| 354 |
toProj4 = QgsProject::instance()->readEntry( "SpatialRefSys", "//ProjectCRSProj4String", GEOPROJ4 );
|
|
| 355 |
QgsDebugMsg( "Layer srs set from project: " + toProj4 );
|
|
| 354 |
authid = QgsProject::instance()->readEntry( "SpatialRefSys", "/ProjectCrs", GEO_EPSG_CRS_AUTHID );
|
|
| 355 |
QgsDebugMsg( "Layer srs set from project: " + authid );
|
|
| 356 | 356 |
QgisApp::instance()->statusBar()->showMessage( QObject::tr( "CRS undefined - defaulting to project CRS" ) ); |
| 357 |
srs->createFromProj4( toProj4 );
|
|
| 357 |
srs->createFromOgcWmsCrs( authid );
|
|
| 358 | 358 |
} |
| 359 | 359 |
else ///Projections/defaultBehaviour==useGlobal |
| 360 | 360 |
{
|
| 361 |
srs->createFromProj4( mySettings.value( "/Projections/defaultProjectionString", GEOPROJ4 ).toString() );
|
|
| 361 |
srs->createFromOgcWmsCrs( mySettings.value( "/Projections/layerDefaultCrs", GEO_EPSG_CRS_AUTHID ).toString() );
|
|
| 362 | 362 |
QgisApp::instance()->statusBar()->showMessage( QObject::tr( "CRS undefined - defaulting to default CRS" ) ); |
| 363 | 363 |
} |
| 364 | 364 |
} |
| ... | ... | |
| 2489 | 2489 | |
| 2490 | 2490 |
// set project CRS |
| 2491 | 2491 |
QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); |
| 2492 |
QString projString = settings.value( "/Projections/projectDefaultProjectionString", GEOPROJ4 ).toString();
|
|
| 2492 |
QString defCrs = settings.value( "/Projections/projectDefaultCrs", GEO_EPSG_CRS_AUTHID ).toString();
|
|
| 2493 | 2493 |
QgsCoordinateReferenceSystem srs; |
| 2494 |
srs.createFromProj4( projString );
|
|
| 2494 |
srs.createFromOgcWmsCrs( defCrs );
|
|
| 2495 | 2495 |
myRenderer->setDestinationSrs( srs ); |
| 2496 | 2496 |
// write the projections _proj string_ to project settings |
| 2497 |
prj->writeEntry( "SpatialRefSys", "/ProjectCRSProj4String", projString );
|
|
| 2497 |
prj->writeEntry( "SpatialRefSys", "/ProjectCrs", defCrs );
|
|
| 2498 | 2498 |
prj->dirty( false ); |
| 2499 | 2499 |
if ( srs.mapUnits() != QGis::UnknownUnit ) |
| 2500 | 2500 |
{
|
| ... | ... | |
| 4809 | 4809 | |
| 4810 | 4810 |
// set project CRS |
| 4811 | 4811 |
QgsMapRenderer* myRenderer = mMapCanvas->mapRenderer(); |
| 4812 |
QString projString = mySettings.value( "/Projections/projectDefaultProjectionString", GEOPROJ4 ).toString();
|
|
| 4812 |
QString defCrs = mySettings.value( "/Projections/projectDefaultCrs", GEO_EPSG_CRS_AUTHID ).toString();
|
|
| 4813 | 4813 |
QgsCoordinateReferenceSystem srs; |
| 4814 |
srs.createFromProj4( projString );
|
|
| 4814 |
srs.createFromOgcWmsCrs( defCrs );
|
|
| 4815 | 4815 |
myRenderer->setDestinationSrs( srs ); |
| 4816 | 4816 |
// write the projections _proj string_ to project settings |
| 4817 |
QgsProject::instance()->writeEntry( "SpatialRefSys", "/ProjectCRSProj4String", projString );
|
|
| 4817 |
QgsProject::instance()->writeEntry( "SpatialRefSys", "/ProjectCrs", defCrs );
|
|
| 4818 | 4818 |
if ( srs.mapUnits() != QGis::UnknownUnit ) |
| 4819 | 4819 |
{
|
| 4820 | 4820 |
myRenderer->setMapUnits( srs.mapUnits() ); |
| src/plugins/north_arrow/plugin.cpp (working copy) | ||
|---|---|---|
| 308 | 308 |
{
|
| 309 | 309 |
// Use a geographic CRS to get lat/long to work out direction |
| 310 | 310 |
QgsCoordinateReferenceSystem ourCRS; |
| 311 |
ourCRS.createFromProj4( "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" );
|
|
| 311 |
ourCRS.createFromOgcWmsCrs( GEO_EPSG_CRS_AUTHID );
|
|
| 312 | 312 |
assert( ourCRS.isValid() ); |
| 313 | 313 | |
| 314 | 314 |
QgsCoordinateTransform transform( outputCRS, ourCRS ); |
| src/gui/qgsgenericprojectionselector.h (working copy) | ||
|---|---|---|
| 61 | 61 |
* 'define the CRS for this layer'. |
| 62 | 62 |
*/ |
| 63 | 63 |
void setMessage( QString theMessage = "" ); |
| 64 |
QString selectedProj4String(); |
|
| 65 | 64 |
long selectedCrsId(); |
| 66 | 65 |
QString selectedAuthId(); |
| 67 | 66 | |
| 68 | 67 |
#ifndef Q_MOC_RUN |
| 69 | 68 |
QGISDEPRECATED |
| 70 | 69 |
#endif |
| 70 |
QString selectedProj4String(); |
|
| 71 | ||
| 72 |
#ifndef Q_MOC_RUN |
|
| 73 |
QGISDEPRECATED |
|
| 74 |
#endif |
|
| 71 | 75 |
long selectedEpsg(); |
| 72 | 76 | |
| 73 | 77 |
void setSelectedCrsName( QString theName ); |
| src/core/qgsdistancearea.cpp (working copy) | ||
|---|---|---|
| 162 | 162 | |
| 163 | 163 | |
| 164 | 164 |
// get spatial ref system for ellipsoid |
| 165 |
QString proj4 = "+proj=longlat +ellps="; |
|
| 166 |
proj4 += ellipsoid; |
|
| 167 |
proj4 += " +no_defs"; |
|
| 165 |
QString proj4 = "+proj=longlat +ellps=" + ellipsoid + " +no_defs"; |
|
| 168 | 166 |
QgsCoordinateReferenceSystem destCRS; |
| 169 | 167 |
destCRS.createFromProj4( proj4 ); |
| 170 | 168 | |
| src/core/qgscoordinatereferencesystem.cpp (working copy) | ||
|---|---|---|
| 37 | 37 |
#include <ogr_srs_api.h> |
| 38 | 38 |
#include <cpl_error.h> |
| 39 | 39 |
#include <cpl_conv.h> |
| 40 |
#include "qgslogger.h" |
|
| 41 | 40 | |
| 42 | 41 |
CUSTOM_CRS_VALIDATION QgsCoordinateReferenceSystem::mCustomSrsValidation = NULL; |
| 43 | 42 | |
| ... | ... | |
| 129 | 128 | |
| 130 | 129 |
bool QgsCoordinateReferenceSystem::createFromOgcWmsCrs( QString theCrs ) |
| 131 | 130 |
{
|
| 131 |
QRegExp re( "(user|custom|qgis):(\\d+)", Qt::CaseInsensitive ); |
|
| 132 |
if ( re.exactMatch( theCrs ) && createFromSrsId( re.cap( 2 ).toInt() ) ) |
|
| 133 |
{
|
|
| 134 |
return true; |
|
| 135 |
} |
|
| 136 | ||
| 132 | 137 |
if ( loadFromDb( QgsApplication::srsDbFilePath(), "lower(auth_name||':'||auth_id)", theCrs.toLower() ) ) |
| 133 | 138 |
return true; |
| 134 | 139 | |
| ... | ... | |
| 185 | 190 | |
| 186 | 191 |
if ( !mIsValidFlag ) |
| 187 | 192 |
// set the default |
| 188 |
createFromProj4( GEOPROJ4 );
|
|
| 193 |
createFromOgcWmsCrs( GEO_EPSG_CRS_AUTHID );
|
|
| 189 | 194 |
} |
| 190 | 195 | |
| 191 | 196 |
bool QgsCoordinateReferenceSystem::createFromSrid( long id ) |
| ... | ... | |
| 200 | 205 | |
| 201 | 206 |
bool QgsCoordinateReferenceSystem::createFromSrsId( long id ) |
| 202 | 207 |
{
|
| 203 |
return loadFromDb( id < USER_CRS_START_ID ? QgsApplication::srsDbFilePath() : |
|
| 204 |
QgsApplication::qgisUserDbFilePath(), "srs_id", QString::number( id ) );
|
|
| 208 |
return loadFromDb( id < USER_CRS_START_ID ? QgsApplication::srsDbFilePath() : QgsApplication::qgisUserDbFilePath(),
|
|
| 209 |
"srs_id", QString::number( id ) ); |
|
| 205 | 210 |
} |
| 206 | 211 | |
| 207 | 212 |
bool QgsCoordinateReferenceSystem::loadFromDb( QString db, QString expression, QString value ) |
| ... | ... | |
| 252 | 257 |
QString toProj4 = QString::fromUtf8(( char * )sqlite3_column_text( myPreparedStatement, 4 ) ); |
| 253 | 258 |
mSRID = QString::fromUtf8(( char * )sqlite3_column_text( myPreparedStatement, 5 ) ).toLong(); |
| 254 | 259 |
mAuthId = QString::fromUtf8(( char * )sqlite3_column_text( myPreparedStatement, 6 ) ); |
| 255 |
int geo = QString::fromUtf8(( char * )sqlite3_column_text( myPreparedStatement, 7 ) ).toInt(); |
|
| 256 |
mGeoFlag = ( geo == 0 ? false : true ); |
|
| 260 |
mGeoFlag = QString::fromUtf8(( char * )sqlite3_column_text( myPreparedStatement, 7 ) ).toInt() != 0; |
|
| 261 | ||
| 262 |
if( mSrsId >= USER_CRS_START_ID && mAuthId.isEmpty() ) |
|
| 263 |
{
|
|
| 264 |
mAuthId = QString( "USER:%1" ).arg( mSrsId ); |
|
| 265 |
} |
|
| 266 | ||
| 257 | 267 |
setProj4String( toProj4 ); |
| 258 | 268 |
setMapUnits(); |
| 259 | 269 |
} |
| ... | ... | |
| 275 | 285 |
QgsDebugMsg( "theWkt is uninitialised, operation failed" ); |
| 276 | 286 |
return mIsValidFlag; |
| 277 | 287 |
} |
| 278 |
QgsDebugMsg( "QgsCoordinateReferenceSystem::createFromWkt(QString theWkt) using: " + theWkt );
|
|
| 288 |
QgsDebugMsg( "wkt: " + theWkt );
|
|
| 279 | 289 |
QByteArray ba = theWkt.toLatin1(); |
| 280 | 290 |
const char *pWkt = ba.data(); |
| 281 | 291 | |
| ... | ... | |
| 612 | 622 |
#endif |
| 613 | 623 | |
| 614 | 624 |
return myMap; |
| 615 | ||
| 616 | ||
| 617 | ||
| 618 | 625 |
} |
| 619 | 626 | |
| 620 | 627 |
// Accessors ----------------------------------- |
| src/core/qgsvectorlayer.cpp (working copy) | ||
|---|---|---|
| 4283 | 4283 |
} |
| 4284 | 4284 |
else |
| 4285 | 4285 |
{
|
| 4286 |
mCRS->createFromProj4( GEOPROJ4 );
|
|
| 4286 |
mCRS->createFromOgcWmsCrs( GEO_EPSG_CRS_AUTHID );
|
|
| 4287 | 4287 |
} |
| 4288 | 4288 |
} |
| 4289 | 4289 |
} |