osg根据经纬度计算两点之间的距离
时间: 2023-08-30 08:11:08 浏览: 258
在OSG中,可以使用osgEarth::GeoMath类来计算两点之间的距离。以下是一个示例代码:
```
#include <osgEarth/GeoMath>
#include <iostream>
int main()
{
double lat1 = 40.7128; // 纬度1
double lon1 = -74.0060; // 经度1
double lat2 = 51.5074; // 纬度2
double lon2 = -0.1278; // 经度2
osgEarth::GeoPoint p1(osgEarth::SpatialReference::create("wgs84"), lon1, lat1);
osgEarth::GeoPoint p2(osgEarth::SpatialReference::create("wgs84"), lon2, lat2);
double distance = osgEarth::GeoMath::distance(p1, p2);
std::cout << "Distance between two points: " << distance << " meters" << std::endl;
return 0;
}
```
在上面的示例中,我们首先定义了两个点的经纬度坐标,然后使用osgEarth::GeoPoint类创建了两个地理点对象p1和p2。接着,我们使用osgEarth::GeoMath::distance方法计算了两点之间的距离,并将结果输出到控制台。
需要注意的是,上面的示例使用的是WGS84坐标系,如果需要使用其他坐标系,请替换创建SpatialReference对象的参数。
阅读全文