NJU1healer的个人博客分享 http://blog.sciencenet.cn/u/NJU1healer

博文

地理坐标中1度的距离是多少?

已有 21469 次阅读 2020-7-31 14:18 |个人分类:遥感专业知识|系统分类:科研笔记

(1)经度

       1经度 = 2 x 3.1415926 x 6378.137 / 360 x cos a ≈ 111.32 cos a (公里)

  其中,a 代表纬度。如在赤道,一个经度就约为111.32 公里。

   EARTH_RADIUS = 6378.137 km  PI = 3.1415926

image.pngimage.png

注意:角速度是单位时间沿圆弧运动的弧度,弧度乘以半径等于弧长,弧长即为路程,单位时间内运动的路程即为速度。360o度的角度等于2л弧度,2лr=周长。线速度角速度*半径R

(2)纬度

在赤道上经度差1度对应的实际距离约是111.32 Km;

在经线上纬度差1度对应的实际距离约是111.32 Km;

在除赤道外的其他纬线上,经度差1度对应的实际距离约是:111.32*cos纬度。

image.png

同时有可以直接计算两个经纬度距离的网址:

https://www.hhlink.com/%E7%BB%8F%E7%BA%AC%E5%BA%A6

代码原理:

public class CaculateDistance {


private final static double EARTH_RADIUS = 6378.137;


private static double rad(double d) {

return d * Math.PI / 180.0;

}


/**

* 根据两点间经纬度坐标(double值),计算两点间距离,单位为米

*/

public static double GetDistance(double lat1, double lng1, double lat2, double lng2) {

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.asin(Math.sqrt(

Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));

s = s * EARTH_RADIUS;

s = (s * 10000) / 10;

return s;

}


public static void main(String[] args) {

System.out.println("距离差" + GetDistance(30.535275, 114.352175,30.5352806, 114.3521917) + "米");

}

}

【参考】

https://blog.csdn.net/qq_43680117/article/details/86689873

地图经纬度1度与实际1米推算公式

https://www.zhihu.com/question/265407371/answer/437817362

点滴分享,福泽你我!Add oil!




https://wap.sciencenet.cn/blog-3428464-1244419.html

上一篇:解决ArcGIS10.4属性表中文乱码及标注乱码问题
下一篇:Raster重采样
收藏 IP: 211.162.81.*| 热度|

1 范振英

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的其他最新博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 07:49

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部