现在的位置: 首页 > 综合 > 正文

GIS中关于经纬度的两个计算

2013年10月11日 ⁄ 综合 ⁄ 共 853字 ⁄ 字号 评论关闭

一、
子午线周长(公里)
40008.548

赤道周长(公里)
40075.704

纬度
40008.548 / 360(度) = 111.135 公里/度
40008.548 / (360*60)(分) = 1.85 公里/分
40008.548 / (360*60*60)(秒) = 30.87 米/秒

经度
首先算相应经度位置的纬度圈长度=40075.704 * cos(经度)
然后方法相同,除度数就成
于是,比如北京40度
40075.704 * cos(40) = 30699.77
40075.704 * cos(40) / 360(度) = 85.277 公里/度
40075.704 * cos(40) / 360*60)(分) = 1.42 公里/分
40075.704 * cos(40) / 360*60*60)(秒) = 23.688 米/秒

附:
cos(a) = sin(90-a)

二、计算两个点之间的距离 求得两个点的经度和纬度

 

    public static double GetDistance(double bx,double by,double fx,double fy)
        
{
            
double wd1=bx;
            
double wd2=bx;
            
double jd1=fy;
            
double jd2=fy;
            
double R=6.371229*1000000.0;
            
double x,y,outdis;
            x
=(jd2-jd1)*Math.PI*R*Math.Cos(((wd1+wd2)/2)*Math.PI/180)/180;
            y
=(wd2-wd1)*Math.PI*R/180;
            outdis
=Math.Sqrt(x*x+y*y);
            returnoutdis
/1000;
        }

bx,by是起始点的经纬度,fx,fy是终点的经纬度 输出是公里数

 

抱歉!评论已关闭.