预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

坐标转换从经纬度坐标到大地坐标及源码 利用网络上开源的资料,可以很容易的实现从经纬度坐标向各种投影坐标的转换,美国地质调查局开发USGS的GCTP就是很好的东西之一,有C语言版本的支持各种投影类型的源代码,比如UNIVERSALTRANSVERSEMERCATOR,ALBERSCONICALEQUALAREA,LAMBERTCONFORMALCONIC等等,我们机房使用的就是LAMBERTCONFORMALCONIC(LAMBERT圆锥等角投影),利用GCTP提供的源代码详见source文件夹下的lamccfor.c和lamccinv.c,可以轻松实现经纬度投影坐标和LAMBERTCONFORMALCONIC坐标的相互转化,其他投影方式使用的比较少,还要进一步研究,就以后在写了.lamccforint函数设置LAMBERTCONFORMALCONIC投影的各个参数,比如长半轴,短半轴,中心点经纬度坐标,标准纬线等等信息.longlamccforint(r_maj,r_min,lat1,lat2,c_lon,c_lat,false_east,false_north)doubler_maj;/*majoraxis*/doubler_min;/*minoraxis*/doublelat1;/*firststandardparallel*/doublelat2;/*secondstandardparallel*/doublec_lon;/*centerlongitude*/doublec_lat;/*centerlatitude*/doublefalse_east;/*xoffsetinmeters*/doublefalse_north;/*yoffsetinmeters*/{doublesin_po;/*sinvalue*/doublecos_po;/*cosvalue*/doublecon;/*temporaryvariable*/doublems1;/*smallm1*/doublems2;/*smallm2*/doubletemp;/*temporaryvariable*/doublets0;/*smallt0*/doublets1;/*smallt1*/doublets2;/*smallt2*/r_major=r_maj;r_minor=r_min;false_northing=false_north;false_easting=false_east;/*StandardParallelscannotbeequalandonoppositesidesoftheequator------------------------------------------------------------------------*/if(fabs(lat1lat2)<EPSLN){p_error("EquallatitudesforSt.Parallelsonoppositesidesofequator","lamcc-for");return(41);}temp=r_minor/r_major;es=1.0-SQUARE(temp);e=sqrt(es);center_lon=c_lon;center_lat=c_lat;sincos(lat1,&sin_po,&cos_po);con=sin_po;ms1=msfnz(e,sin_po,cos_po);ts1=tsfnz(e,lat1,sin_po);sincos(lat2,&sin_po,&cos_po);ms2=msfnz(e,sin_po,cos_po);ts2=tsfnz(e,lat2,sin_po);sin_po=sin(center_lat);ts0=tsfnz(e,center_lat,sin_po);if(fabs(lat1-lat2)>EPSLN)ns=log(ms1/ms2)/log(ts1/ts2);elsens=con;f0=ms1/(ns*pow(ts1,ns));rh=r_major*f0*pow(ts0,ns);/*Reportparameterstotheuser-----------------------------*/ptitle("LAMBERTCONFORMALCONIC");radius2(r_major,r_minor);stanparl(lat1,lat2);cenlonmer(center_lon);origin(c_lat);offsetp(false_easting,false_northing);return(OK);}lamccfor函数实现输入任意点经纬度值输出此投影下对应的点的大地坐标longlamccfor(lon,lat