经纬度和米的换算(度差与距离换算)

经纬度与距离换算
本文介绍了地球表面经纬度与实际距离之间的换算方法。考虑到地球曲率和不同纬度的影响,提供了精确的公式来计算经纬度差对应的直线距离,并举例说明了在特定纬度下1米对应的经纬度变化。

若将地球看做规则球体。

地球半径 R:6371000 m
地球周长:2 * π * R = 40030173 m
任意地球经度周长:40030173 m
38°纬度圈周长:40030173 * cos38° = 31544206 m


经度(东西方向)1米实际度(38°纬度为例):360°/31544206m = 1.141255544679108e-5 = 0.00001141°
纬度(南北方向)1米实际度:360°/40030173m = 8.993216192195822e-6 = 0.00000899°

地球表面上同一经线圈上相差1°两点间的距离约为:πR/180 = 111194.926 644 558 737 m       【小数部分每三位加了一空格】
地球表面上同一纬线圈上相差1°两点间的距离约为:πR×cos(纬度)/180 = 111194.926644 m × cos(纬度)

地球表面上同一经线圈上相差1"两点间的距离约为:πR/180/3600 = 30.887 479 623 488m     【小数部分每三位加了一空格】
地球表面上同一纬线圈上相差1"两点间的距离约为:πR×cos(纬度)/180/3600 = 30.887m × cos(纬度)

参考链接:经纬度差和米单位的换算 - yaohuimo - 博客园

在 Three.js 或三维地理可视化中,**地球半径**是一个非常关键的参数,它决定了你如何将地理坐标经纬度转换为三维空间坐标(x, y, z)。 --- ## 🌍 地球的真实半径 地球并不是一个完美的球体,而是一个**椭球体(扁球体)**,但为了简化 Three.js 中的计算,通常将其建模为一个球体。 ### 🔹 地球平均半径: - **≈ 6,371 公里(6,371,000 )** ### 🔹 地球赤道半径(最长): - **≈ 6,378 公里** ### 🔹 地球极半径(最短): - **≈ 6,357 公里** --- ## 🧮 在 Three.js 中使用地球半径 在 Three.js 中进行地球建模时,**通常不会使用真实单位(或公里)**,而是使用**比例缩放**来简化视觉表现。 ### 示例:创建一个球体代表地球 ```js const earthRadius = 5; // 单位:Three.js 场景单位,不代表真实 const segments = 64; const geometry = new THREE.SphereGeometry(earthRadius, segments, segments); const material = new THREE.MeshBasicMaterial({ color: 0x0077ff, wireframe: false }); const earth = new THREE.Mesh(geometry, material); scene.add(earth); ``` --- ## 🧭 将经纬度转换为空间坐标时使用地球半径 在 Three.js 中将经纬度转换为 `THREE.Vector3` 时,使用地球半径作为球体的半径: ```js function latLonToVector3(lat, lon, radius = 5, height = 0.1) { const phi = (90 - lat) * (Math.PI / 180); // 极角(从北极开始) const theta = (lon + 180) * (Math.PI / 180); // 方位角 const x = -radius * Math.sin(phi) * Math.cos(theta); const y = radius * Math.cos(phi); const z = radius * Math.sin(phi) * Math.sin(theta); return new THREE.Vector3(x, y, z).normalize().multiplyScalar(radius + height); } ``` - `radius`:表示地球的半径(Three.js 单位) - `height`:可选参数,用于将物体“浮”在地表之上,避免被球体遮挡 --- ## 📐 地球半径真实地理坐标的映射关系 如果你希望模拟真实地球,可以使用以下比例缩放: ### 示例:将地球半径设为 6371(单位:km),缩放比例为 0.001: ```js const earthRadiusKm = 6371; // 地球真实半径(km) const scale = 0.001; // 1 km = 0.001 Three.js 单位(即 1 km = 1 unit) const earthRadius = earthRadiusKm * scale; const geometry = new THREE.SphereGeometry(earthRadius, 64, 64); ``` 这样,Three.js 中的 1 单位 ≈ 1 km,可以更直观地模拟现实世界。 --- ## 📌 总结 | 地球参数 | 值 | 说明 | |----------|-----|------| | 平均半径 | 6,371 km | 常用值,适合大多数地理应用 | | 赤道半径 | 6,378 km | 地球最宽处 | | 极半径 | 6,357 km | 地球最窄处 | | Three.js 中常用半径 | 5 ~ 10 | 视觉化用途,非真实单位 | | 真实比例模拟 | 6371 km | 可按比例缩放(如 0.001)使用 | --- ###
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值