经纬度坐标下求多边形的面积
经纬度坐标下求多边形的面积,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;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
