-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlatlng.cpp
More file actions
110 lines (101 loc) · 1.96 KB
/
Copy pathlatlng.cpp
File metadata and controls
110 lines (101 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include "latlng.h"
LatLng::LatLng() : QPointF()
{
bValid=false;
setLon(0);
setLat(0);
}
LatLng::~LatLng() {}
LatLng::LatLng(const LatLng& other) {
setY(other.y());
setX(other.x());
latitude = other.latitude;
longitude= other.longitude;
bValid = other.bValid;
}
// <summary>
// Create new LatLng
// </summary>
// <param name="Lat"></param>
// <param name="Lon"></param>
LatLng::LatLng(double Lat, double Lon) : QPointF(Lon, Lat)
{
latitude = Lat;
longitude = Lon;
if(Lat==0 && Lon ==0)
bValid = false;
else
bValid=checkValid();
}
/// <summary>
/// get or set latitude
/// </summary>
double LatLng::lat() const
{
return y();
}
void LatLng::setLat(double val)
{
latitude = val;
setY(val);
bValid = checkValid();
}
/// <summary>
/// get longitude
/// </summary>
double LatLng::lon() const
{
return x(); //longitude;
}
void LatLng::setLon(double val)
{
longitude = val;
setX(val);
bValid=checkValid();
}
bool LatLng::isValid(){
bValid = checkValid();
return bValid;
}
bool LatLng::checkValid()
{
if(x() == 0 && y() == 0)
return false;
if((y() > 90.0) || (y() < -90.))
return false;
if((x() < -180.) || (x() > 180.))
return false;
return true;
}
QString LatLng::toString()
{
QString strLat = QString("%1").arg(/*latitude*/y());
QString strLon = QString("%1").arg(/*longitude*/x());
return "lat: " + strLat + " lon: " + strLon;
}
QString LatLng::str()
{
QString strLat = QString("%1").arg(/*latitude*/y(),0,'f',6);
QString strLon = QString("%1").arg(/*longitude*/x(),0,'f',6);
return strLat + "," + strLon;
}
/*static*/ LatLng LatLng::fromString(QString str)
{
LatLng rslt;
QStringList sl;
sl = str.split(",");
bool ok;
double lat;
double lon;
if(sl.count()==2)
{
lat = sl.at(0).toDouble(&ok);
if(!ok)
return rslt;
lon = sl.at(1).toDouble(&ok);
if(!ok)
return rslt;
rslt = LatLng(lat,lon);
}
return rslt;
}