Google maps 使用纬度和经度计算多边形的面积
我有这样的代码,用这个:和这个:Google maps 使用纬度和经度计算多边形的面积,google-maps,polygon,latitude-longitude,area,Google Maps,Polygon,Latitude Longitude,Area,我有这样的代码,用这个:和这个: 公共静态双计算多边形区域(IList坐标) { 双面积=0; 如果(坐标数>2) { 对于(变量i=0;i
公共静态双计算多边形区域(IList坐标)
{
双面积=0;
如果(坐标数>2)
{
对于(变量i=0;i
以下是我的测试代码:
[Fact]
public void GpsPolygonAreaTest()
{
var poly = new List<GpsLocation>();
var p1 = new GpsLocation(0, 0);
poly.Add(p1);
var p2 = GpsHelper.CreateLocationBasedOnBearingDistance(p1, 5, 100);
poly.Add(p2);
var p3 = GpsHelper.CreateLocationBasedOnBearingDistance(p2, 95, 100);
poly.Add(p3);
var p4 = GpsHelper.CreateLocationBasedOnBearingDistance(p3, 185, 100);
poly.Add(p4);
poly.Add(p1);
var area = GpsHelper.CalculatePolygonArea(poly);
area.Should().Be(10000);
}
[事实]
public void GpsPolygonAreaTest()
{
var poly=新列表();
var p1=新的GpsLocation(0,0);
poly.Add(p1);
var p2=GpsHelper.CreateLocationBasedOnBearingDistance(p1,5100);
poly.Add(p2);
var p3=GpsHelper.CreateLocationBasedOnBearingDistance(p2,95,100);
poly.Add(p3);
var p4=GpsHelper.CreateLocationBasedOnBearingDistance(P3185100);
poly.Add(p4);
poly.Add(p1);
var面积=GpsHelper.CalculatePolygonArea(多边形);
面积应为(10000);
}
我确认我的多边形是100mx100m,请参见图片:
我的测试结果是:预期值为10000,但发现1.28153883377486E+48
你知道我的代码有什么问题吗?我很肯定这句话:
area = area * R * R / 2;
应该放置在顶点上的循环之后,而不是在每次迭代中重复
area = area * R * R / 2;