private void GeneralizeByAreaAdditivePlus_Click(object sender, RoutedEventArgs e) { var fileName = this.SelectShapefile(); if (string.IsNullOrEmpty(fileName)) { return; } var shapes = GetShapes(fileName); var result = Utilities.SimplifyAlgorithms.AdditiveSimplifyByAreaPlus(shapes, Presenter.AreaThreshold); var unitDistance = WebMercatorUtility.CalculateGroundResolution(Presenter.ZoomLevel, 35); string output; if (unitDistance * unitDistance - Presenter.AreaThreshold < .001) { output = TodayDirectory + System.IO.Path.GetFileNameWithoutExtension(fileName) + "AreaAdditivePlus" + Presenter.ZoomLevel + ".shp"; } else { output = TodayDirectory + System.IO.Path.GetFileNameWithoutExtension(fileName) + "AreaAdditivePlus" + Presenter.AreaThreshold + ".shp"; } IRI.Ket.ShapefileFormat.Writer.ShpWriter.Write(output, result, true); }
public static IShapeCollection SimplifyByArea(IShapeCollection shapes, int zoomLevel) { var unitDistance = WebMercatorUtility.CalculateGroundResolution(zoomLevel, 35); var unitArea = unitDistance * unitDistance; return(SimplifyByArea(shapes, unitArea)); }