用经纬度求两点之间的距离
时间: 2023-05-11 19:02:10 浏览: 74
可以使用 Haversine 公式来计算两个经纬度之间的距离。以下是一个示例 Python 代码:
```python
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为千米
dLat = math.radians(lat2 - lat1)
dLon = math.radians(lon2 - lon1)
a = math.sin(dLat/2) * math.sin(dLat/2) + math.cos(math.radians(lat1)) \
* math.cos(math.radians(lat2)) * math.sin(dLon/2) * math.sin(dLon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = R * c
return d
```
其中,`lat1` 和 `lon1` 是第一个点的纬度和经度,`lat2` 和 `lon2` 是第二个点的纬度和经度。函数返回值是两个点之间的距离,单位为千米。
相关问题
osg根据经纬度计算两点之间的距离
在OSG中,可以使用osg::Vec3d类来表示经纬度坐标,并使用osg::Vec3d::distance方法计算两点之间的距离。以下是一个示例代码:
```
#include <osg/Vec3d>
#include <iostream>
int main()
{
// 经纬度坐标点1
osg::Vec3d p1(-118.2437, 34.0522, 0);
// 经纬度坐标点2
osg::Vec3d p2(-122.4194, 37.7749, 0);
// 计算两点之间的距离
double distance = p1.distance(p2);
std::cout << "Distance between p1 and p2: " << distance << " km" << std::endl;
return 0;
}
```
在上述示例代码中,p1和p2分别表示经纬度坐标点1和点2,其中经度和纬度分别以度为单位表示。计算两点之间的距离时,使用了osg::Vec3d::distance方法,并将结果以千米为单位输出。
excel已知经纬度求两点的欧式距离
首先,需要将经纬度转换为平面直角坐标系中的坐标。可以使用以下公式:
x = cos(lat) * cos(lon)
y = cos(lat) * sin(lon)
z = sin(lat)
其中,lat和lon分别表示纬度和经度,单位为弧度。然后,使用欧式距离的公式计算两点之间的距离:
distance = sqrt((x1 - x2)^2 + (y1 - y2)^2 + (z1 - z2)^2)
其中,(x1, y1, z1)和(x2, y2, z2)分别是两个点的坐标。最后得到的distance就是两点之间的欧式距离。