public static RenderPoint ( Mapsui.Geometries.Point point, IStyle style, IViewport viewport, BrushCache brushCache = null ) : System.Windows.Shapes.Shape | ||
point | Mapsui.Geometries.Point | |
style | IStyle | |
viewport | IViewport | |
brushCache | BrushCache | |
return | System.Windows.Shapes.Shape |
public static XamlShapes.Shape RenderPoint(Point point, IStyle style, IViewport viewport,
BrushCache brushCache = null)
{
XamlShapes.Shape symbol;
var matrix = XamlMedia.Matrix.Identity;
if (style is SymbolStyle)
{
var symbolStyle = style as SymbolStyle;
if (symbolStyle.BitmapId < 0)
symbol = CreateSymbolFromVectorStyle(symbolStyle, symbolStyle.Opacity, symbolStyle.SymbolType);
else
symbol = CreateSymbolFromBitmap(symbolStyle.BitmapId, symbolStyle.Opacity, brushCache);
matrix = CreatePointSymbolMatrix(viewport.Resolution, symbolStyle);
}
else
{
symbol = CreateSymbolFromVectorStyle((style as VectorStyle) ?? new VectorStyle());
MatrixHelper.ScaleAt(ref matrix, viewport.Resolution, viewport.Resolution);
}
MatrixHelper.Append(ref matrix, GeometryRenderer.CreateTransformMatrix(point, viewport));
symbol.RenderTransform = new XamlMedia.MatrixTransform {Matrix = matrix};
symbol.IsHitTestVisible = false;
return symbol;
}
private static Shape RenderGeometry(IViewport viewport, IStyle style, IFeature feature, BrushCache brushCache = null) { if (feature.Geometry is Geometries.Point) { return(PointRenderer.RenderPoint(feature.Geometry as Geometries.Point, style, viewport, brushCache)); } 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, brushCache)); } 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); }