经纬度坐标下求多边形的面积

经纬度坐标下求多边形的面积,mapinfo的值作为参考,试了几种投影都不行,原来应该计算球面坐标的面积。

最后采用了boost库的方法求面积。

对boost不熟悉的可以参考一下:

#include 
#include 
#include 
namespace bg = boost::geometry;
#define MAPINFO_SEMIMAJOR   6370997.0
typedef bg::model::point > DPoint;
typedef boost::geometry::model::polygon APolygon;
using boost::geometry::append;
double GetArea(vector& vPt)
{APolygon sph_poly;for (size_t i = 0; i < vPt.size(); i++){append(sph_poly,DPoint(vPt[i].x,vPt[i].y));}double area = bg::area(sph_poly);return fabs(area) *MAPINFO_SEMIMAJOR*MAPINFO_SEMIMAJOR;}



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部