Пример #1
0
        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);
        }
Пример #2
0
        public static IShapeCollection SimplifyByArea(IShapeCollection shapes, int zoomLevel)
        {
            var unitDistance = WebMercatorUtility.CalculateGroundResolution(zoomLevel, 35);

            var unitArea = unitDistance * unitDistance;

            return(SimplifyByArea(shapes, unitArea));
        }