|
@@ -11,71 +11,25 @@ iv::Ivfault *gfault = nullptr;
|
|
|
|
|
|
#include "gnss_coordinate_convert.h"
|
|
|
|
|
|
-#include "proj.h"
|
|
|
+
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
{
|
|
|
|
|
|
|
|
|
- PJ_CONTEXT *C;//用于处理多线程程序
|
|
|
- PJ *P;//初始化投影目标
|
|
|
- PJ *norm;//初始化投影目标
|
|
|
- PJ_COORD ap, bp,cp;//初始化投影坐标
|
|
|
-
|
|
|
-
|
|
|
- C = proj_context_create();//创建多线程,由于本示例为单线程,此处为展示作用
|
|
|
-
|
|
|
-
|
|
|
- P = proj_create_crs_to_crs (C,
|
|
|
- "WGS84",
|
|
|
- "+proj=tmerc +ellps=WGS84 +datum=WGS84 +units=m +lat_0=28.3252659663377 +lon_0=117.810536087614 +no_defs", /* or EPSG:32632 */
|
|
|
- NULL);
|
|
|
- // P = proj_create(C,"+proj=tmerc +ellps=WGS84 +datum=WGS84 +units=m +lat_0=28.3252659663377 +lon_0=117.810536087614 +no_defs");
|
|
|
-
|
|
|
- if (0 == P) {
|
|
|
- std::cout << "Failed to create transformation object." << stderr << endl;
|
|
|
- return 1;
|
|
|
- }//如果P中两个投影的字符串不符合proj定义,提示转换失败
|
|
|
-
|
|
|
- norm = proj_normalize_for_visualization(C, P);
|
|
|
-
|
|
|
- if (0 == norm) {
|
|
|
-
|
|
|
- fprintf(stderr, "Failed to normalize transformation object.\n");
|
|
|
-
|
|
|
- return 1;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- proj_destroy(P);
|
|
|
-
|
|
|
- P = norm;
|
|
|
-
|
|
|
-
|
|
|
- ap = proj_coord(117.8080745, 28.3220144, 0, 0);//设定待转换的投影坐标,此处分别为经度,纬度,高程,时间
|
|
|
- /* transform to UTM zone 32, then back to geographical */
|
|
|
- bp = proj_trans(P, PJ_FWD, ap);//投影转换,fwd代表源投影转换成目标投影,INV代表目标投影转换为源投影
|
|
|
- std::cout << "East: " << bp.enu.e << "; North:" << bp.enu.n <<endl;;//经纬度转化为xy坐标
|
|
|
|
|
|
- bp.enu.e = 0;
|
|
|
- bp.enu.n = 0;
|
|
|
- bp = proj_trans(P, PJ_INV, bp);//xy坐标转化为经纬度坐标
|
|
|
- std::cout << "Longitude: " << bp.lp.lam << "; Latitude: " << bp.lp.phi <<endl;;//lam为经度,phi为纬度
|
|
|
|
|
|
- cp.enu.e = 0;
|
|
|
- cp.enu.n = 0;
|
|
|
- cp = proj_trans(P, PJ_INV, cp);//xy坐标转化为经纬度坐标
|
|
|
- double lat1 = 28.3252660;
|
|
|
- double lon1 = 117.8105351;
|
|
|
- double xv1,yv1;
|
|
|
- GaussProjCal(lon1,lat1,&xv1,&yv1);
|
|
|
+// double lat1 = 28.3252660;
|
|
|
+// double lon1 = 117.8105351;
|
|
|
+// double xv1,yv1;
|
|
|
+// GaussProjCal(lon1,lat1,&xv1,&yv1);
|
|
|
|
|
|
- double lat2 = 28.3220144;
|
|
|
- double lon2 = 117.8080745;
|
|
|
- double xv2,yv2;
|
|
|
- GaussProjCal(lon2,lat2,&xv2,&yv2);
|
|
|
+// double lat2 = 28.3220144;
|
|
|
+// double lon2 = 117.8080745;
|
|
|
+// double xv2,yv2;
|
|
|
+// GaussProjCal(lon2,lat2,&xv2,&yv2);
|
|
|
|
|
|
- qDebug("relx: %f rely::%f ",xv2-xv1,yv2-yv1);
|
|
|
+// qDebug("relx: %f rely::%f ",xv2-xv1,yv2-yv1);
|
|
|
|
|
|
showversion("driver_gps_hcp2");
|
|
|
QCoreApplication a(argc, argv);
|