private static UIElement RenderGeometry(IViewport viewport, IStyle style, Providers.IFeature feature) { if (feature.Geometry is Geometries.Point) { return(GeometryRenderer.RenderPoint(feature.Geometry as Geometries.Point, style, viewport)); } if (feature.Geometry is MultiPoint) { return(GeometryRenderer.RenderMultiPoint(feature.Geometry as MultiPoint, style, viewport)); } if (feature.Geometry is LineString) { return(GeometryRenderer.RenderLineString(feature.Geometry as LineString, style, viewport)); } if (feature.Geometry is MultiLineString) { return(GeometryRenderer.RenderMultiLineString(feature.Geometry as MultiLineString, style, viewport)); } if (feature.Geometry is Polygon) { return(GeometryRenderer.RenderPolygon(feature.Geometry as Polygon, style, viewport)); } if (feature.Geometry is MultiPolygon) { return(GeometryRenderer.RenderMultiPolygon(feature.Geometry as MultiPolygon, style, viewport)); } if (feature.Geometry is IRaster) { return(GeometryRenderer.RenderRaster(feature.Geometry as IRaster, style, viewport)); } return(null); }
private static void PositionGeometry(UIElement renderedGeometry, IViewport viewport, IStyle style, Providers.IFeature feature) { if (feature.Geometry is Geometries.Point) { GeometryRenderer.PositionPoint(renderedGeometry, feature.Geometry as Geometries.Point, style, viewport); } if (feature.Geometry is MultiPoint) { GeometryRenderer.PositionGeometry(renderedGeometry, viewport); } if (feature.Geometry is LineString) { GeometryRenderer.PositionGeometry(renderedGeometry, viewport); } if (feature.Geometry is MultiLineString) { GeometryRenderer.PositionGeometry(renderedGeometry, viewport); } if (feature.Geometry is Polygon) { GeometryRenderer.PositionGeometry(renderedGeometry, viewport); } if (feature.Geometry is MultiPolygon) { GeometryRenderer.PositionGeometry(renderedGeometry, viewport); } if (feature.Geometry is IRaster) { GeometryRenderer.PositionRaster(renderedGeometry, feature.Geometry.GetBoundingBox(), viewport); } }
private static void RenderFeature(Canvas canvas, IViewport viewport, IStyle style, Providers.IFeature feature) { if (style is LabelStyle) { canvas.Children.Add(LabelRenderer.RenderLabel(feature.Geometry.GetBoundingBox().GetCentroid(), new Offset(), style as LabelStyle, viewport)); } else { var renderedGeometry = feature.RenderedGeometry.ContainsKey(style) ? feature.RenderedGeometry[style] as UIElement : null; if (renderedGeometry == null) { renderedGeometry = RenderGeometry(viewport, style, feature); feature.RenderedGeometry[style] = renderedGeometry; } else { PositionGeometry(renderedGeometry, viewport, style, feature); } canvas.Children.Add(renderedGeometry); } }