Пример #1
0
 private static Shape RenderGeometry(IReadOnlyViewport viewport, IStyle style, IFeature feature,
                                     SymbolCache symbolCache)
 {
     if (feature.Geometry is Geometries.Point)
     {
         return(PointRenderer.RenderPoint(feature.Geometry as Geometries.Point, style, viewport, symbolCache));
     }
     if (feature.Geometry is MultiPoint)
     {
         return(GeometryRenderer.RenderMultiPoint(feature.Geometry as MultiPoint, style, viewport, symbolCache));
     }
     if (feature.Geometry is LineString)
     {
         return(LineStringRenderer.RenderLineString(feature.Geometry as LineString, style, viewport));
     }
     if (feature.Geometry is MultiLineString)
     {
         return(MultiLineStringRenderer.Render(feature.Geometry as MultiLineString, style, viewport));
     }
     if (feature.Geometry is Polygon)
     {
         return(PolygonRenderer.RenderPolygon(feature.Geometry as Polygon, style, viewport, symbolCache));
     }
     if (feature.Geometry is MultiPolygon)
     {
         return(MultiPolygonRenderer.RenderMultiPolygon(feature.Geometry as MultiPolygon, style, viewport, symbolCache));
     }
     if (feature.Geometry is IRaster)
     {
         return(GeometryRenderer.RenderRaster(feature.Geometry as IRaster, style, viewport));
     }
     return(null);
 }
Пример #2
0
 private static Shape RenderGeometry(IViewport viewport, IStyle style, IFeature feature,
     SymbolCache symbolCache)
 {
     if (feature.Geometry is Geometries.Point)
         return PointRenderer.RenderPoint(feature.Geometry as Geometries.Point, style, viewport, symbolCache);
     if (feature.Geometry is MultiPoint)
         return GeometryRenderer.RenderMultiPoint(feature.Geometry as MultiPoint, style, viewport, symbolCache);
     if (feature.Geometry is LineString)
         return LineStringRenderer.RenderLineString(feature.Geometry as LineString, style, viewport);
     if (feature.Geometry is MultiLineString)
         return MultiLineStringRenderer.Render(feature.Geometry as MultiLineString, style, viewport);
     if (feature.Geometry is Polygon)
         return PolygonRenderer.RenderPolygon(feature.Geometry as Polygon, style, viewport, symbolCache);
     if (feature.Geometry is MultiPolygon)
         return MultiPolygonRenderer.RenderMultiPolygon(feature.Geometry as MultiPolygon, style, viewport, symbolCache);
     if (feature.Geometry is IRaster)
         return GeometryRenderer.RenderRaster(feature.Geometry as IRaster, style, viewport);
     return null;
 }
Пример #3
0
        public static System.Windows.Shapes.Path RenderMultiPolygon(MultiPolygon geometry, IStyle style,
                                                                    IViewport viewport, SymbolCache symbolCache)
        {
            if (!(style is VectorStyle))
            {
                throw new ArgumentException("Style is not of type VectorStyle");
            }
            var vectorStyle = (VectorStyle)style;
            var path        = PolygonRenderer.CreatePolygonPath(vectorStyle, viewport.Resolution, symbolCache);

            path.Data = geometry.ToXaml();
            var matrixTransform = new System.Windows.Media.MatrixTransform {
                Matrix = GeometryRenderer.CreateTransformMatrix1(viewport)
            };

            path.RenderTransform = matrixTransform;

            if (path.Fill != null)
            {
                path.Fill.Transform = matrixTransform.Inverse as System.Windows.Media.MatrixTransform;
            }

            return(path);
        }