Skip to content

Commit 22c2909

Browse files
author
timlinux
committed
Display coordinates in geographic and canvas CRS
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@9006 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent fe533ca commit 22c2909

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

src/plugins/coordinate_capture/coordinatecapture.cpp

+20-8
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
#include <qgisgui.h>
2525
#include <qgspoint.h>
2626
#include <qgsmapcanvas.h>
27+
#include <qgsmaprenderer.h>
28+
#include <qgis.h>
29+
#include <qgsspatialrefsys.h>
30+
#include <qgscoordinatetransform.h>
2731

2832
#include "coordinatecapture.h"
2933
#include "coordinatecapturegui.h"
@@ -100,16 +104,16 @@ void CoordinateCapture::initGui()
100104
mypGeoLabel->setPixmap(QPixmap(":/coordinatecapture/geographic.png"));
101105
QLabel * mypCRSLabel = new QLabel(mypWidget);
102106
mypCRSLabel->setPixmap(QPixmap(":/coordinatecapture/transformed.png"));
103-
mpXEdit = new QLineEdit(mypWidget);
104-
mpYEdit = new QLineEdit(mypWidget);
107+
mpGeoEdit = new QLineEdit(mypWidget);
108+
mpTransformedEdit = new QLineEdit(mypWidget);
105109
QPushButton * mypCopyButton = new QPushButton(mypWidget);
106110
mypCopyButton->setText(tr("Copy to clipboard"));
107111
connect(mypCopyButton, SIGNAL(clicked()), this, SLOT(copy()));
108112

109113
mypLayout->addWidget(mypGeoLabel, 0,0);
110-
mypLayout->addWidget(mpXEdit, 0,1);
114+
mypLayout->addWidget(mpGeoEdit, 0,1);
111115
mypLayout->addWidget(mypCRSLabel, 1,0);
112-
mypLayout->addWidget(mpYEdit, 1,1);
116+
mypLayout->addWidget(mpTransformedEdit, 1,1);
113117
mypLayout->addWidget(mypCopyButton, 2,1);
114118

115119

@@ -132,23 +136,31 @@ void CoordinateCapture::help()
132136

133137
void CoordinateCapture::update(QgsPoint thePoint)
134138
{
135-
mpXEdit->setText(QString::number( thePoint.x(),'f'));
136-
mpYEdit->setText(QString::number( thePoint.y(),'f'));
139+
//this is the coordinate resolved back to lat / lon
140+
QgsSpatialRefSys mySrs;
141+
mySrs.createFromEpsg(GEOEPSG_ID); //geo lat lon
142+
QgsCoordinateTransform myTransform(mQGisIface->getMapCanvas()->mapRenderer()->destinationSrs(),mySrs);
143+
QgsPoint myGeoPoint = myTransform.transform(thePoint);
144+
mpGeoEdit->setText(QString::number( myGeoPoint.x(),'f',3) + "," +
145+
QString::number( myGeoPoint.y(),'f',3));
146+
// This is the coordinate space of the map canvas
147+
mpTransformedEdit->setText(QString::number( thePoint.x(),'f',3) + "," +
148+
QString::number( thePoint.y(),'f',3));
137149
}
138150
void CoordinateCapture::copy()
139151
{
140152
QClipboard *myClipboard = QApplication::clipboard();
141153
//if we are on x11 system put text into selection ready for middle button pasting
142154
if (myClipboard->supportsSelection())
143155
{
144-
myClipboard->setText(mpXEdit->text() + "," + mpYEdit->text(),QClipboard::Selection);
156+
myClipboard->setText(mpGeoEdit->text() + "," + mpTransformedEdit->text(),QClipboard::Selection);
145157
//QString myMessage = tr("Clipboard contents set to: ");
146158
//statusBar()->showMessage(myMessage + myClipboard->text(QClipboard::Selection));
147159
}
148160
else
149161
{
150162
//user has an inferior operating system....
151-
myClipboard->setText(mpXEdit->text() + "," + mpYEdit->text(),QClipboard::Clipboard );
163+
myClipboard->setText(mpGeoEdit->text() + "," + mpTransformedEdit->text(),QClipboard::Clipboard );
152164
//QString myMessage = tr("Clipboard contents set to: ");
153165
//statusBar()->showMessage(myMessage + myClipboard->text(QClipboard::Clipboard));
154166
}

src/plugins/coordinate_capture/coordinatecapture.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ public slots:
9797
//! Container for the coordinate info
9898
QPointer<QDockWidget> mpDockWidget;
9999

100-
//!output display for x coord
101-
QPointer<QLineEdit> mpXEdit;
100+
//!output display for geographic lat/long coords
101+
QPointer<QLineEdit> mpGeoEdit;
102102

103-
//!output display for y coord
104-
QPointer<QLineEdit> mpYEdit;
103+
//!output display for CRS coord
104+
QPointer<QLineEdit> mpTransformedEdit;
105105

106106
//!Our custom map tool to capture clicks
107107
CoordinateCaptureMapTool * mpMapTool;

0 commit comments

Comments
 (0)