2017-09-11 1 views

답변

0

내가 예상 한 작업이 더 복잡해 보입니다. google groups

먼저 우리는 우리가 지역을 계산할 필요가있는 지역에 가장 적합한 프로젝션 시스템을 찾아야합니다. 예를 들어 UTM zones

using DotSpatial.Projections; 
using DotSpatial.Topology; 
public static double CalculateArea(IEnumerable<double> latLonPoints) 
{ 
    // source projection is WGS1984 
    var projFrom = KnownCoordinateSystems.Geographic.World.WGS1984; 
    // most complicated problem - you have to find most suitable projection 
    var projTo = KnownCoordinateSystems.Projected.UtmWgs1984.WGS1984UTMZone37N; 

    // prepare for ReprojectPoints (it's mutate array) 
    var z = new double[latLonPoints.Count()/2]; 
    var pointsArray = latLonPoints.ToArray(); 

    Reproject.ReprojectPoints(pointsArray, z, projFrom, projTo, 0, pointsArray.Length/2); 

    // assemblying new points array to create polygon 
    var points = new List<Coordinate>(pointsArray.Length/2); 
    for (int i = 0; i < pointsArray.Length/2; i++) 
     points.Add(new Coordinate(pointsArray[i * 2], pointsArray[i * 2 + 1])); 

    var poly = new Polygon(points); 
    return poly.Area; 
} 
중 하나를 선택할 수 있습니다.
관련 문제