c语言坐标反算,高斯投影坐标反算c语言代码

高斯投影坐标反算C语言代码,如需交流请联系我:799318025

高斯投影坐标反算c语言代码

#include

#include

#include

main()

{

printf("#####################################################\n");

printf("# 角度输入说明:如26°12′45.2″输入为26,12,45.2 #\n");

printf("#####################################################\n");

double x,y;

int j,L0;

printf("请输入高斯投影坐标(自然坐标),中间用逗号隔开:\n");

scanf("%lf,%lf",&x,&y);

//自然坐标输入

printf("请输入中央子午线L0:\n");

scanf("%d,%d,%lf",&L0); //中

央子午线输入

printf("请选择参考椭球:1.北京1954参考椭球 。\n 2.西安1980参考

椭球。\n");

printf("选择的参考椭球为:");

scanf("%d",&j);

//选择椭球参数

if(j==1)

{

long double Bf0=0.157046064172*pow(10,-6)*x;

long double

Bf=Bf0+cos(Bf0)*(0.005051773759*sin(Bf0)-0.000029837302*pow(sin(Bf0),3)+0.00000023818

9*pow(sin(Bf0),5));

long double t=tan(Bf);

long double m=0.00673852541468*pow(cos(Bf),2);

long double V=1+m;

long double N=6378245.000/sqrt(1-0.00669342162297*pow(sin(Bf),2));

long double

B1=Bf-1.0/2*V*t*pow(y/N,2)+1.0/24*(5+3*pow(t,2)+m-9*m*pow(t,2))*V*t*pow(y/N,4)-1.0/72

0*(61+90*pow(t,2)+45*pow(t,4))

*V*t*pow(y/N,6);

long double l1=(1/cos(Bf))*(y/N)-1.0/6*(1+2*pow(t,2)+m)*(1/cos(Bf))*pow(y/N,3)

+1.0/120*(5+28*pow(t,2)+24*pow(t,4)+6*m+8*m*pow(t,2))*(1/cos(Bf))*pow(y/N,5);

long double B=B1*57.29577951;

long double l=l1*57.29577951;

long double L=L0+l;

int d2=int(B);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值