├── README.md ├── SurveyMath ├── BasePoint.h ├── CoordinateTransformation.cpp ├── CoordinateTransformation.h ├── Ellipsoid.h ├── Enumerate.h ├── Projection.h ├── SevenParameter.h ├── SurveyMath.cpp ├── SurveyMath.h └── UTMProjection.h ├── SurveyPoint.h ├── dialogchangeangle.cpp ├── dialogchangeangle.h ├── dialogchangeangle.ui ├── dialogchangeangle_copy1.ui ├── dialogchangezone.cpp ├── dialogchangezone.h ├── dialogchangezone.ui ├── dialogcoordinatedirectsolution.cpp ├── dialogcoordinatedirectsolution.h ├── dialogcoordinatedirectsolution.ui ├── dialogcoordinateinvertsolution.cpp ├── dialogcoordinateinvertsolution.h ├── dialogcoordinateinvertsolution.ui ├── dialogcoordinatetokml.cpp ├── dialogcoordinatetokml.h ├── dialogcoordinatetokml.ui ├── dialogkmltocoordinate.ui ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── qTrans.pro ├── qTrans.pro.user ├── qtranswindow.cpp ├── qtranswindow.h ├── qtranswindow.ui ├── selectcolumndialog.h ├── sevenparameterdialog.cpp ├── sevenparameterdialog.h ├── sevenparameterdialog.ui ├── sevenparameterhassistant.cpp ├── sevenparameterhassistant.h ├── viewsevenparameterdialog.cpp ├── viewsevenparameterdialog.h └── viewsevenparameterdialog.ui /README.md: -------------------------------------------------------------------------------- 1 | # GIS-Box 2 | C++ Qt 开发的软件,集成常用测量技术功能,如坐标正反算、换带计算、坐标转换7参数计算、角度单位换算。 3 | 本项目用到了Eigen库。支持的坐标系统有WGS84、CGCS2000、西安80、北京54。 4 | 坐标转换7参数求解采用Bursa七参数转换模型。 5 | 因为很少用GITHUB,当初上传这个代码也是出于尝试和好奇,我是业余软件开发爱好者,编码难免有很多不规范的地方,也没有详细的说明,上传的代码可能也不全,给使用者添麻烦了,我会及时的更新到QT的版本,改进代码质量,谢谢批评指正 6 | -------------------------------------------------------------------------------- /SurveyMath/BasePoint.h: -------------------------------------------------------------------------------- 1 | #ifndef BASEPOINT_H 2 | #define BASEPOINT_H 3 | namespace SurveyMath { 4 | class BasePoint 5 | { 6 | public: 7 | BasePoint() 8 | { 9 | x = 0; 10 | y = 0; 11 | z = 0; 12 | } 13 | BasePoint(double _x, double _y, double _z) 14 | { 15 | x = _x; 16 | y = _y; 17 | z = _z; 18 | } 19 | public: 20 | double x; 21 | double y; 22 | double z; 23 | }; 24 | typedef BasePoint CartesianCoordinate; 25 | typedef BasePoint GeodeticCoordinate; 26 | typedef BasePoint GeocentricCoordinate; 27 | } 28 | #endif //BASEPOINT_H 29 | -------------------------------------------------------------------------------- /SurveyMath/CoordinateTransformation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/SurveyMath/CoordinateTransformation.cpp -------------------------------------------------------------------------------- /SurveyMath/CoordinateTransformation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/SurveyMath/CoordinateTransformation.h -------------------------------------------------------------------------------- /SurveyMath/Ellipsoid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/SurveyMath/Ellipsoid.h -------------------------------------------------------------------------------- /SurveyMath/Enumerate.h: -------------------------------------------------------------------------------- 1 | #ifndef ENUMERATE_H 2 | #define ENUMERATE_H 3 | namespace SurveyMath { 4 | enum class EnumProjectionMethod { Gauss, UTM, Mercator}; 5 | } 6 | #endif //ENUMERATE_H 7 | -------------------------------------------------------------------------------- /SurveyMath/Projection.h: -------------------------------------------------------------------------------- 1 | #ifndef PROJECTION_H 2 | #define PROJECTION_H 3 | #include "SurveyMath\Ellipsoid.h" 4 | #include "SurveyMath\Enumerate.h" 5 | namespace SurveyMath { 6 | class Projection 7 | { 8 | public: 9 | Projection() 10 | { 11 | CentralMeridianScaleFactor = 1.0; 12 | CentralMeridian =DegreeToRadian(117.0); 13 | OriginLatitude = 0.0; 14 | FalseEasting = 500000.0; 15 | FalseNorthing = 0.0; 16 | } 17 | Projection(Ellipsoid datum, double centralMeridianScaleFactor, double centralMeridian, double originLatitude, double falseEasting, double falseNorthing) 18 | { 19 | Datum = datum; 20 | CentralMeridianScaleFactor = centralMeridianScaleFactor; 21 | CentralMeridian = centralMeridian; 22 | OriginLatitude = originLatitude; 23 | FalseEasting = falseEasting; 24 | FalseNorthing = falseNorthing; 25 | } 26 | 27 | protected: 28 | Ellipsoid Datum; 29 | double CentralMeridianScaleFactor; 30 | double CentralMeridian; 31 | double OriginLatitude; 32 | double FalseEasting; 33 | double FalseNorthing; 34 | public: 35 | 36 | void inline SetDatum(Ellipsoid datum) 37 | { 38 | Datum = datum; 39 | } 40 | void inline SetCentralMeridianScaleFactor(double centralMeridianScaleFactor) 41 | { 42 | CentralMeridianScaleFactor = centralMeridianScaleFactor; 43 | } 44 | void inline SetCentralMeridian(double centralMeridian) 45 | { 46 | CentralMeridian = centralMeridian; 47 | } 48 | void inline SetOriginLatitude(double originLatitude) 49 | { 50 | OriginLatitude = originLatitude; 51 | } 52 | void inline SetFalseEasting(double falseEasting) 53 | { 54 | FalseEasting = falseEasting; 55 | } 56 | void inline SetFalseNorthing(double falseNorthing) 57 | { 58 | FalseNorthing = falseNorthing; 59 | } 60 | Ellipsoid inline GetDatum() 61 | { 62 | return Datum; 63 | } 64 | 65 | double inline GetCentralMeridianScaleFactor() 66 | { 67 | return CentralMeridianScaleFactor; 68 | } 69 | double inline GetCentralMeridian() 70 | { 71 | return CentralMeridian; 72 | } 73 | double inline GetOriginLatitude() 74 | { 75 | return OriginLatitude; 76 | } 77 | double inline GetFalseEasting() 78 | { 79 | return FalseEasting; 80 | } 81 | double inline GetFalseNorthing() 82 | { 83 | return FalseNorthing; 84 | } 85 | }; 86 | } 87 | #endif //PROJECTION_H 88 | -------------------------------------------------------------------------------- /SurveyMath/SevenParameter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/SurveyMath/SevenParameter.h -------------------------------------------------------------------------------- /SurveyMath/SurveyMath.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/SurveyMath/SurveyMath.cpp -------------------------------------------------------------------------------- /SurveyMath/SurveyMath.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/SurveyMath/SurveyMath.h -------------------------------------------------------------------------------- /SurveyMath/UTMProjection.h: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include "SurveyMath\surveymath.h" 4 | namespace SurveyMath { 5 | class UTMProjection 6 | { 7 | private: 8 | double pi = M_PI; 9 | /* Ellipsoid model constants (actual values here are for WGS84) */ 10 | double sm_a = 6378137.0; 11 | double sm_b = 6356752.31424518; 12 | double sm_EccSquared = 6.69437999013e-03; 13 | double UTMScaleFactor = 0.9996; 14 | 15 | typedef BasePoint UTMCoor; 16 | 17 | typedef BasePoint WGS84Corr; 18 | /* 19 | * DegToRad 20 | * 21 | * Converts degrees to radians. 22 | * 23 | */ 24 | inline double DegToRad(double deg) 25 | { 26 | return (deg / 180.0 * pi); 27 | } 28 | 29 | /* 30 | * RadToDeg 31 | * 32 | * Converts radians to degrees. 33 | * 34 | */ 35 | inline double RadToDeg(double rad) 36 | { 37 | return (rad / pi * 180.0); 38 | } 39 | 40 | /* 41 | * ArcLengthOfMeridian 42 | * 43 | * Computes the ellipsoidal distance from the equator to a point at a 44 | * given latitude. 45 | * 46 | * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J., 47 | * GPS: Theory and Practice, 3rd ed. New York: Springer-Verlag Wien, 1994. 48 | * 49 | * Inputs: 50 | * phi - Latitude of the point, in radians. 51 | * 52 | * Globals: 53 | * sm_a - Ellipsoid model major axis. 54 | * sm_b - Ellipsoid model minor axis. 55 | * 56 | * Returns: 57 | * The ellipsoidal distance of the point from the equator, in meters. 58 | * 59 | */ 60 | double ArcLengthOfMeridian(double phi) 61 | { 62 | double alpha, beta, gamma, delta, epsilon, n; 63 | double result; 64 | 65 | /* Precalculate n */ 66 | n = (sm_a - sm_b) / (sm_a + sm_b); 67 | 68 | /* Precalculate alpha */ 69 | alpha = ((sm_a + sm_b) / 2.0) * (1.0 + (pow(n, 2.0) / 4.0) + (pow(n, 4.0) / 64.0)); 70 | 71 | /* Precalculate beta */ 72 | beta = (-3.0 * n / 2.0) + (9.0 * pow(n, 3.0) / 16.0) + (-3.0 * pow(n, 5.0) / 32.0); 73 | 74 | /* Precalculate gamma */ 75 | gamma = (15.0 * pow(n, 2.0) / 16.0) + (-15.0 * pow(n, 4.0) / 32.0); 76 | 77 | /* Precalculate delta */ 78 | delta = (-35.0 * pow(n, 3.0) / 48.0) + (105.0 * pow(n, 5.0) / 256.0); 79 | 80 | /* Precalculate epsilon */ 81 | epsilon = (315.0 * pow(n, 4.0) / 512.0); 82 | 83 | /* Now calculate the sum of the series and return */ 84 | result = alpha * (phi + (beta * sin(2.0 * phi)) + (gamma * sin(4.0 * phi)) + (delta * sin(6.0 * phi)) + (epsilon * sin(8.0 * phi))); 85 | 86 | return result; 87 | } 88 | 89 | /* 90 | * UTMCentralMeridian 91 | * 92 | * Determines the central meridian for the given UTM zone. 93 | * 94 | * Inputs: 95 | * zone - An integer value designating the UTM zone, range [1,60]. 96 | * 97 | * Returns: 98 | * The central meridian for the given UTM zone, in radians, or zero 99 | * if the UTM zone parameter is outside the range [1,60]. 100 | * Range of the central meridian is the radian equivalent of [-177,+177]. 101 | * 102 | */ 103 | inline double UTMCentralMeridian(int zone) 104 | { 105 | return DegToRad(-183.0 + (zone * 6.0)); 106 | } 107 | 108 | 109 | /* 110 | * FootpointLatitude 111 | * 112 | * Computes the footpoint latitude for use in converting transverse 113 | * Mercator coordinates to ellipsoidal coordinates. 114 | * 115 | * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J., 116 | * GPS: Theory and Practice, 3rd ed. New York: Springer-Verlag Wien, 1994. 117 | * 118 | * Inputs: 119 | * y - The UTM northing coordinate, in meters. 120 | * 121 | * Returns: 122 | * The footpoint latitude, in radians. 123 | * 124 | */ 125 | double FootpointLatitude(double y) 126 | { 127 | double y_, alpha_, beta_, gamma_, delta_, epsilon_, n; 128 | double result; 129 | 130 | /* Precalculate n (Eq. 10.18) */ 131 | n = (sm_a - sm_b) / (sm_a + sm_b); 132 | 133 | /* Precalculate alpha_ (Eq. 10.22) */ 134 | /* (Same as alpha in Eq. 10.17) */ 135 | alpha_ = ((sm_a + sm_b) / 2.0) * (1 + (pow(n, 2.0) / 4) + (pow(n, 4.0) / 64)); 136 | 137 | /* Precalculate y_ (Eq. 10.23) */ 138 | y_ = y / alpha_; 139 | 140 | /* Precalculate beta_ (Eq. 10.22) */ 141 | beta_ = (3.0 * n / 2.0) + (-27.0 * pow(n, 3.0) / 32.0) + (269.0 * pow(n, 5.0) / 512.0); 142 | 143 | /* Precalculate gamma_ (Eq. 10.22) */ 144 | gamma_ = (21.0 * pow(n, 2.0) / 16.0) + (-55.0 * pow(n, 4.0) / 32.0); 145 | 146 | /* Precalculate delta_ (Eq. 10.22) */ 147 | delta_ = (151.0 * pow(n, 3.0) / 96.0) + (-417.0 * pow(n, 5.0) / 128.0); 148 | 149 | /* Precalculate epsilon_ (Eq. 10.22) */ 150 | epsilon_ = (1097.0 * pow(n, 4.0) / 512.0); 151 | 152 | /* Now calculate the sum of the series (Eq. 10.21) */ 153 | result = y_ + (beta_ * sin(2.0 * y_)) + (gamma_ * sin(4.0 * y_)) + (delta_ * sin(6.0 * y_)) + (epsilon_ * sin(8.0 * y_)); 154 | 155 | return result; 156 | } 157 | 158 | /* 159 | * MapLatLonToXY 160 | * 161 | * Converts a latitude/longitude pair to x and y coordinates in the 162 | * Transverse Mercator projection. Note that Transverse Mercator is not 163 | * the same as UTM; a scale factor is required to convert between them. 164 | * 165 | * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J., 166 | * GPS: Theory and Practice, 3rd ed. New York: Springer-Verlag Wien, 1994. 167 | * 168 | * Inputs: 169 | * phi - Latitude of the point, in radians. 170 | * lambda - Longitude of the point, in radians. 171 | * lambda0 - Longitude of the central meridian to be used, in radians. 172 | * 173 | * Outputs: 174 | * xy - A 2-element array containing the x and y coordinates 175 | * of the computed point. 176 | * 177 | * Returns: 178 | * The function does not return a value. 179 | * 180 | */ 181 | void MapLatLonToXY(double phi, double lambda, double lambda0, UTMCoor &xy) 182 | { 183 | double N, nu2, ep2, t, t2, l; 184 | double l3coef, l4coef, l5coef, l6coef, l7coef, l8coef; 185 | double tmp; 186 | 187 | /* Precalculate ep2 */ 188 | ep2 = (pow(sm_a, 2.0) - pow(sm_b, 2.0)) / pow(sm_b, 2.0); 189 | 190 | /* Precalculate nu2 */ 191 | nu2 = ep2 * pow(cos(phi), 2.0); 192 | 193 | /* Precalculate N */ 194 | N = pow(sm_a, 2.0) / (sm_b * sqrt(1 + nu2)); 195 | 196 | /* Precalculate t */ 197 | t = tan(phi); 198 | t2 = t * t; 199 | tmp = (t2 * t2 * t2) - pow(t, 6.0); 200 | 201 | /* Precalculate l */ 202 | l = lambda - lambda0; 203 | 204 | /* Precalculate coefficients for l**n in the equations below 205 | so a normal human being can read the expressions for easting 206 | and northing 207 | -- l**1 and l**2 have coefficients of 1.0 */ 208 | l3coef = 1.0 - t2 + nu2; 209 | 210 | l4coef = 5.0 - t2 + 9 * nu2 + 4.0 * (nu2 * nu2); 211 | 212 | l5coef = 5.0 - 18.0 * t2 + (t2 * t2) + 14.0 * nu2 - 58.0 * t2 * nu2; 213 | 214 | l6coef = 61.0 - 58.0 * t2 + (t2 * t2) + 270.0 * nu2 - 330.0 * t2 * nu2; 215 | 216 | l7coef = 61.0 - 479.0 * t2 + 179.0 * (t2 * t2) - (t2 * t2 * t2); 217 | 218 | l8coef = 1385.0 - 3111.0 * t2 + 543.0 * (t2 * t2) - (t2 * t2 * t2); 219 | 220 | /* Calculate easting (x) */ 221 | xy.x = N * cos(phi) * l + (N / 6.0 * pow(cos(phi), 3.0) * l3coef * pow(l, 3.0)) 222 | + (N / 120.0 * pow(cos(phi), 5.0) * l5coef * pow(l, 5.0)) 223 | + (N / 5040.0 * pow(cos(phi), 7.0) * l7coef * pow(l, 7.0)); 224 | 225 | /* Calculate northing (y) */ 226 | xy.y = ArcLengthOfMeridian(phi) 227 | + (t / 2.0 * N * pow(cos(phi), 2.0) * pow(l, 2.0)) 228 | + (t / 24.0 * N * pow(cos(phi), 4.0) * l4coef * pow(l, 4.0)) 229 | + (t / 720.0 * N * pow(cos(phi), 6.0) * l6coef * pow(l, 6.0)) 230 | + (t / 40320.0 * N * pow(cos(phi), 8.0) * l8coef * pow(l, 8.0)); 231 | } 232 | 233 | 234 | 235 | /* 236 | * MapXYToLatLon 237 | * 238 | * Converts x and y coordinates in the Transverse Mercator projection to 239 | * a latitude/longitude pair. Note that Transverse Mercator is not 240 | * the same as UTM; a scale factor is required to convert between them. 241 | * 242 | * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J., 243 | * GPS: Theory and Practice, 3rd ed. New York: Springer-Verlag Wien, 1994. 244 | * 245 | * Inputs: 246 | * x - The easting of the point, in meters. 247 | * y - The northing of the point, in meters. 248 | * lambda0 - Longitude of the central meridian to be used, in radians. 249 | * 250 | * Outputs: 251 | * philambda - A 2-element containing the latitude and longitude 252 | * in radians. 253 | * 254 | * Returns: 255 | * The function does not return a value. 256 | * 257 | * Remarks: 258 | * The local variables Nf, nuf2, tf, and tf2 serve the same purpose as 259 | * N, nu2, t, and t2 in MapLatLonToXY, but they are computed with respect 260 | * to the footpoint latitude phif. 261 | * 262 | * x1frac, x2frac, x2poly, x3poly, etc. are to enhance readability and 263 | * to optimize computations. 264 | * 265 | */ 266 | void MapXYToLatLon(double x, double y, double lambda0, WGS84Corr &philambda) 267 | { 268 | double phif, Nf, Nfpow, nuf2, ep2, tf, tf2, tf4, cf; 269 | double x1frac, x2frac, x3frac, x4frac, x5frac, x6frac, x7frac, x8frac; 270 | double x2poly, x3poly, x4poly, x5poly, x6poly, x7poly, x8poly; 271 | 272 | /* Get the value of phif, the footpoint latitude. */ 273 | phif = FootpointLatitude(y); 274 | 275 | /* Precalculate ep2 */ 276 | ep2 = (pow(sm_a, 2.0) - pow(sm_b, 2.0)) / pow(sm_b, 2.0); 277 | 278 | /* Precalculate cos (phif) */ 279 | cf = cos(phif); 280 | 281 | /* Precalculate nuf2 */ 282 | nuf2 = ep2 * pow(cf, 2.0); 283 | 284 | /* Precalculate Nf and initialize Nfpow */ 285 | Nf = pow(sm_a, 2.0) / (sm_b * sqrt(1 + nuf2)); 286 | Nfpow = Nf; 287 | 288 | /* Precalculate tf */ 289 | tf = tan(phif); 290 | tf2 = tf * tf; 291 | tf4 = tf2 * tf2; 292 | 293 | /* Precalculate fractional coefficients for x**n in the equations 294 | below to simplify the expressions for latitude and longitude. */ 295 | x1frac = 1.0 / (Nfpow * cf); 296 | 297 | Nfpow *= Nf; /* now equals Nf**2) */ 298 | x2frac = tf / (2.0 * Nfpow); 299 | 300 | Nfpow *= Nf; /* now equals Nf**3) */ 301 | x3frac = 1.0 / (6.0 * Nfpow * cf); 302 | 303 | Nfpow *= Nf; /* now equals Nf**4) */ 304 | x4frac = tf / (24.0 * Nfpow); 305 | 306 | Nfpow *= Nf; /* now equals Nf**5) */ 307 | x5frac = 1.0 / (120.0 * Nfpow * cf); 308 | 309 | Nfpow *= Nf; /* now equals Nf**6) */ 310 | x6frac = tf / (720.0 * Nfpow); 311 | 312 | Nfpow *= Nf; /* now equals Nf**7) */ 313 | x7frac = 1.0 / (5040.0 * Nfpow * cf); 314 | 315 | Nfpow *= Nf; /* now equals Nf**8) */ 316 | x8frac = tf / (40320.0 * Nfpow); 317 | 318 | /* Precalculate polynomial coefficients for x**n. 319 | -- x**1 does not have a polynomial coefficient. */ 320 | x2poly = -1.0 - nuf2; 321 | 322 | x3poly = -1.0 - 2 * tf2 - nuf2; 323 | 324 | x4poly = 5.0 + 3.0 * tf2 + 6.0 * nuf2 - 6.0 * tf2 * nuf2 - 3.0 * (nuf2 *nuf2) - 9.0 * tf2 * (nuf2 * nuf2); 325 | 326 | x5poly = 5.0 + 28.0 * tf2 + 24.0 * tf4 + 6.0 * nuf2 + 8.0 * tf2 * nuf2; 327 | 328 | x6poly = -61.0 - 90.0 * tf2 - 45.0 * tf4 - 107.0 * nuf2 + 162.0 * tf2 * nuf2; 329 | 330 | x7poly = -61.0 - 662.0 * tf2 - 1320.0 * tf4 - 720.0 * (tf4 * tf2); 331 | 332 | x8poly = 1385.0 + 3633.0 * tf2 + 4095.0 * tf4 + 1575 * (tf4 * tf2); 333 | 334 | /* Calculate latitude */ 335 | philambda.x = phif + x2frac * x2poly * (x * x) + x4frac * x4poly * pow(x, 4.0) + x6frac * x6poly * pow(x, 6.0) + x8frac * x8poly * pow(x, 8.0); 336 | 337 | /* Calculate longitude */ 338 | philambda.y = lambda0 + x1frac * x + x3frac * x3poly * pow(x, 3.0) + x5frac * x5poly * pow(x, 5.0) + x7frac * x7poly * pow(x, 7.0); 339 | } 340 | 341 | public: 342 | /* 343 | * LatLonToUTMXY 344 | * 345 | * Converts a latitude/longitude pair to x and y coordinates in the 346 | * Universal Transverse Mercator projection. 347 | * 348 | * Inputs: 349 | * lat - Latitude of the point, in radians. 350 | * lon - Longitude of the point, in radians. 351 | * zone - UTM zone to be used for calculating values for x and y. 352 | * If zone is less than 1 or greater than 60, the routine 353 | * will determine the appropriate zone from the value of lon. 354 | * 355 | * Outputs: 356 | * xy - A 2-element array where the UTM x and y values will be stored. 357 | * 358 | * Returns: 359 | * void 360 | * 361 | */ 362 | void LatLonToUTMXY(double lat, double lon, int zone, UTMCoor &xy) 363 | { 364 | MapLatLonToXY(lat, lon, UTMCentralMeridian(zone), xy); 365 | 366 | /* Adjust easting and northing for UTM system. */ 367 | xy.x = xy.x * UTMScaleFactor + 500000.0; 368 | xy.y = xy.y * UTMScaleFactor; 369 | if (xy.y < 0.0) 370 | xy.y += 10000000.0; 371 | } 372 | 373 | 374 | 375 | /* 376 | * UTMXYToLatLon 377 | * 378 | * Converts x and y coordinates in the Universal Transverse Mercator 379 | * projection to a latitude/longitude pair. 380 | * 381 | * Inputs: 382 | * x - The easting of the point, in meters. 383 | * y - The northing of the point, in meters. 384 | * zone - The UTM zone in which the point lies. 385 | * southhemi - True if the point is in the southern hemisphere; 386 | * false otherwise. 387 | * 388 | * Outputs: 389 | * latlon - A 2-element array containing the latitude and 390 | * longitude of the point, in radians. 391 | * 392 | * Returns: 393 | * The function does not return a value. 394 | * 395 | */ 396 | void UTMXYToLatLon(double x, double y, int zone, bool southhemi, WGS84Corr &latlon) 397 | { 398 | double cmeridian; 399 | 400 | x -= 500000.0; 401 | x /= UTMScaleFactor; 402 | 403 | /* If in southern hemisphere, adjust y accordingly. */ 404 | if (southhemi) 405 | y -= 10000000.0; 406 | 407 | y /= UTMScaleFactor; 408 | 409 | cmeridian = UTMCentralMeridian(zone); 410 | MapXYToLatLon(x, y, cmeridian, latlon); 411 | } 412 | }; 413 | } 414 | -------------------------------------------------------------------------------- /SurveyPoint.h: -------------------------------------------------------------------------------- 1 | #ifndef SURVEYPOINT_H 2 | #define SURVEYPOINT_H 3 | #include 4 | #include "SurveyMath/BasePoint.h" 5 | namespace SurveyMath { 6 | class SurveyPoint:public BasePoint 7 | { 8 | public: 9 | QString PointName; 10 | QString Code; 11 | }; 12 | 13 | } 14 | #endif //SURVEYPOINT_H 15 | -------------------------------------------------------------------------------- /dialogchangeangle.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogchangeangle.cpp -------------------------------------------------------------------------------- /dialogchangeangle.h: -------------------------------------------------------------------------------- 1 | #ifndef DIALOGCHANGEANGLE_H 2 | #define DIALOGCHANGEANGLE_H 3 | 4 | #include "SurveyMath/SurveyMath.h" 5 | #include "SurveyMath/BasePoint.h" 6 | #include "SurveyMath/CoordinateTransformation.h" 7 | #include "SurveyMath/Ellipsoid.h" 8 | #include "SurveyMath/Projection.h" 9 | #include "SurveyMath/SevenParameter.h" 10 | #include "SurveyPoint.h" 11 | #include 12 | #include 13 | #include 14 | using namespace SurveyMath; 15 | namespace Ui { 16 | class DialogChangeAngle; 17 | } 18 | 19 | class DialogChangeAngle : public QDialog 20 | { 21 | Q_OBJECT 22 | 23 | public: 24 | explicit DialogChangeAngle(QWidget *parent = nullptr); 25 | ~DialogChangeAngle(); 26 | 27 | private slots: 28 | 29 | 30 | void on_pushButton_AngleTran_Point_clicked(); 31 | 32 | void on_comboBox_AngleTran_Source_currentIndexChanged(const QString &arg1); 33 | 34 | void on_pushButton_Another_AngleTran_SelectFile_clicked(); 35 | 36 | void on_pushButton_AngleTran_File_clicked(); 37 | 38 | private: 39 | Ui::DialogChangeAngle *ui; 40 | QString UserFilePath; 41 | private: 42 | double ChangeAngle(double inputAngle); 43 | 44 | 45 | }; 46 | #endif // DIALOGCHANGEANGLE_H 47 | -------------------------------------------------------------------------------- /dialogchangeangle.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogChangeAngle 4 | 5 | 6 | 7 | 0 8 | 0 9 | 490 10 | 350 11 | 12 | 13 | 14 | 角度单位转换 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 471 22 | 61 23 | 24 | 25 | 26 | 转换设置 27 | 28 | 29 | 30 | 31 | 13 32 | 21 33 | 351 34 | 24 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 | 10 110 | 150 111 | 471 112 | 191 113 | 114 | 115 | 116 | 批量转换 117 | 118 | 119 | 120 | 121 | 10 122 | 20 123 | 451 124 | 25 125 | 126 | 127 | 128 | 129 | 130 | 131 | 选择文件 132 | 133 | 134 | 135 | 136 | 137 | 138 | true 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 380 148 | 50 149 | 75 150 | 23 151 | 152 | 153 | 154 | 转换 155 | 156 | 157 | 158 | 159 | 160 | 10 161 | 160 162 | 549 163 | 23 164 | 165 | 166 | 167 | 原始文件数据排列顺序不限,选择需要转换的列即可。 168 | 169 | 170 | 171 | 172 | 173 | 10 174 | 80 175 | 451 176 | 71 177 | 178 | 179 | 180 | 181 | 182 | 183 | 10 184 | 50 185 | 221 186 | 23 187 | 188 | 189 | 190 | 数据预览如下,请选择需要转换的列: 191 | 192 | 193 | 194 | 195 | 196 | 197 | 10 198 | 80 199 | 471 200 | 61 201 | 202 | 203 | 204 | 单点转换 205 | 206 | 207 | 208 | 209 | 10 210 | 20 211 | 451 212 | 25 213 | 214 | 215 | 216 | 217 | 218 | 219 | 源角度: 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 转换 230 | 231 | 232 | 233 | 234 | 235 | 236 | 目标角度: 237 | 238 | 239 | 240 | 241 | 242 | 243 | true 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | -------------------------------------------------------------------------------- /dialogchangeangle_copy1.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 589 10 | 262 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 571 22 | 81 23 | 24 | 25 | 26 | 单点转换 27 | 28 | 29 | 30 | 31 | 10 32 | 50 33 | 551 34 | 25 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 | true 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 13 75 | 21 76 | 351 77 | 24 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 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 目标角度单位: 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 度分秒 130 | 131 | 132 | 133 | 134 | 弧度 135 | 136 | 137 | 138 | 139 | 百分度 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 10 153 | 100 154 | 571 155 | 151 156 | 157 | 158 | 159 | 文件转换 160 | 161 | 162 | 163 | 164 | 10 165 | 90 166 | 551 167 | 25 168 | 169 | 170 | 171 | 172 | 173 | 174 | 原始文件为逗号分隔符(csv)文件,数据排列顺序不限,请在选择文件时指定要转换的列。 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 10 184 | 50 185 | 551 186 | 25 187 | 188 | 189 | 190 | 191 | 192 | 193 | 选择文件 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 13 206 | 21 207 | 351 208 | 24 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 源角度单位: 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 十进制度 226 | 227 | 228 | 229 | 230 | 度分秒 231 | 232 | 233 | 234 | 235 | 弧度 236 | 237 | 238 | 239 | 240 | 百分度 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 目标角度单位: 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 度分秒 261 | 262 | 263 | 264 | 265 | 弧度 266 | 267 | 268 | 269 | 270 | 百分度 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 490 283 | 120 284 | 75 285 | 23 286 | 287 | 288 | 289 | 转换 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | -------------------------------------------------------------------------------- /dialogchangezone.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogchangezone.cpp -------------------------------------------------------------------------------- /dialogchangezone.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogchangezone.h -------------------------------------------------------------------------------- /dialogchangezone.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogChangeZone 4 | 5 | 6 | 7 | 0 8 | 0 9 | 450 10 | 320 11 | 12 | 13 | 14 | 换带计算 15 | 16 | 17 | 18 | 19 | 10 20 | 230 21 | 431 22 | 81 23 | 24 | 25 | 26 | 批量转换 27 | 28 | 29 | 30 | 31 | 10 32 | 20 33 | 411 34 | 25 35 | 36 | 37 | 38 | 39 | 40 | 41 | 选择文件 42 | 43 | 44 | 45 | 46 | 47 | 48 | true 49 | 50 | 51 | true 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 360 61 | 50 62 | 61 63 | 23 64 | 65 | 66 | 67 | 换带 68 | 69 | 70 | 71 | 72 | 73 | 10 74 | 52 75 | 341 76 | 20 77 | 78 | 79 | 80 | QFrame::NoFrame 81 | 82 | 83 | 逗号分隔符文件(CSV),格式为“点号,北,东,高”,高可省略! 84 | 85 | 86 | 87 | 88 | 89 | 90 | 200 91 | 150 92 | 51 93 | 23 94 | 95 | 96 | 97 | 换带 98 | 99 | 100 | 101 | 102 | 103 | 10 104 | 10 105 | 431 106 | 91 107 | 108 | 109 | 110 | 投影设置 111 | 112 | 113 | 114 | 115 | 10 116 | 21 117 | 411 118 | 22 119 | 120 | 121 | 122 | 123 | 124 | 125 | 坐标系统: 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 国家2000 134 | 135 | 136 | 137 | 138 | 北京54 139 | 140 | 141 | 142 | 143 | 西安80 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 东偏移: 152 | 153 | 154 | 155 | 156 | 157 | 158 | 500000 159 | 160 | 161 | 162 | 163 | 164 | 165 | 北偏移: 166 | 167 | 168 | 169 | 170 | 171 | 172 | 0 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 10 182 | 50 183 | 191 184 | 22 185 | 186 | 187 | 188 | 189 | 190 | 191 | 换带前中央子午线: 192 | 193 | 194 | 195 | 196 | 197 | 198 | 114 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 210 208 | 50 209 | 211 210 | 22 211 | 212 | 213 | 214 | 215 | 216 | 217 | 换带后中央子午线: 218 | 219 | 220 | 221 | 222 | 223 | 224 | 117 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 260 235 | 110 236 | 181 237 | 111 238 | 239 | 240 | 241 | 换带后坐标 242 | 243 | 244 | 245 | 246 | 10 247 | 20 248 | 161 249 | 80 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 北坐标: 259 | 260 | 261 | 262 | 263 | 264 | 265 | true 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 东坐标: 277 | 278 | 279 | 280 | 281 | 282 | 283 | true 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 10 296 | 110 297 | 181 298 | 111 299 | 300 | 301 | 302 | 换带前坐标 303 | 304 | 305 | 306 | 307 | 10 308 | 20 309 | 161 310 | 80 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 北坐标: 320 | 321 | 322 | 323 | 324 | 325 | 326 | 4391960.252 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 东坐标: 338 | 339 | 340 | 341 | 342 | 343 | 344 | 464082.012 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | -------------------------------------------------------------------------------- /dialogcoordinatedirectsolution.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogcoordinatedirectsolution.cpp -------------------------------------------------------------------------------- /dialogcoordinatedirectsolution.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogcoordinatedirectsolution.h -------------------------------------------------------------------------------- /dialogcoordinatedirectsolution.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogCoordinateDirectsolution 4 | 5 | 6 | 7 | 0 8 | 0 9 | 550 10 | 315 11 | 12 | 13 | 14 | 坐标正算 15 | 16 | 17 | 18 | 19 | 10 20 | 70 21 | 531 22 | 141 23 | 24 | 25 | 26 | 单点转换 27 | 28 | 29 | 30 | 31 | 10 32 | 20 33 | 201 34 | 111 35 | 36 | 37 | 38 | 大地坐标 39 | 40 | 41 | 42 | 43 | 10 44 | 20 45 | 181 46 | 80 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 纬度: 56 | 57 | 58 | 59 | 60 | 61 | 62 | Qt::ImhDigitsOnly 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 | 111 | 112 | 113 | 330 114 | 20 115 | 191 116 | 111 117 | 118 | 119 | 120 | 高斯坐标 121 | 122 | 123 | 124 | 125 | 10 126 | 20 127 | 171 128 | 80 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 北: 138 | 139 | 140 | 141 | 142 | 143 | 144 | true 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 东: 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | true 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 高程: 177 | 178 | 179 | 180 | 181 | 182 | 183 | true 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 230 196 | 50 197 | 83 198 | 22 199 | 200 | 201 | 202 | 203 | 204 | 205 | 带号: 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 50N 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 230 225 | 80 226 | 81 227 | 23 228 | 229 | 230 | 231 | 转换坐标 232 | 233 | 234 | 235 | 236 | 237 | 238 | 10 239 | 290 240 | 621 241 | 20 242 | 243 | 244 | 245 | QFrame::NoFrame 246 | 247 | 248 | 说明:逗号分隔符文件(CSV),格式为“点号,纬度,经度,椭球高”,椭球高可省略! 249 | 250 | 251 | 252 | 253 | 254 | 10 255 | 10 256 | 531 257 | 51 258 | 259 | 260 | 261 | 投影设置 262 | 263 | 264 | 265 | 266 | 300 267 | 20 268 | 101 269 | 22 270 | 271 | 272 | 273 | 274 | 2 275 | 276 | 277 | 278 | 279 | 东偏移: 280 | 281 | 282 | 283 | 284 | 285 | 286 | 500000 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 410 296 | 20 297 | 111 298 | 22 299 | 300 | 301 | 302 | 303 | 2 304 | 305 | 306 | 307 | 308 | 北偏移: 309 | 310 | 311 | 312 | 313 | 314 | 315 | 0 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 240 325 | 20 326 | 51 327 | 20 328 | 329 | 330 | 331 | 117 332 | 333 | 334 | 335 | 336 | 337 | 70 338 | 20 339 | 91 340 | 20 341 | 342 | 343 | 344 | 345 | 国家2000 346 | 347 | 348 | 349 | 350 | 北京54 351 | 352 | 353 | 354 | 355 | 西安80 356 | 357 | 358 | 359 | 360 | WGS84 361 | 362 | 363 | 364 | 365 | UTM 366 | 367 | 368 | 369 | 370 | 使用七参数 371 | 372 | 373 | 374 | 375 | 376 | 377 | 10 378 | 20 379 | 71 380 | 20 381 | 382 | 383 | 384 | 坐标系统: 385 | 386 | 387 | 388 | 389 | 390 | 170 391 | 20 392 | 72 393 | 20 394 | 395 | 396 | 397 | 中央子午线: 398 | 399 | 400 | 401 | 402 | 403 | 404 | 10 405 | 220 406 | 531 407 | 61 408 | 409 | 410 | 411 | 批量转换 412 | 413 | 414 | 415 | 416 | 10 417 | 20 418 | 511 419 | 25 420 | 421 | 422 | 423 | 424 | 425 | 426 | 选择文件 427 | 428 | 429 | 430 | 431 | 432 | 433 | true 434 | 435 | 436 | true 437 | 438 | 439 | 440 | 441 | 442 | 443 | 转换 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | -------------------------------------------------------------------------------- /dialogcoordinateinvertsolution.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogcoordinateinvertsolution.cpp -------------------------------------------------------------------------------- /dialogcoordinateinvertsolution.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogcoordinateinvertsolution.h -------------------------------------------------------------------------------- /dialogcoordinateinvertsolution.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogCoordinateInvertsolution 4 | 5 | 6 | 7 | 0 8 | 0 9 | 550 10 | 315 11 | 12 | 13 | 14 | 坐标反算 15 | 16 | 17 | 18 | 19 | 10 20 | 70 21 | 531 22 | 141 23 | 24 | 25 | 26 | 单点转换 27 | 28 | 29 | 30 | 31 | 10 32 | 20 33 | 201 34 | 111 35 | 36 | 37 | 38 | 大地坐标 39 | 40 | 41 | 42 | 43 | 10 44 | 20 45 | 181 46 | 80 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 北: 56 | 57 | 58 | 59 | 60 | 61 | 62 | Qt::ImhDigitsOnly 63 | 64 | 65 | 3076276.807 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 东: 77 | 78 | 79 | 80 | 81 | 82 | 83 | 575647.322 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 高程: 95 | 96 | 97 | 98 | 99 | 100 | 101 | 2274.663 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 330 114 | 20 115 | 191 116 | 111 117 | 118 | 119 | 120 | 高斯坐标 121 | 122 | 123 | 124 | 125 | 10 126 | 20 127 | 171 128 | 80 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 纬度: 138 | 139 | 140 | 141 | 142 | 143 | 144 | true 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 经度: 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | true 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 大地高: 177 | 178 | 179 | 180 | 181 | 182 | 183 | true 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 230 196 | 40 197 | 83 198 | 22 199 | 200 | 201 | 202 | 203 | 204 | 205 | 带号: 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 50N 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 230 225 | 70 226 | 81 227 | 23 228 | 229 | 230 | 231 | 转换坐标 232 | 233 | 234 | 235 | 236 | 237 | 238 | 10 239 | 290 240 | 621 241 | 20 242 | 243 | 244 | 245 | QFrame::NoFrame 246 | 247 | 248 | 说明:逗号分隔符文件(CSV),格式为“点号,北,东,高程”,高程可省略! 249 | 250 | 251 | 252 | 253 | 254 | 10 255 | 10 256 | 531 257 | 51 258 | 259 | 260 | 261 | 投影设置 262 | 263 | 264 | 265 | 266 | 300 267 | 20 268 | 101 269 | 22 270 | 271 | 272 | 273 | 274 | 2 275 | 276 | 277 | 278 | 279 | 东偏移: 280 | 281 | 282 | 283 | 284 | 285 | 286 | 500000 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 410 296 | 20 297 | 111 298 | 22 299 | 300 | 301 | 302 | 303 | 2 304 | 305 | 306 | 307 | 308 | 北偏移: 309 | 310 | 311 | 312 | 313 | 314 | 315 | 0 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 240 325 | 20 326 | 51 327 | 20 328 | 329 | 330 | 331 | 117 332 | 333 | 334 | 335 | 336 | 337 | 70 338 | 20 339 | 91 340 | 20 341 | 342 | 343 | 344 | 345 | 国家2000 346 | 347 | 348 | 349 | 350 | 北京54 351 | 352 | 353 | 354 | 355 | 西安80 356 | 357 | 358 | 359 | 360 | WGS84 361 | 362 | 363 | 364 | 365 | UTM 366 | 367 | 368 | 369 | 370 | 使用七参数 371 | 372 | 373 | 374 | 375 | 376 | 377 | 10 378 | 20 379 | 71 380 | 20 381 | 382 | 383 | 384 | 坐标系统: 385 | 386 | 387 | 388 | 389 | 390 | 170 391 | 20 392 | 72 393 | 20 394 | 395 | 396 | 397 | 中央子午线: 398 | 399 | 400 | 401 | 402 | 403 | 404 | 10 405 | 220 406 | 531 407 | 61 408 | 409 | 410 | 411 | 批量转换 412 | 413 | 414 | 415 | 416 | 10 417 | 20 418 | 511 419 | 25 420 | 421 | 422 | 423 | 424 | 425 | 426 | 选择文件 427 | 428 | 429 | 430 | 431 | 432 | 433 | true 434 | 435 | 436 | true 437 | 438 | 439 | 440 | 441 | 442 | 443 | 转换 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | -------------------------------------------------------------------------------- /dialogcoordinatetokml.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/dialogcoordinatetokml.cpp -------------------------------------------------------------------------------- /dialogcoordinatetokml.h: -------------------------------------------------------------------------------- 1 | #ifndef DIALOGCOORDINATETOKML_H 2 | #define DIALOGCOORDINATETOKML_H 3 | #include 4 | #include 5 | #include "SurveyMath/SurveyMath.h" 6 | #include "SurveyMath/BasePoint.h" 7 | #include "SurveyPoint.h" 8 | #include "kml/dom.h" 9 | 10 | using namespace SurveyMath; 11 | using namespace kmldom; 12 | namespace Ui { 13 | class DialogCoordinateToKml; 14 | } 15 | 16 | class DialogCoordinateToKml : public QDialog 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit DialogCoordinateToKml(QWidget *parent = nullptr); 22 | ~DialogCoordinateToKml(); 23 | 24 | private slots: 25 | void on_pushButton_Tans_TansFile_clicked(); 26 | 27 | void on_pushButton_Tans_SelectFile_clicked(); 28 | 29 | private: 30 | Ui::DialogCoordinateToKml *ui; 31 | PlacemarkPtr CreateLineStringPlacemark(QVector &points,QString name ); 32 | PlacemarkPtr CreatePointPlacemark(BasePoint &location,QString name); 33 | 34 | QSharedPointer kmlFactory ; 35 | QVector sourcePointVector; 36 | QVector targetPointVector; 37 | QVector inputPointVector; 38 | QVector outputPointVector; 39 | }; 40 | 41 | #endif // DIALOGCOORDINATETOKML_H 42 | -------------------------------------------------------------------------------- /dialogcoordinatetokml.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogCoordinateToKml 4 | 5 | 6 | 7 | 0 8 | 0 9 | 560 10 | 195 11 | 12 | 13 | 14 | 大地坐标转KML文件 15 | 16 | 17 | 18 | 19 | 10 20 | 70 21 | 541 22 | 51 23 | 24 | 25 | 26 | 选择文件 27 | 28 | 29 | 30 | 31 | 10 32 | 20 33 | 521 34 | 25 35 | 36 | 37 | 38 | 39 | 40 | 41 | 打开文件 42 | 43 | 44 | 45 | 46 | 47 | 48 | true 49 | 50 | 51 | true 52 | 53 | 54 | 55 | 56 | 57 | 58 | 转换 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 10 69 | 130 70 | 621 71 | 20 72 | 73 | 74 | 75 | QFrame::NoFrame 76 | 77 | 78 | 说明:坐标文件为逗号分隔符文件(CSV),格式为“点号,纬度,经度,椭球高,编码”,椭球高可省略。 79 | 80 | 81 | 82 | 83 | 84 | 45 85 | 150 86 | 621 87 | 20 88 | 89 | 90 | 91 | QFrame::NoFrame 92 | 93 | 94 | 编码可省略,若按编码识别,编码为“0”时表示单点。 95 | 96 | 97 | 98 | 99 | 100 | 10 101 | 10 102 | 541 103 | 51 104 | 105 | 106 | 107 | 转换设置 108 | 109 | 110 | 111 | 112 | 50 113 | 20 114 | 231 115 | 18 116 | 117 | 118 | 119 | 120 | 121 | 122 | 单点 123 | 124 | 125 | true 126 | 127 | 128 | 129 | 130 | 131 | 132 | 连线 133 | 134 | 135 | 136 | 137 | 138 | 139 | 按编码识别 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 45 150 | 170 151 | 621 152 | 20 153 | 154 | 155 | 156 | QFrame::NoFrame 157 | 158 | 159 | 除编码“0”以外,其它所有编码相同的点会按先后顺序连成一条线,并用编码标记线名。 160 | 161 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /dialogkmltocoordinate.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 402 10 | 202 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 381 22 | 91 23 | 24 | 25 | 26 | 投影设置 27 | 28 | 29 | 30 | 31 | 8 32 | 50 33 | 361 34 | 24 35 | 36 | 37 | 38 | 39 | 2 40 | 41 | 42 | 43 | 44 | 2 45 | 46 | 47 | 48 | 49 | 中央子午线: 50 | 51 | 52 | 53 | 54 | 55 | 56 | 117 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 东偏移: 66 | 67 | 68 | 69 | 70 | 71 | 72 | 500000 73 | 74 | 75 | 76 | 77 | 78 | 79 | 北偏移: 80 | 81 | 82 | 83 | 84 | 85 | 86 | 0 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 10 96 | 20 97 | 361 98 | 22 99 | 100 | 101 | 102 | 103 | 104 | 105 | 仅导出大地坐标 106 | 107 | 108 | true 109 | 110 | 111 | 112 | 113 | 114 | 115 | 使用转换关系 116 | 117 | 118 | true 119 | 120 | 121 | 122 | 123 | 124 | 125 | 坐标系统: 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 国家2000 134 | 135 | 136 | 137 | 138 | 北京54 139 | 140 | 141 | 142 | 143 | 西安80 144 | 145 | 146 | 147 | 148 | WGS84 149 | 150 | 151 | 152 | 153 | UTM 154 | 155 | 156 | 157 | 158 | 使用七参数 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 10 170 | 110 171 | 381 172 | 81 173 | 174 | 175 | 176 | 选择文件 177 | 178 | 179 | 180 | 181 | 10 182 | 20 183 | 361 184 | 25 185 | 186 | 187 | 188 | 189 | 190 | 191 | 打开文件 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 290 204 | 50 205 | 75 206 | 23 207 | 208 | 209 | 210 | 转换 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "mainwindow.h" 5 | #include "qtranswindow.h" 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | MainWindow w; 10 | w.show(); 11 | 12 | return a.exec(); 13 | } 14 | -------------------------------------------------------------------------------- /mainwindow.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include "ui_mainwindow.h" 3 | 4 | #include 5 | MainWindow::MainWindow(QWidget *parent) : 6 | QMainWindow(parent), 7 | ui(new Ui::MainWindow) 8 | { 9 | ui->setupUi(this); 10 | } 11 | 12 | MainWindow::~MainWindow() 13 | { 14 | delete ui; 15 | } 16 | 17 | void MainWindow::on_action_caculatesevenpara_triggered() 18 | { 19 | viewsevenParameterDialog = QSharedPointer(new ViewSevenParameterDialog(this)); 20 | viewsevenParameterDialog->show(); 21 | viewsevenParameterDialog->setFixedSize(370,455); 22 | } 23 | 24 | void MainWindow::on_action_changeangle_triggered() 25 | { 26 | dialogChangeAngle = QSharedPointer(new DialogChangeAngle(this)) ; 27 | dialogChangeAngle->show(); 28 | dialogChangeAngle->setFixedSize(490,350); 29 | 30 | } 31 | 32 | void MainWindow::on_action_coordinatetokml_triggered() 33 | { 34 | dialogCoordinateToKml = QSharedPointer(new DialogCoordinateToKml(this)) ; 35 | dialogCoordinateToKml->show(); 36 | dialogCoordinateToKml->setFixedSize(560,195); 37 | } 38 | 39 | void MainWindow::on_action_changezone_triggered() 40 | { 41 | dialogChangeZone = QSharedPointer(new DialogChangeZone(this)) ; 42 | dialogChangeZone->show(); 43 | dialogChangeZone->setFixedSize(450,320); 44 | 45 | } 46 | 47 | void MainWindow::on_action_coordinatedirectsolution_triggered() 48 | { 49 | dialogCoordinateDirectsolution = QSharedPointer(new DialogCoordinateDirectsolution(this)) ; 50 | dialogCoordinateDirectsolution->show(); 51 | dialogCoordinateDirectsolution->setFixedSize(550,315); 52 | } 53 | 54 | void MainWindow::on_action_coordinateinversionsolution_triggered() 55 | { 56 | dialogCoordinateInvertsolution = QSharedPointer(new DialogCoordinateInvertsolution(this)) ; 57 | dialogCoordinateInvertsolution->show(); 58 | dialogCoordinateInvertsolution->setFixedSize(550,315); 59 | } 60 | -------------------------------------------------------------------------------- /mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | #include 4 | #include 5 | #include "dialogchangeangle.h" 6 | #include "viewsevenparameterdialog.h" 7 | #include "dialogcoordinatetokml.h" 8 | #include "dialogchangezone.h" 9 | #include "dialogcoordinatedirectsolution.h" 10 | #include "dialogcoordinateinvertsolution.h" 11 | namespace Ui { 12 | class MainWindow; 13 | } 14 | 15 | class MainWindow : public QMainWindow 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | explicit MainWindow(QWidget *parent = nullptr); 21 | ~MainWindow(); 22 | 23 | private slots: 24 | void on_action_caculatesevenpara_triggered(); 25 | 26 | void on_action_changeangle_triggered(); 27 | 28 | void on_action_coordinatetokml_triggered(); 29 | 30 | void on_action_changezone_triggered(); 31 | 32 | void on_action_coordinatedirectsolution_triggered(); 33 | 34 | void on_action_coordinateinversionsolution_triggered(); 35 | 36 | private: 37 | Ui::MainWindow *ui; 38 | QSharedPointer dialogChangeAngle; 39 | QSharedPointer viewsevenParameterDialog; 40 | QSharedPointer dialogCoordinateToKml; 41 | QSharedPointer dialogChangeZone; 42 | QSharedPointer dialogCoordinateDirectsolution; 43 | QSharedPointer dialogCoordinateInvertsolution; 44 | 45 | }; 46 | 47 | #endif // MAINWINDOW_H 48 | -------------------------------------------------------------------------------- /mainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 600 11 | 12 | 13 | 14 | 地理信息工具箱 15 | 16 | 17 | 18 | 19 | 20 | 0 21 | 0 22 | 800 23 | 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 | 大地坐标转换KML 95 | 96 | 97 | 98 | 99 | KML转坐标 100 | 101 | 102 | 103 | 104 | 投影基准 105 | 106 | 107 | 108 | 109 | KML提取大地坐标 110 | 111 | 112 | 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /qTrans.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2018-12-25T18:57:02 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui 8 | 9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 10 | 11 | TARGET = qTrans 12 | TEMPLATE = app 13 | # The following define makes your compiler emit warnings if you use 14 | # any feature of Qt which has been marked as deprecated (the exact warnings 15 | # depend on your compiler). Please consult the documentation of the 16 | # deprecated API in order to know how to port your code away from it. 17 | DEFINES += QT_DEPRECATED_WARNINGS 18 | 19 | # You can also make your code fail to compile if you use deprecated APIs. 20 | # In order to do so, uncomment the following line. 21 | # You can also select to disable deprecated APIs only up to a certain version of Qt. 22 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 23 | 24 | CONFIG += c++11 25 | 26 | SOURCES += \ 27 | dialogchangeangle.cpp \ 28 | dialogchangezone.cpp \ 29 | dialogcoordinatedirectsolution.cpp \ 30 | dialogcoordinateinvertsolution.cpp \ 31 | dialogcoordinatetokml.cpp \ 32 | main.cpp \ 33 | mainwindow.cpp \ 34 | qtranswindow.cpp \ 35 | SurveyMath/CoordinateTransformation.cpp \ 36 | SurveyMath/SurveyMath.cpp \ 37 | sevenparameterdialog.cpp \ 38 | sevenparameterhassistant.cpp \ 39 | viewsevenparameterdialog.cpp 40 | 41 | HEADERS += \ 42 | dialogchangeangle.h \ 43 | dialogchangezone.h \ 44 | dialogcoordinatedirectsolution.h \ 45 | dialogcoordinateinvertsolution.h \ 46 | dialogcoordinatetokml.h \ 47 | mainwindow.h \ 48 | qtranswindow.h \ 49 | SurveyMath/BasePoint.h \ 50 | SurveyMath/CoordinateTransformation.h \ 51 | SurveyMath/Ellipsoid.h \ 52 | SurveyMath/Enumerate.h \ 53 | SurveyMath/Projection.h \ 54 | SurveyMath/SevenParameter.h \ 55 | SurveyMath/SurveyMath.h \ 56 | sevenparameterdialog.h \ 57 | sevenparameterhassistant.h \ 58 | SurveyPoint.h \ 59 | viewsevenparameterdialog.h 60 | 61 | FORMS += \ 62 | dialogchangeangle.ui \ 63 | dialogchangezone.ui \ 64 | dialogcoordinatedirectsolution.ui \ 65 | dialogcoordinateinvertsolution.ui \ 66 | dialogcoordinatetokml.ui \ 67 | dialogkmltocoordinate.ui \ 68 | mainwindow.ui \ 69 | qtranswindow.ui \ 70 | sevenparameterdialog.ui \ 71 | viewsevenparameterdialog.ui 72 | 73 | # Default rules for deployment. 74 | qnx: target.path = /tmp/$${TARGET}/bin 75 | else: unix:!android: target.path = /opt/$${TARGET}/bin 76 | !isEmpty(target.path): INSTALLS += target 77 | 78 | 79 | 80 | INCLUDEPATH += D:/libkml/include 81 | DEPENDPATH += D:/libkml/include 82 | LIBS += -LD:/libkml/lib/ -llibkmlbase \ 83 | -llibkmlconvenience \ 84 | -llibkmldom \ 85 | -llibkmlengine \ 86 | -llibkmlregionator \ 87 | -llibkmlxsd \ 88 | -lminizip \ 89 | -luriparser \ 90 | -lzlib \ 91 | -lexpat 92 | -------------------------------------------------------------------------------- /qTrans.pro.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EnvironmentId 7 | {a02b6653-5307-4565-8a6a-3e689ce68609} 8 | 9 | 10 | ProjectExplorer.Project.ActiveTarget 11 | 0 12 | 13 | 14 | ProjectExplorer.Project.EditorSettings 15 | 16 | true 17 | false 18 | true 19 | 20 | Cpp 21 | 22 | CppGlobal 23 | 24 | 25 | 26 | QmlJS 27 | 28 | QmlJSGlobal 29 | 30 | 31 | 2 32 | System 33 | false 34 | 4 35 | false 36 | 80 37 | true 38 | true 39 | 1 40 | true 41 | false 42 | 0 43 | true 44 | true 45 | 0 46 | 8 47 | true 48 | 1 49 | true 50 | true 51 | true 52 | false 53 | 54 | 55 | 56 | ProjectExplorer.Project.PluginSettings 57 | 58 | 59 | -fno-delayed-template-parsing 60 | 61 | true 62 | 63 | 64 | 65 | ProjectExplorer.Project.Target.0 66 | 67 | Desktop Qt 5.12.0 MSVC2017 64bit 68 | Desktop Qt 5.12.0 MSVC2017 64bit 69 | {f4e7f890-9f24-496b-9760-1dfe08d2b118} 70 | 1 71 | 0 72 | 0 73 | 74 | E:/Code/QT/build-qTrans-Desktop_Qt_5_12_0_MSVC2017_64bit-Debug 75 | 76 | 77 | true 78 | qmake 79 | 80 | QtProjectManager.QMakeBuildStep 81 | true 82 | 83 | false 84 | false 85 | false 86 | 87 | 88 | true 89 | Make 90 | 91 | Qt4ProjectManager.MakeStep 92 | 93 | false 94 | 95 | 96 | false 97 | 98 | 2 99 | Build 100 | 101 | ProjectExplorer.BuildSteps.Build 102 | 103 | 104 | 105 | true 106 | Make 107 | 108 | Qt4ProjectManager.MakeStep 109 | 110 | true 111 | clean 112 | 113 | false 114 | 115 | 1 116 | Clean 117 | 118 | ProjectExplorer.BuildSteps.Clean 119 | 120 | 2 121 | false 122 | 123 | Debug 124 | Debug 125 | Qt4ProjectManager.Qt4BuildConfiguration 126 | 2 127 | true 128 | 129 | 130 | E:/Code/QT/build-qTrans-Desktop_Qt_5_12_0_MSVC2017_64bit-Release 131 | 132 | 133 | true 134 | qmake 135 | 136 | QtProjectManager.QMakeBuildStep 137 | false 138 | 139 | false 140 | false 141 | true 142 | 143 | 144 | true 145 | Make 146 | 147 | Qt4ProjectManager.MakeStep 148 | 149 | false 150 | 151 | 152 | false 153 | 154 | 2 155 | Build 156 | 157 | ProjectExplorer.BuildSteps.Build 158 | 159 | 160 | 161 | true 162 | Make 163 | 164 | Qt4ProjectManager.MakeStep 165 | 166 | true 167 | clean 168 | 169 | false 170 | 171 | 1 172 | Clean 173 | 174 | ProjectExplorer.BuildSteps.Clean 175 | 176 | 2 177 | false 178 | 179 | Release 180 | Release 181 | Qt4ProjectManager.Qt4BuildConfiguration 182 | 0 183 | true 184 | 185 | 186 | E:/Code/QT/build-qTrans-Desktop_Qt_5_12_0_MSVC2017_64bit-Profile 187 | 188 | 189 | true 190 | qmake 191 | 192 | QtProjectManager.QMakeBuildStep 193 | true 194 | 195 | false 196 | true 197 | true 198 | 199 | 200 | true 201 | Make 202 | 203 | Qt4ProjectManager.MakeStep 204 | 205 | false 206 | 207 | 208 | false 209 | 210 | 2 211 | Build 212 | 213 | ProjectExplorer.BuildSteps.Build 214 | 215 | 216 | 217 | true 218 | Make 219 | 220 | Qt4ProjectManager.MakeStep 221 | 222 | true 223 | clean 224 | 225 | false 226 | 227 | 1 228 | Clean 229 | 230 | ProjectExplorer.BuildSteps.Clean 231 | 232 | 2 233 | false 234 | 235 | Profile 236 | Profile 237 | Qt4ProjectManager.Qt4BuildConfiguration 238 | 0 239 | true 240 | 241 | 3 242 | 243 | 244 | 0 245 | 部署 246 | 247 | ProjectExplorer.BuildSteps.Deploy 248 | 249 | 1 250 | Deploy Configuration 251 | 252 | ProjectExplorer.DefaultDeployConfiguration 253 | 254 | 1 255 | 256 | 257 | dwarf 258 | 259 | cpu-cycles 260 | 261 | 262 | 250 263 | -F 264 | true 265 | 4096 266 | false 267 | false 268 | 1000 269 | 270 | true 271 | 272 | false 273 | false 274 | false 275 | false 276 | true 277 | 0.01 278 | 10 279 | true 280 | kcachegrind 281 | 1 282 | 25 283 | 284 | 1 285 | true 286 | false 287 | true 288 | valgrind 289 | 290 | 0 291 | 1 292 | 2 293 | 3 294 | 4 295 | 5 296 | 6 297 | 7 298 | 8 299 | 9 300 | 10 301 | 11 302 | 12 303 | 13 304 | 14 305 | 306 | 2 307 | 308 | qTrans 309 | 310 | Qt4ProjectManager.Qt4RunConfiguration:E:/Code/QT/qTrans/qTrans.pro 311 | 312 | 3768 313 | false 314 | true 315 | true 316 | false 317 | false 318 | true 319 | 320 | E:/Code/QT/build-qTrans-Desktop_Qt_5_12_0_MSVC2017_64bit-Release 321 | 322 | 1 323 | 324 | 325 | 326 | ProjectExplorer.Project.TargetCount 327 | 1 328 | 329 | 330 | ProjectExplorer.Project.Updater.FileVersion 331 | 21 332 | 333 | 334 | Version 335 | 21 336 | 337 | 338 | -------------------------------------------------------------------------------- /qtranswindow.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/qtranswindow.cpp -------------------------------------------------------------------------------- /qtranswindow.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/qtranswindow.h -------------------------------------------------------------------------------- /qtranswindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | qTransWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 821 10 | 598 11 | 12 | 13 | 14 | 坐标转换工具箱 15 | 16 | 17 | 18 | 19 | 20 | 0 21 | 0 22 | 641 23 | 561 24 | 25 | 26 | 27 | 1 28 | 29 | 30 | 31 | 坐标转换 32 | 33 | 34 | 35 | 36 | 10 37 | 130 38 | 251 39 | 111 40 | 41 | 42 | 43 | 输入坐标 44 | 45 | 46 | 47 | 48 | 10 49 | 20 50 | 231 51 | 80 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 纬度: 61 | 62 | 63 | 64 | 65 | 66 | 67 | Qt::ImhDigitsOnly 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 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 10 119 | 10 120 | 621 121 | 51 122 | 123 | 124 | 125 | 投影设置 126 | 127 | 128 | 129 | 130 | 390 131 | 20 132 | 101 133 | 22 134 | 135 | 136 | 137 | 138 | 2 139 | 140 | 141 | 142 | 143 | 东偏移: 144 | 145 | 146 | 147 | 148 | 149 | 150 | 500000 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 500 160 | 20 161 | 111 162 | 22 163 | 164 | 165 | 166 | 167 | 2 168 | 169 | 170 | 171 | 172 | 北偏移: 173 | 174 | 175 | 176 | 177 | 178 | 179 | 0 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 10 189 | 20 190 | 371 191 | 22 192 | 193 | 194 | 195 | 196 | 197 | 198 | 使用七参数 199 | 200 | 201 | true 202 | 203 | 204 | 205 | 206 | 207 | 208 | 坐标系统: 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 国家2000 217 | 218 | 219 | 220 | 221 | 北京54 222 | 223 | 224 | 225 | 226 | 西安80 227 | 228 | 229 | 230 | 231 | WGS84 232 | 233 | 234 | 235 | 236 | UTM 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 中央子午线: 245 | 246 | 247 | 248 | 249 | 250 | 251 | 117 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 380 262 | 130 263 | 251 264 | 111 265 | 266 | 267 | 268 | 输出坐标 269 | 270 | 271 | 272 | 273 | 10 274 | 20 275 | 231 276 | 80 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 北: 286 | 287 | 288 | 289 | 290 | 291 | 292 | true 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 东: 304 | 305 | 306 | 307 | 308 | 309 | 310 | true 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 高程: 322 | 323 | 324 | 325 | 326 | 327 | 328 | true 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 10 341 | 250 342 | 621 343 | 61 344 | 345 | 346 | 347 | 批量转换 348 | 349 | 350 | 351 | 352 | 10 353 | 20 354 | 601 355 | 25 356 | 357 | 358 | 359 | 360 | 361 | 362 | 选择文件 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 转换 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 280 383 | 170 384 | 81 385 | 23 386 | 387 | 388 | 389 | 转换坐标 390 | 391 | 392 | 393 | 394 | 395 | 10 396 | 70 397 | 621 398 | 51 399 | 400 | 401 | 402 | 坐标类型: 403 | 404 | 405 | 406 | 407 | 12 408 | 20 409 | 178 410 | 22 411 | 412 | 413 | 414 | 415 | 416 | 417 | 输入坐标类型: 418 | 419 | 420 | 421 | 422 | 423 | 424 | 大地坐标 425 | 426 | 427 | 428 | 大地坐标 429 | 430 | 431 | 432 | 433 | 平面坐标 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 210 444 | 20 445 | 91 446 | 22 447 | 448 | 449 | 450 | 451 | 452 | 453 | 带号: 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 50N 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 280 474 | 200 475 | 81 476 | 23 477 | 478 | 479 | 480 | 清除数据 481 | 482 | 483 | 484 | 485 | 486 | 10 487 | 320 488 | 621 489 | 20 490 | 491 | 492 | 493 | QFrame::NoFrame 494 | 495 | 496 | 说明:逗号分隔符文件(CSV),格式为“点号,北(纬度),东(经度),高程(椭球高)”,高程(椭球高)可省略! 497 | 498 | 499 | 500 | 501 | 502 | 换带计算 503 | 504 | 505 | 506 | 507 | 10 508 | 220 509 | 621 510 | 61 511 | 512 | 513 | 514 | 批量转换 515 | 516 | 517 | 518 | 519 | 10 520 | 20 521 | 601 522 | 25 523 | 524 | 525 | 526 | 527 | 528 | 529 | 选择文件 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 换带 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 380 550 | 70 551 | 251 552 | 141 553 | 554 | 555 | 556 | 换带后坐标 557 | 558 | 559 | 560 | 561 | 10 562 | 50 563 | 231 564 | 80 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 北坐标: 574 | 575 | 576 | 577 | 578 | 579 | 580 | true 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 东坐标: 592 | 593 | 594 | 595 | 596 | 597 | 598 | true 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 10 610 | 20 611 | 231 612 | 22 613 | 614 | 615 | 616 | 617 | 618 | 619 | 中央子午线: 620 | 621 | 622 | 623 | 624 | 625 | 626 | 117 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 10 637 | 70 638 | 241 639 | 141 640 | 641 | 642 | 643 | 换带前坐标 644 | 645 | 646 | 647 | 648 | 10 649 | 50 650 | 221 651 | 80 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 北坐标: 661 | 662 | 663 | 664 | 665 | 666 | 667 | 4391960.252 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 东坐标: 679 | 680 | 681 | 682 | 683 | 684 | 685 | 464082.012 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 10 697 | 20 698 | 221 699 | 22 700 | 701 | 702 | 703 | 704 | 705 | 706 | 中央子午线: 707 | 708 | 709 | 710 | 711 | 712 | 713 | 118.30 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 10 724 | 10 725 | 621 726 | 51 727 | 728 | 729 | 730 | 投影设置 731 | 732 | 733 | 734 | 735 | 12 736 | 21 737 | 411 738 | 22 739 | 740 | 741 | 742 | 743 | 744 | 745 | 坐标系统: 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 国家2000 754 | 755 | 756 | 757 | 758 | 北京54 759 | 760 | 761 | 762 | 763 | 西安80 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 东偏移: 772 | 773 | 774 | 775 | 776 | 777 | 778 | 500000 779 | 780 | 781 | 782 | 783 | 784 | 785 | 北偏移: 786 | 787 | 788 | 789 | 790 | 791 | 792 | 0 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 270 803 | 130 804 | 91 805 | 23 806 | 807 | 808 | 809 | 换带 810 | 811 | 812 | 813 | 814 | 815 | 10 816 | 290 817 | 501 818 | 20 819 | 820 | 821 | 822 | QFrame::NoFrame 823 | 824 | 825 | 说明:逗号分隔符文件(CSV),格式为“点号,北,东,高程”,高程可省略! 826 | 827 | 828 | 829 | 830 | 831 | 0 832 | 360 833 | 621 834 | 20 835 | 836 | 837 | 838 | QFrame::NoFrame 839 | 840 | 841 | 说明:逗号分隔符文件(CSV),格式为“点号,北(纬度),东(经度),高程(椭球高)”,高程(椭球高)可省略! 842 | 843 | 844 | 845 | 846 | 847 | KML文件转换 848 | 849 | 850 | 851 | 852 | 10 853 | 70 854 | 621 855 | 61 856 | 857 | 858 | 859 | 坐标文件转KML 860 | 861 | 862 | 863 | 864 | 11 865 | 21 866 | 601 867 | 25 868 | 869 | 870 | 871 | 872 | 873 | 874 | 输入坐标类型: 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 大地坐标 883 | 884 | 885 | 886 | 887 | 平面坐标 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 选择文件 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 转换 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 10 916 | 140 917 | 621 918 | 61 919 | 920 | 921 | 922 | KML转坐标文件 923 | 924 | 925 | 926 | 927 | 11 928 | 21 929 | 601 930 | 25 931 | 932 | 933 | 934 | 935 | 936 | 937 | 输出坐标类型: 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 大地坐标 946 | 947 | 948 | 949 | 950 | 平面坐标 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 选择文件 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 转换 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 10 979 | 210 980 | 621 981 | 61 982 | 983 | 984 | 985 | DXF转KML 986 | 987 | 988 | 989 | 990 | 10 991 | 20 992 | 601 993 | 25 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 选择文件 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 转换 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 10 1021 | 280 1022 | 621 1023 | 61 1024 | 1025 | 1026 | 1027 | KML转DXF 1028 | 1029 | 1030 | 1031 | 1032 | 10 1033 | 20 1034 | 601 1035 | 25 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 选择文件 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 转换 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 10 1063 | 10 1064 | 621 1065 | 51 1066 | 1067 | 1068 | 1069 | 投影设置 1070 | 1071 | 1072 | 1073 | 1074 | 370 1075 | 20 1076 | 121 1077 | 22 1078 | 1079 | 1080 | 1081 | 1082 | 2 1083 | 1084 | 1085 | 1086 | 1087 | 东偏移: 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 500000 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 500 1104 | 20 1105 | 111 1106 | 22 1107 | 1108 | 1109 | 1110 | 1111 | 2 1112 | 1113 | 1114 | 1115 | 1116 | 北偏移: 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 0 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 10 1133 | 20 1134 | 356 1135 | 22 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 使用七参数 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 坐标系统: 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 国家2000 1158 | 1159 | 1160 | 1161 | 1162 | 北京54 1163 | 1164 | 1165 | 1166 | 1167 | 西安80 1168 | 1169 | 1170 | 1171 | 1172 | WGS84 1173 | 1174 | 1175 | 1176 | 1177 | UTM 1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 中央子午线: 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 117 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 其它功能 1203 | 1204 | 1205 | 1206 | 1207 | 10 1208 | 10 1209 | 621 1210 | 121 1211 | 1212 | 1213 | 1214 | 角度单位转换 1215 | 1216 | 1217 | 1218 | 1219 | 10 1220 | 50 1221 | 551 1222 | 25 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 源角度: 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 单点转换 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 目标角度: 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | true 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 10 1263 | 80 1264 | 601 1265 | 25 1266 | 1267 | 1268 | 1269 | 1270 | 1271 | 1272 | 选择文件 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 转换文件 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 13 1292 | 21 1293 | 351 1294 | 24 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 源角度单位: 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 十进制度 1312 | 1313 | 1314 | 1315 | 1316 | 度分秒 1317 | 1318 | 1319 | 1320 | 1321 | 弧度 1322 | 1323 | 1324 | 1325 | 1326 | 百分度 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | 1338 | 目标角度单位: 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 度分秒 1347 | 1348 | 1349 | 1350 | 1351 | 弧度 1352 | 1353 | 1354 | 1355 | 1356 | 百分度 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | 1372 | 0 1373 | 0 1374 | 821 1375 | 23 1376 | 1377 | 1378 | 1379 | 1380 | 七参数 1381 | 1382 | 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1389 | 七参数计算 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | -------------------------------------------------------------------------------- /selectcolumndialog.h: -------------------------------------------------------------------------------- 1 | #ifndef SELECTCOLUMNDIALOG_H 2 | #define SELECTCOLUMNDIALOG_H 3 | 4 | #include 5 | 6 | namespace Ui { 7 | class SelectColumnDialog; 8 | } 9 | 10 | class SelectColumnDialog : public QDialog 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | explicit SelectColumnDialog(QWidget *parent = nullptr); 16 | ~SelectColumnDialog(); 17 | 18 | private: 19 | Ui::SelectColumnDialog *ui; 20 | }; 21 | 22 | #endif // SELECTCOLUMNDIALOG_H 23 | -------------------------------------------------------------------------------- /sevenparameterdialog.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/sevenparameterdialog.cpp -------------------------------------------------------------------------------- /sevenparameterdialog.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/sevenparameterdialog.h -------------------------------------------------------------------------------- /sevenparameterdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | SevenParameterDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 680 10 | 480 11 | 12 | 13 | 14 | 七参数计算 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 661 22 | 341 23 | 24 | 25 | 26 | 控制点文件 27 | 28 | 29 | 30 | 31 | 10 32 | 20 33 | 641 34 | 25 35 | 36 | 37 | 38 | 39 | 40 | 41 | 打开文件 42 | 43 | 44 | 45 | 46 | 47 | 48 | true 49 | 50 | 51 | 52 | 53 | 54 | true 55 | 56 | 57 | 58 | 59 | lineEdit_GCP_FilePath 60 | pushButton_Target_File 61 | 62 | 63 | 64 | 65 | 10 66 | 50 67 | 641 68 | 281 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 | dX 109 | 110 | 111 | 112 | 113 | dY 114 | 115 | 116 | 117 | 118 | dZ 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 10 127 | 450 128 | 391 129 | 20 130 | 131 | 132 | 133 | QFrame::NoFrame 134 | 135 | 136 | 说明:坐标系统已知的情况下建议使用经典七参,一步法只适合小范围! 137 | 138 | 139 | 140 | 141 | 142 | 10 143 | 360 144 | 661 145 | 80 146 | 147 | 148 | 149 | 计算 150 | 151 | 152 | 153 | 154 | 10 155 | 20 156 | 61 157 | 20 158 | 159 | 160 | 161 | 坐标系统: 162 | 163 | 164 | Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 165 | 166 | 167 | 168 | 169 | 170 | 10 171 | 51 172 | 61 173 | 23 174 | 175 | 176 | 177 | 计算方法: 178 | 179 | 180 | Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 181 | 182 | 183 | 184 | 185 | 186 | 460 187 | 20 188 | 41 189 | 20 190 | 191 | 192 | 193 | 北偏移: 194 | 195 | 196 | 197 | 198 | true 199 | 200 | 201 | 202 | 380 203 | 20 204 | 61 205 | 20 206 | 207 | 208 | 209 | 500000 210 | 211 | 212 | 213 | 214 | 215 | 170 216 | 20 217 | 72 218 | 20 219 | 220 | 221 | 222 | 中央子午线: 223 | 224 | 225 | 226 | 227 | true 228 | 229 | 230 | 231 | 70 232 | 20 233 | 81 234 | 20 235 | 236 | 237 | 238 | false 239 | 240 | 241 | 0 242 | 243 | 244 | 245 | 国家2000 246 | 247 | 248 | 249 | 250 | 北京54 251 | 252 | 253 | 254 | 255 | 西安80 256 | 257 | 258 | 259 | 260 | 261 | true 262 | 263 | 264 | 265 | 510 266 | 20 267 | 71 268 | 20 269 | 270 | 271 | 272 | 0 273 | 274 | 275 | 276 | 277 | 278 | 70 279 | 52 280 | 81 281 | 20 282 | 283 | 284 | 285 | 经典七参 286 | 287 | 288 | 289 | 经典七参 290 | 291 | 292 | 293 | 294 | 一步法 295 | 296 | 297 | 298 | 299 | 300 | true 301 | 302 | 303 | 304 | 240 305 | 20 306 | 71 307 | 20 308 | 309 | 310 | 311 | 117 312 | 313 | 314 | 315 | 316 | 317 | 330 318 | 20 319 | 48 320 | 20 321 | 322 | 323 | 324 | 东偏移: 325 | 326 | 327 | 328 | 329 | 330 | 170 331 | 50 332 | 75 333 | 23 334 | 335 | 336 | 337 | 计算参数 338 | 339 | 340 | 341 | 342 | false 343 | 344 | 345 | 346 | 260 347 | 50 348 | 75 349 | 23 350 | 351 | 352 | 353 | 查看参数 354 | 355 | 356 | 357 | 358 | 359 | 570 360 | 50 361 | 75 362 | 23 363 | 364 | 365 | 366 | 取消 367 | 368 | 369 | 370 | 371 | false 372 | 373 | 374 | 375 | 480 376 | 50 377 | 75 378 | 23 379 | 380 | 381 | 382 | 确定 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | -------------------------------------------------------------------------------- /sevenparameterhassistant.cpp: -------------------------------------------------------------------------------- 1 | #include "sevenparameterhassistant.h" 2 | bool SevenParameterhAssistant::isSet = false; 3 | int SevenParameterhAssistant::Type = 0; 4 | Projection SevenParameterhAssistant::sourcePrjoject ; 5 | Projection SevenParameterhAssistant::targetPrjoject; 6 | SevenParameter SevenParameterhAssistant::sevenParameter; 7 | QString SevenParameterhAssistant::projectName = QString::fromLocal8Bit("һ"); 8 | SevenParameterhAssistant::SevenParameterhAssistant() 9 | { 10 | } 11 | -------------------------------------------------------------------------------- /sevenparameterhassistant.h: -------------------------------------------------------------------------------- 1 | #ifndef SEVENPARAMETERHASSISTANT_H 2 | #define SEVENPARAMETERHASSISTANT_H 3 | #include 4 | #include "SurveyMath/SevenParameter.h" 5 | #include "SurveyMath/Projection.h" 6 | using namespace SurveyMath; 7 | class SevenParameterhAssistant 8 | { 9 | public: 10 | SevenParameterhAssistant(); 11 | static bool isSet; 12 | static int Type; 13 | static Projection sourcePrjoject; 14 | static Projection targetPrjoject; 15 | static SevenParameter sevenParameter; 16 | static QString projectName; 17 | }; 18 | 19 | #endif // SEVENPARAMETERHASSISTANT_H 20 | -------------------------------------------------------------------------------- /viewsevenparameterdialog.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hoeboy/qTrans/271c803bd7d61172e10dbff26d19794bdddb86b4/viewsevenparameterdialog.cpp -------------------------------------------------------------------------------- /viewsevenparameterdialog.h: -------------------------------------------------------------------------------- 1 | #ifndef VIEWSEVENPARAMETERDIALOG_H 2 | #define VIEWSEVENPARAMETERDIALOG_H 3 | 4 | #include 5 | #include 6 | #include "sevenparameterdialog.h" 7 | #include "ui_viewsevenparameterdialog.h" 8 | 9 | 10 | namespace Ui { 11 | class ViewSevenParameterDialog; 12 | } 13 | 14 | class ViewSevenParameterDialog : public QDialog 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit ViewSevenParameterDialog(QWidget *parent = nullptr); 20 | ~ViewSevenParameterDialog(); 21 | 22 | private slots: 23 | 24 | void on_pushButton_Caculate_clicked(); 25 | 26 | void on_pushButton_Close_clicked(); 27 | 28 | void on_pushButton_Save_clicked(); 29 | 30 | void on_pushButton_Input_clicked(); 31 | 32 | void on_pushButton_Apply_clicked(); 33 | 34 | private: 35 | Ui::ViewSevenParameterDialog *ui; 36 | QTableWidgetItem *itemType; 37 | QTableWidgetItem *itemProject; 38 | QTableWidgetItem *itemMiddleLine; 39 | QTableWidgetItem *itemFalseEast; 40 | QTableWidgetItem *itemFalseNorth; 41 | QTableWidgetItem *itemDX; 42 | QTableWidgetItem *itemDY; 43 | QTableWidgetItem *itemDZ; 44 | QTableWidgetItem *itemRX; 45 | QTableWidgetItem *itemRY; 46 | QTableWidgetItem *itemRZ; 47 | QTableWidgetItem *itemPPM; 48 | 49 | 50 | }; 51 | 52 | #endif // VIEWSEVENPARAMETERDIALOG_H 53 | -------------------------------------------------------------------------------- /viewsevenparameterdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | ViewSevenParameterDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 370 10 | 455 11 | 12 | 13 | 14 | 七参数计算 15 | 16 | 17 | 18 | 19 | 10 20 | 60 21 | 351 22 | 391 23 | 24 | 25 | 26 | 七参数 27 | 28 | 29 | 30 | 31 | 10 32 | 20 33 | 331 34 | 361 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 | DX(米) 65 | 66 | 67 | 68 | 69 | DY(米) 70 | 71 | 72 | 73 | 74 | DZ(米) 75 | 76 | 77 | 78 | 79 | RX(秒) 80 | 81 | 82 | 83 | 84 | RY(秒) 85 | 86 | 87 | 88 | 89 | RZ(秒) 90 | 91 | 92 | 93 | 94 | PPM 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 10 108 | 10 109 | 351 110 | 41 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 10 120 | 10 121 | 75 122 | 23 123 | 124 | 125 | 126 | 127 | 75 128 | 0 129 | 130 | 131 | 132 | 计算参数 133 | 134 | 135 | 136 | 137 | 138 | 90 139 | 10 140 | 75 141 | 23 142 | 143 | 144 | 145 | 146 | 75 147 | 0 148 | 149 | 150 | 151 | 保存参数 152 | 153 | 154 | 155 | 156 | 157 | 170 158 | 10 159 | 75 160 | 23 161 | 162 | 163 | 164 | 165 | 75 166 | 0 167 | 168 | 169 | 170 | 导入参数 171 | 172 | 173 | 174 | 175 | 176 | 250 177 | 10 178 | 71 179 | 23 180 | 181 | 182 | 183 | 184 | 71 185 | 0 186 | 187 | 188 | 189 | 应用参数 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | --------------------------------------------------------------------------------