Пример #1
0
 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);
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
 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);
     }
 }