コード例 #1
0
        protected virtual void CreatePoly(Geometry geo, IList <Poly2D> result)
        {
            if (geo is Polygon geoPoly)
            {
                Geometry curGeo = geoPoly.ExteriorRing;
                if (SimplifyTollerance != 0)
                {
                    var simplifier = new VWSimplifier(curGeo);
                    simplifier.DistanceTolerance = SimplifyTollerance;
                    curGeo = simplifier.GetResultGeometry();
                }

                if (curGeo.IsValid)
                {
                    result.Add(new Poly2D()
                    {
                        Points = curGeo.Coordinates.Select(a => Geo.Project(new GeoPoint()
                        {
                            Lat = a.Y, Lng = a.X
                        })).ToArray()
                    });
                }
            }
            else if (geo is MultiPolygon multiPoly)
            {
                foreach (var innerPoly in multiPoly.Geometries)
                {
                    CreatePoly(innerPoly, result);
                }
            }
        }
コード例 #2
0
 public static IGeometry[] GetResult(String wkt, double tolerance)
 {
     IGeometry[] ioGeom = new IGeometry[2];
     ioGeom[0] = Rdr.Read(wkt);
     ioGeom[1] = VWSimplifier.Simplify(ioGeom[0], tolerance);
     Console.WriteLine(ioGeom[1]);
     return(ioGeom);
 }
コード例 #3
0
        public static Geometry[] GetResult(string wkt, double tolerance)
        {
            var ioGeom = new Geometry[2];

            ioGeom[0] = Rdr.Read(wkt);
            ioGeom[1] = VWSimplifier.Simplify(ioGeom[0], tolerance);
            TestContext.WriteLine(ioGeom[1]);
            return(ioGeom);
        }
コード例 #4
0
 public static IGeometry SimplifyVW(IGeometry g, double distance)
 {
     return(VWSimplifier.Simplify(g, distance));
 }