C++ 经纬度转化为地理坐标
时间: 2023-09-07 18:14:08 浏览: 46
经纬度与地理坐标之间的转换可以使用数学公式来实现。下面是一个简单的C++函数,将给定的经度和纬度值转换为地理坐标。
```c++
#include <cmath>
struct Point2D {
double x, y;
};
Point2D geoToCartesian(double lat, double lon, double radius) {
Point2D result;
double latRad = lat * M_PI / 180.0;
double lonRad = lon * M_PI / 180.0;
result.x = radius * cos(latRad) * cos(lonRad);
result.y = radius * cos(latRad) * sin(lonRad);
return result;
}
```
这个函数将返回一个包含地理坐标(x、y)的 `Point2D` 结构体。其中 `lat` 和 `lon` 分别是给定的纬度和经度,`radius` 是地球的半径(以米为单位)。函数中的 `M_PI` 是C++中预定义的圆周率常量。
例如,如果你想将北京的经度 116.4074 和纬度 39.9042 转换为地理坐标,则可以这样调用函数:
```c++
Point2D beijing = geoToCartesian(39.9042, 116.4074, 6371000);
```
这将返回一个 `Point2D` 结构体,其中 `x` 和 `y` 分别是北京的地理坐标。