2020#include " qgspoint.h"
2121#include < cmath>
2222#include < QTextStream>
23+ #include < QObject> // for tr()
2324
2425
2526QgsPoint::QgsPoint ( const QgsPoint& p )
@@ -44,6 +45,31 @@ QString QgsPoint::toString( int thePrecision ) const
4445 return rep;
4546}
4647
48+ QString QgsPoint::toDegreesMinutesSeconds ( int thePrecision ) const
49+ {
50+ int myDegreesX = int ( std::abs ( m_x ) );
51+ float myFloatMinutesX = float ( ( std::abs ( m_x ) - myDegreesX ) * 60 );
52+ int myIntMinutesX = int ( myFloatMinutesX );
53+ float mySecondsX = float ( myFloatMinutesX - myIntMinutesX ) * 60 ;
54+
55+ int myDegreesY = int ( std::abs ( m_y ) );
56+ float myFloatMinutesY = float ( ( std::abs ( m_y ) - myDegreesY ) * 60 );
57+ int myIntMinutesY = int ( myFloatMinutesY );
58+ float mySecondsY = float ( myFloatMinutesY - myIntMinutesY ) * 60 ;
59+
60+ QString myXHemisphere = m_x < 0 ? QObject::tr (" W" ) : QObject::tr (" E" );
61+ QString myYHemisphere = m_y < 0 ? QObject::tr (" S" ) : QObject::tr (" N" );
62+ QString rep = QString::number ( myDegreesX ) + QChar (176 ) +
63+ QString::number ( myIntMinutesX ) + QString (" '" ) +
64+ QString::number ( mySecondsX, ' f' , thePrecision ) + QString ( " \" " ) +
65+ myXHemisphere + QString ( " ," ) +
66+ QString::number ( myDegreesY ) + QChar (176 ) +
67+ QString::number ( myIntMinutesY ) + QString (" '" ) +
68+ QString::number ( mySecondsY, ' f' , thePrecision ) + QString ( " \" " ) +
69+ myYHemisphere;
70+ return rep;
71+ }
72+
4773
4874QString QgsPoint::wellKnownText () const
4975{
0 commit comments