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); } } }
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); }
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); }
public static IGeometry SimplifyVW(IGeometry g, double distance) { return(VWSimplifier.Simplify(g, distance)); }