示例#1
0
 /// <summary>
 /// 基于Shapefile的构造函数
 /// </summary>
 /// <param name="shp"></param>
 internal MySpaceData(Shapefile shp)
 {
     filePath   = shp.AttrFilePath;
     dataName   = shp.Name;
     dataType   = shp.DataType;
     geoFeature = shp.GetGeometryFeature();
     property   = new MyProperty(shp.AttrFilePath);
 }
示例#2
0
 /// <summary>
 /// 基于CosmosGisVector的构造函数
 /// </summary>
 /// <param name="cgv"></param>
 internal MySpaceData(CosmosGisVector cgv)
 {
     filePath   = cgv.AttrFilePath;
     dataName   = cgv.Name;
     dataType   = cgv.SpaceDataType;
     geoFeature = cgv.GetGeometryFeature();
     property   = new MyProperty(cgv.AttrFilePath);
 }
示例#3
0
        private static IFeature GetFeature()
        {
            var lineString = CreateLineStringWithManyVertices();
            var feature    = new GeometryFeature();

            AddStyles(feature);
            feature.Geometry = lineString;
            feature["Name"]  = $"LineString with {lineString.Coordinates.Length} vertices";
            return(feature);
        }
示例#4
0
        private static GeometryFeature CreatePolygonFeature()
        {
            var feature = new GeometryFeature
            {
                Geometry = CreatePolygon(),
                ["Name"] = "Polygon 1"
            };

            feature.Styles.Add(new VectorStyle());
            return(feature);
        }
示例#5
0
 public Callout(Pin pin)
 {
     _pin = pin ?? throw new ArgumentNullException(nameof(pin), "Pin shouldn't be null");
     if (_pin.Feature != null)
     {
         Feature = _pin.Feature.Copy();
     }
     else
     {
         Feature = new GeometryFeature();
     }
     Feature.Styles.Clear();
 }
示例#6
0
        private static GeometryFeature CreateMultiPolygonFeature()
        {
            var feature = new GeometryFeature
            {
                Geometry = CreateMultiPolygon(),
                ["Name"] = "Multipolygon 1"
            };

            feature.Styles.Add(new VectorStyle {
                Fill = new Brush(Color.Gray), Outline = new Pen(Color.Black)
            });
            return(feature);
        }
示例#7
0
        private static IFeature CreatePolygonWithLabel()
        {
            var polygon = new GeometryFeature
            {
                Geometry = new WKTReader().Read(
                    "POLYGON((-1000000 -10000000, 1000000 -10000000, 1000000 -8000000, -1000000 -8000000, -1000000 -10000000))")
            };

            polygon.Styles.Add(new LabelStyle
            {
                Text                = "Polygon",
                BackColor           = new Brush(Color.Gray),
                HorizontalAlignment = LabelStyle.HorizontalAlignmentEnum.Center
            });
            return(polygon);
        }
示例#8
0
        public bool CreateFeature(GeometryFeature geomFeature, params string[] fields)
        {
            Geometry geometria = geomFeature.Geometry;
            Feature  feature   = new Feature(_layer.GetLayerDefn());

            for (int i = 0; i < _catalog.Schema.Fields.Count; i++)
            {
                LayerField field = _catalog.Schema.Fields[i];
                string     value = fields[i];

                switch (field.Type)
                {
                case FieldTypeName.Date:
                    DateTime date = DateTime.Parse(value);
                    int      rok = date.Year, miesiac = date.Month, dzien = date.Day;
                    feature.SetField(i, rok, miesiac, dzien, 0, 0, 0, 0);
                    break;

                case FieldTypeName.Float:
                    feature.SetField(i, double.Parse(value));
                    break;

                case FieldTypeName.String:
                    feature.SetField(i, value);
                    break;

                case FieldTypeName.Real:
                    feature.SetField(i, double.Parse(value));
                    break;

                case FieldTypeName.Integer:
                    feature.SetField(i, int.Parse(value));
                    break;
                }
            }

            if (geometria != null)
            {
                if (feature.SetGeometry(geometria) != 0)
                {
                    return(false);
                }
            }

            return(_layer.CreateFeature(feature) == 0);
        }
示例#9
0
        private static WritableLayer CreatePolygonLayer()
        {
            var polygonLayer = new WritableLayer
            {
                Name  = "PolygonLayer",
                Style = CreatePolygonStyle()
            };

            var      wkt     = "POLYGON ((1261416.17275404 5360656.05714234, 1261367.50386493 5360614.2556425, 1261353.47050427 5360599.62511755, 1261338.83997932 5360576.03712836, 1261337.34706862 5360570.6626498, 1261375.8641649 5360511.2448036, 1261383.92588273 5360483.17808227, 1261391.98760055 5360485.56673941, 1261393.48051126 5360480.490843, 1261411.99260405 5360487.6568144, 1261430.50469684 5360496.9128608, 1261450.21111819 5360507.06465361, 1261472.00761454 5360525.5767464, 1261488.13105019 5360544.98458561, 1261488.1310502 5360545.28316775, 1261481.26366093 5360549.76189988, 1261489.6239609 5360560.21227484, 1261495.59560374 5360555.13637843, 1261512.91336796 5360573.05130694, 1261535.00844645 5360598.43078898, 1261540.08434286 5360619.03295677, 1261535.90419287 5360621.12303176, 1261526.64814648 5360623.21310675, 1261489.32537876 5360644.41243881, 1261458.27283602 5360661.73020303, 1261438.26783253 5360662.02878517, 1261427.22029328 5360660.23729232, 1261416.17275404 5360656.05714234))";
            var      polygon = new WKTReader().Read(wkt);
            IFeature feature = new GeometryFeature {
                Geometry = polygon
            };

            polygonLayer.Add(feature);

            return(polygonLayer);
        }
示例#10
0
        private static GeometryFeature CreateFeatureWithRotatedBitmapSymbol(double x, double y, double rotation)
        {
            var bitmapId = typeof(BitmapSymbolWithRotationAndOffsetSample).LoadBitmapId("Resources.Images.iconthatneedsoffset.png");

            var feature = new GeometryFeature {
                Geometry = new Point(x, y)
            };

            feature.Styles.Add(new SymbolStyle
            {
                BitmapId     = bitmapId,
                SymbolOffset = new Offset {
                    Y = -24
                },
                SymbolRotation = rotation,
                RotateWithMap  = true,
            });
            return(feature);
        }
示例#11
0
        public void CoordinateNtsProjectionTest()
        {
            // arrange
            var multiPolygon          = (MultiPolygon)_wktReader.Read("MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))");
            var projectedMultiPolygon = multiPolygon.Copy();

            using var feature = new GeometryFeature(projectedMultiPolygon);
            var projection = new DotSpatialProjection();

            // act
            projection.Project("EPSG:4326", "EPSG:3857", feature);

            // assert
            var coordinates          = multiPolygon.Coordinates.ToList();
            var projectedCoordinates = projectedMultiPolygon.Coordinates.ToList();

            for (var i = 0; i < coordinates.Count; i++)
            {
                Assert.AreNotEqual(coordinates[i].X, projectedCoordinates[i].X);
                Assert.AreNotEqual(coordinates[i].Y, projectedCoordinates[i].Y);
            }
        }
示例#12
0
        private static ILayer CreateMutatingTriangleLayer(MRect?envelope)
        {
            var layer = new MemoryLayer();

            var polygon = new Polygon(new LinearRing(GenerateRandomPoints(envelope, 3).ToArray()));
            var feature = new GeometryFeature(polygon);

            layer.Features = new List <IFeature> {
                feature
            };

            PeriodicTask.RunAsync(() =>
            {
                feature.Geometry = new Polygon(new LinearRing(GenerateRandomPoints(envelope, 3).ToArray()));
                // Clear cache for change to show
                feature.RenderedGeometry.Clear();
                // Trigger DataChanged notification
                layer.DataHasChanged();
            },
                                  TimeSpan.FromMilliseconds(1000));

            return(layer);
        }
示例#13
0
        public GeometryFeature GetGeometryFeature()
        {
            GeometryFeature geoFeature = null;

            switch (shapeType)
            {
            case ShapeType.Point:
                geoFeature = new PointFeature(points, xmin, xmax, ymin, ymax);
                break;

            case ShapeType.Polyline:
                geoFeature = new PolylineFeature(polylines, xmin, xmax, ymin, ymax);
                break;

            case ShapeType.Polygon:
                geoFeature = new PolygonFeature(polygons, xmin, xmax, ymin, ymax);
                break;

            default:
                break;
            }
            return(geoFeature);
        }
示例#14
0
        public void EksportujMetadane(MetadataLayer layer)
        {
            foreach (ListViewItem item in mListView.Items)
            {
                item.Selected = true;
                item.EnsureVisible();
                Application.DoEvents();

                string[] pola = new string[item.SubItems.Count];

                for (int i = 0; i < item.SubItems.Count; i++)
                {
                    pola[i] = item.SubItems[i].Text;
                }

                GeometryFeature gf = item.Tag as GeometryFeature;

                if (gf != null)
                {
                    layer.CreateFeature(gf, pola);
                }
            }
        }
示例#15
0
 private void CreateFeature()
 {
     lock (_sync)
     {
         if (Feature == null)
         {
             // Create a new one
             Feature = new GeometryFeature
             {
                 ["Label"] = Label
             };
             Feature.Styles.Clear();
             Feature.Styles.Add(new VectorStyle
             {
                 Line = new Pen {
                     Width = StrokeWidth, Color = StrokeColor.ToMapsui()
                 },
                 Fill = new Styles.Brush {
                     Color = FillColor.ToMapsui()
                 }
             });
         }
     }
 }
示例#16
0
        private static IEnumerable <IFeature> CreateLineFeatures()
        {
            var features         = new List <IFeature>();
            var wktReader        = new WKTReader();
            var lineStringAsTest = "LINESTRING (-642227.831499647 5123550.9224083, -1241640.47423265 5037920.54487501, -1584161.9843658 4923746.70816396, -1869596.57614342 4923746.70816396, -2012313.87203223 4838116.33063068, -2326291.92298761 4809572.87145292, -2583183.05558747 4723942.49391963, -3211139.15749824 4695399.03474187, -3468030.2900981 4552681.73885306, -3610747.58598691 4524138.27967529, -3753464.88187572 4409964.44296425, -3810551.80023124 4409964.44296425, -4124529.85118663 4095986.39200886, -4181616.76954215 4095986.39200886, -4267247.14707544 4010356.01447558, -4467051.36131977 3924725.63694229, -4524138.2796753 3839095.259409, -4923746.70816397 3553660.66763138, -5066464.00405278 3525117.20845362, -5152094.38158606 3439486.83092033, -5237724.75911935 3268226.07585376, -5466072.43254144 3125508.77996495, -5523159.35089697 2982791.48407614, -5780050.48349683 2668813.43312076, -5979854.69774116 2354835.38216537, -6008398.15691892 2240661.54545433, -6065485.07527445 2183574.6270988, -6122571.99362997 1898140.03532118, -6236745.83034102 1755422.73943237, -6265289.28951878 1612705.44354356, -6322376.20787431 842032.045743983, -6322376.20787431 -642227.831499647, -6265289.28951878 -1041836.25998832, -6151115.45280774 -1527075.06601027, -5865680.86103011 -2240661.54545433, -5751507.02431907 -2383378.84134314, -5694420.10596354 -2526096.13723195, -5551702.81007473 -2668813.43312076, -5523159.35089697 -2754443.81065404, -5009377.08569725 -3239682.616676, -4781029.41227515 -3353856.45338705, -4609768.65720858 -3382399.91256481, -4295790.6062532 -3553660.66763138, -3525117.20845362 -3810551.80023124, -3325312.99420929 -3953269.09612005, -2554639.59640971 -4153073.31036439, -2069400.79038775 -4324334.06543096, -984749.341632795 -4524138.27967529, -670771.29067741 -4609768.65720858, -185532.484655455 -4809572.87145291, 271162.862188738 -4895203.2489862, 870575.504921742 -5180637.84076382, 1641248.90272132 -5437528.97336368, 1869596.57614342 -5551702.81007473, 2297748.46380985 -5637333.18760802, 2725900.35147628 -5637333.18760802, 3353856.45338705 -5694420.10596354, 4980833.62651949 -5722963.5651413, 4980833.62651949 -5694420.10596354, 5180637.84076382 -5665876.64678578, 5237724.75911935 -5608789.72843025, 5665876.64678578 -5523159.35089697, 5922767.77938564 -5323355.13665263, 6293832.74869654 -5209181.29994159, 6465093.50376312 -5095007.46323054, 6579267.34047417 -5095007.46323054, 6779071.5547185 -5009377.08569725, 6893245.39142955 -4895203.2489862, 7321397.27909598 -4866659.78980844, 7492658.03416255 -4809572.87145291, 7749549.16676241 -4809572.87145291, 8377505.26867318 -4638312.11638634, 8891287.53387289 -4609768.65720858, 9262352.5031838 -4723942.49391963, 9604874.01331695 -5037920.54487501, 9690504.39085023 -5066464.00405278, 9861765.14591681 -5266268.21829711, 10204286.65605 -5494615.89171921, 10946416.5946718 -5751507.02431907, 11888350.7475379 -5922767.77938564, 12830284.9004041 -5979854.69774116, 14971044.3387362 -5979854.69774116, 15427739.6855804 -5894224.32020788, 15741717.7365358 -5751507.02431907, 15770261.1957136 -5694420.10596354, 15827348.1140691 -5694420.10596354, 16226956.5425578 -5180637.84076382, 16369673.8384466 -4524138.27967529, 16483847.6751576 -4295790.6062532, 16512391.1343354 -4295790.6062532, 16540934.5935131 -4153073.31036439, 16598021.5118687 -4067442.9328311, 16626564.9710464 -3867638.71858677, 16769282.2669352 -3610747.58598691, 16797825.726113 -2811530.72900957, 16854912.6444685 -2611726.51476523, 16854912.6444685 -2383378.84134314, 16911999.5628241 -2240661.54545433, 16940543.0220018 -1726879.28025461, 17026173.3995351 -1555618.52518803, 17140347.2362461 -1469988.14765475, 17197434.1546017 -1327270.85176594, 17654129.5014459 -727858.209032934, 17739759.8789792 -528053.994788598, 17739759.8789792 -356793.239722027)";
            var feature          = new GeometryFeature(wktReader.Read(lineStringAsTest));

            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Violet, 5)
            });
            features.Add(feature);
            // Add some dashed lines
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 12000000, -1000000 12000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.Dash
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (00000 12000000, 6000000 12000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Green)
                {
                    PenStyle = PenStyle.ShortDash
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (7000000 12000000, 13000000 12000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.DashDot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (14000000 12000000, 20000000 12000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.ShortDashDot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 11000000, -1000000 11000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Green)
                {
                    PenStyle = PenStyle.DashDotDot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (000000 11000000, 6000000 11000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.ShortDashDotDot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (7000000 11000000, 13000000 11000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.Dot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (14000000 11000000, 20000000 11000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Green)
                {
                    PenStyle = PenStyle.ShortDot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 10000000, -1000000 10000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.LongDash
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 9750000, -1000000 9750000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.LongDash, DashOffset = 2
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 9500000, -1000000 9500000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.LongDash, DashOffset = 4
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 9250000, -1000000 9250000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.LongDash, DashOffset = 6
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 9000000, -1000000 9000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.LongDash, DashOffset = 8
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (00000 10000000, 6000000 10000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.UserDefined, DashArray = new float[] { 6, 4, 12, 4, 2, 4, 12, 4 }
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (00000 9750000, 6000000 9750000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.UserDefined, DashArray = new float[] { 6, 4, 12, 4, 2, 4, 12, 4 }, DashOffset = 5
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (00000 9500000, 6000000 9500000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.UserDefined, DashArray = new float[] { 6, 4, 12, 4, 2, 4, 12, 4 }, DashOffset = 10
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (00000 9250000, 6000000 9250000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.UserDefined, DashArray = new float[] { 6, 4, 12, 4, 2, 4, 12, 4 }, DashOffset = 15
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (00000 9000000, 6000000 9000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.UserDefined, DashArray = new float[] { 6, 4, 12, 4, 2, 4, 12, 4 }, DashOffset = 20
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (7000000 10000000, 13000000 10000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Green)
                {
                    PenStyle = PenStyle.LongDashDot
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (14000000 10000000, 20000000 10000000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Blue)
                {
                    PenStyle = PenStyle.Solid
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (-7000000 7500000, -3725000 7500000, -3725000 6500000, -1000000 6500000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Gray, 15)
                {
                    PenStyle = PenStyle.Solid, PenStrokeCap = PenStrokeCap.Butt, StrokeJoin = StrokeJoin.Bevel, StrokeMiterLimit = 1
                }
            });
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.Solid, PenStrokeCap = PenStrokeCap.Butt
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (000000 7500000, 3000000 7500000, 3000000 6500000, 6000000 6500000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Gray, 15)
                {
                    PenStyle = PenStyle.Solid, PenStrokeCap = PenStrokeCap.Round, StrokeJoin = StrokeJoin.Round, StrokeMiterLimit = 1
                }
            });
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.Solid, PenStrokeCap = PenStrokeCap.Butt
                }
            });
            features.Add(feature);
            feature = new GeometryFeature(wktReader.Read("LINESTRING (7500000 7500000, 10000000 7500000, 10000000 6500000, 12500000 6500000)"));
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Gray, 15)
                {
                    PenStyle = PenStyle.Solid, PenStrokeCap = PenStrokeCap.Square, StrokeJoin = StrokeJoin.Miter
                }
            });
            feature.Styles.Add(new VectorStyle {
                Line = new Pen(Color.Red)
                {
                    PenStyle = PenStyle.Solid, PenStrokeCap = PenStrokeCap.Butt
                }
            });
            features.Add(feature);

            return(features);
        }
示例#17
0
        public static MemoryProvider <IFeature> CreatePolygonProvider()
        {
            var wktReader = new WKTReader();
            var features  = new List <IFeature>();

            var feature = new GeometryFeature
            {
                Geometry = wktReader.Read(
                    "POLYGON ((-1955226.9536767 4267247.14707544, -2183574.6270988 4267247.14707544, -2611726.51476523 4095986.39200886, -2868617.64736509 4067442.9328311, -3268226.07585376 3896182.17776453, -3667834.50434243 3839095.259409, -4067442.9328311 3639291.04516467, -4495594.82049753 3525117.20845362, -4809572.87145292 3068421.86160943, -5066464.00405278 2954248.02489838, -5266268.21829711 2668813.43312076, -5780050.48349683 2240661.54545433, -6008398.15691892 1612705.44354356, -6265289.28951878 1070379.71916608, -6293832.74869655 813488.586566221, -6408006.58540759 642227.831499647, -6579267.34047417 -299706.321366502, -6779071.5547185 -984749.341632793, -6893245.39142955 -1755422.73943237, -6921788.85060731 -2982791.48407614, -6978875.76896284 -3296769.53503152, -6950332.30978507 -4866659.78980844, -6750528.09554074 -5922767.77938564, -6522180.42211864 -6522180.42211864, -6408006.58540759 -6721984.63636298, -6122571.99362997 -6950332.30978507, -6008398.15691892 -7378484.1974515, -5751507.02431907 -7692462.24840689, -5152094.38158606 -8234787.97278437, -4923746.70816397 -8348961.80949542, -3667834.50434243 -8634396.40127304, -2954248.02489838 -8720026.77880632, -899118.964099508 -8777113.69716185, -156989.025477692 -8834200.61551737, 1213097.01505489 -8834200.61551737, 2697356.89229852 -8777113.69716185, 3810551.80023124 -8634396.40127304, 4552681.73885306 -8291874.89113989, 4838116.33063068 -8120614.13607332, 5209181.29994158 -8006440.29936227, 5351898.5958304 -7920809.92182898, 5551702.81007473 -7635375.33005136, 5780050.48349683 -7521201.49334032, 5922767.77938564 -7292853.81991822, 6094028.53445221 -7150136.52402941, 6322376.20787431 -7035962.68731836, 6607810.79965193 -6779071.5547185, 6721984.63636298 -6522180.42211864, 7064506.14649612 -6065485.07527445, 7093049.60567388 -5894224.32020788, 7178679.98320717 -5694420.10596354, 7178679.98320717 -4923746.70816396, 7093049.60567388 -3981812.55529781, 6978875.76896283 -3496573.74927586, 6921788.85060731 -2925704.56572062, 6921788.85060731 -2611726.51476523, 7007419.2281406 -2497552.67805418, 7007419.2281406 -2440465.75969866, 8291874.89113989 -2155031.16792104, 10118656.2785167 -1898140.03532118, 11288938.1048049 -1555618.52518803, 12116698.42096 -870575.504921744, 12230872.2576711 -613684.372321885, 12373589.5535599 -442423.617255311, 12516306.8494487 -99902.1071221679, 12544850.3086264 642227.831499647, 12544850.3086264 4838116.33063068, 12573393.7678042 5009377.08569725, 12687567.6045153 5380442.05500816, 12915915.2779374 5665876.64678578, 13058632.5738262 5780050.48349683, 13429697.5431371 6293832.74869655, 13515327.9206704 6664897.71800745, 13515327.9206704 7035962.68731836, 13258436.7880705 7464114.57498479, 13030089.1146484 7492658.03416255, 12744654.5228708 7635375.33005136, 12544850.3086264 7692462.24840689, 11060590.4313828 7721005.70758465, 10889329.6763162 7635375.33005136, 10689525.4620719 7492658.03416255, 10575351.6253609 7292853.81991822, 10489721.2478276 7007419.2281406, 10375547.4111165 6864701.93225179, 10289917.0335832 6550723.8812964, 10204286.65605 6408006.58540759, 9947395.5234501 5437528.97336368, 9661960.93167247 4695399.03474187, 9604874.01331695 4381420.98378648, 9148178.66647276 4038899.47365334, 8948374.45222842 3953269.09612005, 8605852.94209528 3724921.42269796, 8206244.5136066 3667834.50434243, 7835179.5442957 3553660.66763138, 7606831.8708736 3553660.66763138, 7407027.65662927 3439486.83092033, 7150136.52402941 3382399.91256481, 6522180.42211864 3325312.99420929, 5951311.2385634 3154052.23914271, 4010356.01447558 3154052.23914271, 3239682.616676 3325312.99420929, 2811530.72900957 3353856.45338705, 2697356.89229852 3410943.37174257, 2212118.08627656 3496573.74927586, 2012313.87203223 3582204.12680915, 1469988.14765475 3639291.04516467, 1327270.85176594 3724921.42269796, 956205.882455029 3753464.88187572, 585140.913144123 3867638.71858677, -528053.994788598 3924725.63694229, -984749.341632795 4067442.9328311, -1070379.71916608 4124529.85118663, -1156010.09669936 4124529.85118663, -1156010.09669936 4153073.31036439, -1612705.44354356 4153073.31036439, -1869596.57614342 4210160.22871991, -1955226.9536767 4267247.14707544, -1955226.9536767 4267247.14707544))")
            };

            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(new Color(255, 0, 0, 120), FillStyle.BitmapRotated, _bitmapId),
                Outline = CreatePen(new Color(255, 255, 0), 2, PenStyle.DashDot),
                Line    = null
            });

            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((2000000 10000000, 2000000 8000000, 10000000 8000000, 10000000 10000000, 2000000 10000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Blue, FillStyle.BackwardDiagonal),
                Outline = CreatePen(Color.Blue, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-8000000 10000000, 0000000 10000000, 0000000 8000000, -8000000 8000000, -8000000 10000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Red, FillStyle.Cross),
                Outline = CreatePen(Color.Red, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-18000000 10000000, -10000000 10000000, -10000000 8000000, -18000000 8000000, -18000000 10000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Gray, FillStyle.DiagonalCross),
                Outline = CreatePen(Color.Gray, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-18000000 6000000, -10000000 6000000, -10000000 4000000, -18000000 4000000, -18000000 6000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Gray, FillStyle.Dotted),
                Outline = CreatePen(Color.Gray, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-18000000 2000000, -10000000 2000000, -10000000 000000, -18000000 000000, -18000000 2000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Green, FillStyle.ForwardDiagonal),
                Outline = CreatePen(Color.Green, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-18000000 -2000000, -10000000 -2000000, -10000000 -4000000, -18000000 -4000000, -18000000 -2000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Cyan, FillStyle.Hollow),
                Outline = CreatePen(Color.Cyan, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-18000000 -6000000, -10000000 -6000000, -10000000 -8000000, -18000000 -8000000, -18000000 -6000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Indigo, FillStyle.Horizontal),
                Outline = CreatePen(Color.Indigo, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-18000000 -10000000, -10000000 -10000000, -10000000 -12000000, -18000000 -12000000, -18000000 -10000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Orange, FillStyle.Solid),
                Outline = CreatePen(Color.Orange, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            feature = new GeometryFeature
            {
                Geometry = wktReader.Read("POLYGON ((-8000000 -10000000, 0000000 -10000000, 0000000 -12000000, -8000000 -12000000, -8000000 -10000000))")
            };
            feature.Styles.Add(new VectorStyle
            {
                Enabled = true,
                Fill    = CreateBrush(Color.Violet, FillStyle.Vertical),
                Outline = CreatePen(Color.Violet, 2, PenStyle.Solid),
                Line    = null
            });
            features.Add(feature);

            return(new MemoryProvider <IFeature>(features));
        }
示例#18
0
 public static void Draw(SKCanvas canvas, IReadOnlyViewport viewport, IStyle style, float layerOpacity,
                         GeometryFeature geometryFeature, SymbolCache symbolCache)
 {
     Draw(canvas, viewport, style, layerOpacity, geometryFeature, geometryFeature.Geometry, symbolCache);
 }