经纬度与坐标的转换_经纬度换算器公式[通俗易懂]

经纬度与坐标的转换_经纬度换算器公式[通俗易懂]其中,asin函数的值为弧度制,所以需要将其转化为角度(degrees)制;atan2函数的值为角度制

经纬度与坐标的转换_经纬度换算器公式[通俗易懂]"

经纬度和坐标之间的相互转换

经纬度转坐标

经纬度(Latitude and Longitude)和坐标(Cartesian coordinate system)之间的转换可以通过数学公式来实现。

将经纬度转换成坐标:

假设需要将经纬度(latitude,longitude)转换成平面坐标(x,y),其中经度为 longitude,纬度为 latitude,地球半径为 R(6371km),则可以使用以下公式:

x = R * cos(latitude) * cos(longitude)
y = R * cos(latitude) * sin(longitude)

其中,经度和纬度都是用弧度表示的。这个公式假设地球为一个完美的球体(尽管实际上地球的形状是略微扁平的),但对于大多数应用来说,这个假设足够精确了。

例如,将经度为 30.2672,纬度为 -97.7431 的坐标转换为平面坐标,假设地球半径为 6371km,则可以通过以下代码实现:

代码

const lat = -97.7431 * Math.PI / 180;
const lng = 30.2672 * Math.PI / 180;
const R = 6371;
const x = R * Math.cos(lat) * Math.cos(lng);
const y = R * Math.cos(lat) * Math.sin(lng);
console.log(x, y); // 输出 2565.6721748380895, 4291.611282443771

坐标转经纬度

将坐标转换成经纬度:

假设需要将平面坐标(x,y)转换成经纬度(latitude,longitude),同样假设地球半径为 R(6371km),则可以使用以下公式:

latitude = asin(y / R)
longitude = atan2(x, y)

其中,asin 函数的值为弧度制,所以需要将其转化为角度(degrees)制;atan2 函数的值为角度制。经度的范围是 -180 到 180 度,纬度的范围是 -90 到 90 度。

例如,假设已知坐标 (2565.6721748380895, 4291.611282443771),将其转换为经度为 30.2672,纬度为 -97.7431 的坐标:

const x = 2565.6721748380895;
const y = 4291.611282443771;
const R = 6371;
const lat = Math.asin(y / R) * 180 / Math.PI;
const lng = Math.atan2(x, y) * 180 / Math.PI;
console.log(lat, lng); // 输出 -97.74307975452085, 30.26720173968211

今天的文章经纬度与坐标的转换_经纬度换算器公式[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/69799.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注