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); }
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; }
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); }