测绘-高斯投影正算关于修改椭球参数的问题

问题描述

高斯投影正算关于修改椭球参数的问题
    下面是高斯正算的代码,可以实现BL到54的转换,没有问题,我现在要实现BL到80的转换,我应该怎么改椭球参数呢?            const double PI = Math.PI; //定义圆周率    const double rho = 206264.806247096355;    /// <summary>    /// 高斯正算    /// </summary>    /// <param name=""B"">纬度(度)</param>    /// <param name=""L"">经度(度)</param>    /// <param name=""num"">带号</param>    public double[] CalculateEllipse2plane(double Bdouble Ldouble num)    {        AngleCalculate ac = new AngleCalculate(); //用于角度弧度转换        double lL0a0a3a4a5a6nc;        l = 0;L0 = 0;a0 = 0;a3 = 0;a4 = 0;a5 = 0;a6 = 0;n = 0;c = 0;        double xy;        x = 0;y = 0;        double m p;        m = 0;p = 0;        int N;//带号        N = 0;        //判断带号        if(num == 6)        {            N = (int)L/6;//带号            L0 = 6*N-3;//中央子午线        }        else        {            N = (int)((L+1.5)/3); //3度带号            L0 = 3*N;//3度中央子午线        }        bool sign = true;        l = (L - L0) * 3600/rho; //单位秒        if (l < 0) sign = false;        B = ac.AngleToArc(B);//将纬度化为弧度        L = ac.AngleToArc(L);//将经度化为弧度        L0 = ac.AngleToArc(L0);//将中央子午线转为弧度        l = Math.Pow(l2);        c = Math.Pow(Math.Cos(B)2); //Cos(B)的平方        //n = 6399596.651988010- (21562.267 - (108.973 - 0.612 * c) * c) * c;        n = 6399698.902-(21562.267-(108.973-0.612 * c)*c)*c;        a0 = 32140.404-(135.3302-(0.7092-0.0040*c)*c)*c;         a3 =(0.3333333+0.001123*c)*c-0.1666667;        a4 = (0.25+0.00252*c)*c-0.04166;        a5=0.0083-(0.1667-(0.1968+0.004*c)*c)*c;        a6=(0.166*c-0.084)*c;         //计算平面坐标并化为国家统一坐标        m=Math.Sin(B)*Math.Cos(B);        p = 1+(a3+a5*l)*l;        x=6367558.4969*B-(a0-(0.5+(a4+a6*l)*l)*l*n)*m;        y=(p)*Math.Sqrt(l)*n*Math.Cos(B);        if (sign)        {            y = y + 500000 + N * 1000000; //加上常数改正,和带号        }        else        {            y =  (500000 - y) + N * 1000000; //加上常数改正,和带号        }        double[] CalculateResult = new double[2];        CalculateResult[0] = x;        CalculateResult[1] = y;        return CalculateResult;    }

解决方案

http://blog.163.com/lisoaring@126/blog/static/192056062013218101823592/

时间: 2024-08-22 15:20:20

测绘-高斯投影正算关于修改椭球参数的问题的相关文章

sql语句-sql 语句根据六种球类和总数算出六个球的百分比

问题描述 sql 语句根据六种球类和总数算出六个球的百分比 select sum(case when g.golffield_ball = 0 then 1 else 0 end) 高尔夫球, sum(case when g.golffield_ball = 1 then 1 else 0 end) 羽毛球, sum(case when g.golffield_ball = 3 then 1 else 0 end) 乒乓球, sum(case when g.golffield_ball = 5

修改Linux内核参数提高Nginx服务器在高并发时的性能

并发 Linux下高并发的Nginx服务器,当TCP TIME_WAIT套接字数量经常达到两.三万,服务器很容易被拖死.通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套接字数量. vi /etc/sysctl.conf 增加以下几行: 引用 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse =

javascript-如何用JavaScript 修改一个带参数的 onclick 的方法???

问题描述 如何用JavaScript 修改一个带参数的 onclick 的方法??? 比如 添加 怎么通过javascript用 document.getElementById("foo").onclick修改onclick所调用的方法,换成另一个带参数的方法 解决方案 document.getElementById('foo').onclick=function(){ show(param); }; 如果感觉有用,请采纳 解决方案二: 重新再写一个,后写的会覆盖前写的

在Oracle关闭情况下如何修改spfile的参数_oracle

发现问题 我使用的Oracle11g,当我敲下如下一段命令后,就让我傻眼了.. alter system set sga_max_size=960M scope=spfile; shutdown immediate startup 此时的startup报错了,错误为: SQL> startup ORA-00844: Parameter not taking MEMORY_TARGET into account ORA-00851: SGA_MAX_SIZE 985661440 cannot be

如何在SUSE Linux 10上安装Oracle:修改Linux内核参数

1 Oracle 11g 的内核要求: fs.file-max = 512 * PROCESSESkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.http://www.aliyun.com/zixun/aggregation/6133.html">ipv4.ip_local_port_range = 560.html">

ORACLE 11.2 RAC修改数据库静态参数

操作系统:HP UNIX 11.31 数据库:oracle 11.2 rac 今天对一套ORACLE 11.2 RAC数据库进行参数调整,修改db_files为3000,系统默认为200.顺便修改了操作系统的内核参数:fs_async,服务器也需要重启. 操作计划: 1.参数在两个节点都修改完毕,不重启机器和数据. 2.先重启节点1,节点2先不动,等节点1起来之后,再重启节点2. 故障: 可是在节点1启动之后,实例怎么都起不来,然后手工用srvctl启动实例报错: racdb1:/home/gr

matlab拟合三维椭球

        同学问的,查了下资料. %需要拟合的点的坐标为(0,-174.802,990.048),(0.472,-171.284,995.463),(0.413,-168.639,1003.55),(0.064,-167.862,1019.55), %(0,-170.357,1035.44),(0,-172.142,1044.78),(0.215,-174.759,1047.84),(0.171,-176.586,1048.13),(0,-179.832,1043.34),(0,181.5

oracle修改最大连接数参数processes

修改ORACLE最大连接数 Oracle的连接数相关参数:processes.sessions. Oracle的sessions是个派生值,由processes的值决定  1.通过SQLPlus修改 查看数据库连接数 SQL> show parameter processes; processes integer 150 SQL> show parameter sessions; sessions  integer 248 SQL> alter system set processes=

CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享_PostgreSQL

PostgreSQL在CentOS上部署的时候,需要设置一些操作系统的参数,官方文档上列举了一些(传送门).除了这些,还有一些其他的设置,如单个用户允许的最大进程数,单个进程的最大句柄数等,这些一般也需要调整,否则系统会在一些条件下出现问题,或者性能下降.下面从系统资源限制类和内存参数优化类来进行说明. 系统资源限制类 1.单个用户允许的最大进程数:linux系统默认是1024,如果PG的最大连接数超过1024,则实际的连接数会小于1024(PG的postmaster进程,checkpointe