Skip to content

SkiaGeoCanvas

Namespace: ThinkGeo.Core

public class SkiaGeoCanvas : GeoCanvas

Inheritance ObjectGeoCanvasSkiaGeoCanvas

Properties

SupportKeyColor

public bool SupportKeyColor { get; }

Property Value

Boolean

CurrentScale

This property gets the current scale of the view.

public double CurrentScale { get; }

Property Value

Double

Exceptions

InvalidOperationException
In the event you attempt to call this property when the GeoCanvas' IsDrawing mode is false, it will throw an InvalidOperationException.

FontDisplayDensity

This property gets and sets the current device pixel ratio of platform. It would be used by scale text and icon from map. Android: it's "Application.Context.Resources.DisplayMetrics.Density". iOS: it's "UIScreen.MainScreen.Scale". Others: it's default value "1".

public double FontDisplayDensity { get; }

Property Value

Double

DrawingQuality

This property returns the drawing quality when rendering on the GeoCanvas.

public DrawingQuality DrawingQuality { get; set; }

Property Value

DrawingQuality

Remarks:

The DrawingQuality specifies whether BaseLineShapes, BasePointShapes, and BaseAreaShapes use anti-aliasing methods or other techniques that control the quality. In some cases you may want a higher quality rendering, and in other cases higher speed is more desirable. It is up to the implementer of the derived GeoCanvas class to control exactly what this setting means.

MapUnit

This property returns the MapUnit passed in on the BeginDrawingAPI in the GeoCanvas.

public GeographyUnit MapUnit { get; }

Property Value

GeographyUnit

Width

This property gets the width of the view.

public float Width { get; protected set; }

Property Value

Single

Exceptions

InvalidOperationException
In the event you attempt to call this method when the GeoCanvas' IsDrawing mode is false, it will throw an InvalidOperationException.

Remarks:

This property reflects the width of the view image that was passed in on BeginDrawing.

Height

This property gets the height of the view.

public float Height { get; protected set; }

Property Value

Single

Exceptions

InvalidOperationException
In the event you attempt to call this method when the GeoCanvas' IsDrawing mode is false, it will throw an InvalidOperationException.

Remarks:

This property reflects the height of the view image that was passed in on BeginDrawing.

CurrentWorldExtent

This property gets the adjusted current extent based on what was set when BeginDrawing was called.

public RectangleShape CurrentWorldExtent { get; protected set; }

Property Value

RectangleShape

Exceptions

InvalidOperationException
In the event you attempt to call this method when the GeoCanvas' IsDrawing mode is false, it will throw an InvalidOperationException.

Remarks:

The extent that gets passed in on BeginDrawing is adjusted for the height and width of the physical media being drawn on. For example if the current extent is wider than taller but the bitmap being drawn on is square then the current extent needs to be adjusted. The extent will be adjusted larger so that we ensure that the entire original extent will still be represented.

KeyColors

Gets a value represents a collection of key colors. If SupportKeyColor property is false, it will throw exception when you use KeyColors.

public Collection<GeoColor> KeyColors { get; }

Property Value

Collection<GeoColor>

Remarks:

It will make these colors transparent when draw image.

NativeImage

The same reference to the parameter 'NativeImage' in BeginDrawing function.

public object NativeImage { get; }

Property Value

Object

IsDrawing

This property gets the drawing status of the GeoCanvas.

public bool IsDrawing { get; protected set; }

Property Value

Boolean

Remarks:

This property is set to true when the BeginDrawing method is called, and false after the EndDrawing method is called.

Dpi

The DPI value for the final drawing result, only valid when HasDpi set to true.

public float Dpi { get; set; }

Property Value

Single

ScaleFactor

Gets or sets the scale factor, this is a value number of device pixels per logical coordinate point.

public float ScaleFactor { get; set; }

Property Value

Single

        The scale factory value.

Remarks:

The coordinate space used by application developers is measured in logical points. High-resolution (Retina) displays will have more than a single physical pixel per logical point and this property specifies the scale factor.

CancellationToken

Gets or sets the cancellation token source.

public CancellationToken CancellationToken { get; set; }

Property Value

CancellationToken

        The cancellation token source.

ClippingArea

It's a property only used in printing related Canvas such as PdfGeoCanvas and PrinterGeoCanvas

public RectangleShape ClippingArea { get; set; }

Property Value

RectangleShape

Constructors

SkiaGeoCanvas()

public SkiaGeoCanvas()

Methods

BeginDrawingCore(Object, RectangleShape, GeographyUnit)

protected void BeginDrawingCore(object nativeImage, RectangleShape worldExtent, GeographyUnit drawingMapUnit)

Parameters

nativeImage Object

worldExtent RectangleShape

drawingMapUnit GeographyUnit

DrawArcCore(GeoPen, Single, Single, Single, Single, Single, Single, DrawingLevel)

protected void DrawArcCore(GeoPen pen, float x, float y, float width, float height, float startAngle, float sweepAngle, DrawingLevel drawingLevel)

Parameters

pen GeoPen

x Single

y Single

width Single

height Single

startAngle Single

sweepAngle Single

drawingLevel DrawingLevel

DrawAreaCore(IEnumerable<ScreenPointF[]>, GeoPen, GeoBrush, DrawingLevel, Single, Single, PenBrushDrawingOrder)

protected void DrawAreaCore(IEnumerable<ScreenPointF[]> screenPoints, GeoPen outlinePen, GeoBrush fillBrush, DrawingLevel drawingLevel, float xOffset, float yOffset, PenBrushDrawingOrder penBrushDrawingOrder)

Parameters

screenPoints IEnumerable<ScreenPointF[]>

outlinePen GeoPen

fillBrush GeoBrush

drawingLevel DrawingLevel

xOffset Single

yOffset Single

penBrushDrawingOrder PenBrushDrawingOrder

DrawEllipseCore(ScreenPointF, Single, Single, GeoPen, GeoBrush, DrawingLevel, Single, Single, PenBrushDrawingOrder)

protected void DrawEllipseCore(ScreenPointF screenPoint, float width, float height, GeoPen outlinePen, GeoBrush fillBrush, DrawingLevel drawingLevel, float xOffset, float yOffset, PenBrushDrawingOrder penBrushDrawingOrder)

Parameters

screenPoint ScreenPointF

width Single

height Single

outlinePen GeoPen

fillBrush GeoBrush

drawingLevel DrawingLevel

xOffset Single

yOffset Single

penBrushDrawingOrder PenBrushDrawingOrder

DrawLineCore(IEnumerable<ScreenPointF>, GeoPen, DrawingLevel, Single, Single)

protected void DrawLineCore(IEnumerable<ScreenPointF> screenPoints, GeoPen linePen, DrawingLevel drawingLevel, float xOffset, float yOffset)

Parameters

screenPoints IEnumerable<ScreenPointF>

linePen GeoPen

drawingLevel DrawingLevel

xOffset Single

yOffset Single

DrawScreenImageCore(GeoImage, Single, Single, Single, Single, DrawingLevel, Single, Single, Single)

protected void DrawScreenImageCore(GeoImage image, float centerXInScreen, float centerYInScreen, float widthInScreen, float heightInScreen, DrawingLevel drawingLevel, float xOffset, float yOffset, float rotateAngle)

Parameters

image GeoImage

centerXInScreen Single

centerYInScreen Single

widthInScreen Single

heightInScreen Single

drawingLevel DrawingLevel

xOffset Single

yOffset Single

rotateAngle Single

DrawScreenImageWithoutScalingCore(GeoImage, Single, Single, DrawingLevel, Single, Single, Single)

protected void DrawScreenImageWithoutScalingCore(GeoImage image, float centerXInScreen, float centerYInScreen, DrawingLevel drawingLevel, float xOffset, float yOffset, float rotateAngle)

Parameters

image GeoImage

centerXInScreen Single

centerYInScreen Single

drawingLevel DrawingLevel

xOffset Single

yOffset Single

rotateAngle Single

DrawTextCore(String, GeoFont, GeoBrush, GeoPen, IEnumerable<ScreenPointF>, DrawingLevel, Single, Single, DrawingTextAlignment, Single)

protected void DrawTextCore(string text, GeoFont font, GeoBrush fillBrush, GeoPen haloPen, IEnumerable<ScreenPointF> textPathInScreen, DrawingLevel drawingLevel, float xOffset, float yOffset, DrawingTextAlignment drawingTextAlignment, float rotateAngle)

Parameters

text String

font GeoFont

fillBrush GeoBrush

haloPen GeoPen

textPathInScreen IEnumerable<ScreenPointF>

drawingLevel DrawingLevel

xOffset Single

yOffset Single

drawingTextAlignment DrawingTextAlignment

rotateAngle Single

EndDrawingCore()

protected void EndDrawingCore()

FlushCore()

protected void FlushCore()

GetCanvasHeightCore()

protected float GetCanvasHeightCore()

Returns

Single

GetCanvasWidthCore()

protected float GetCanvasWidthCore()

Returns

Single

MeasureTextCore(String, GeoFont)

protected DrawingRectangleF MeasureTextCore(string text, GeoFont font)

Parameters

text String

font GeoFont

Returns

DrawingRectangleF

CalculateYOffsetWithTextBaseline(GeoFont, DrawingTextBaseline, String)

internal float CalculateYOffsetWithTextBaseline(GeoFont font, DrawingTextBaseline textBaseline, string text)

Parameters

font GeoFont

textBaseline DrawingTextBaseline

text String

Returns

Single

DrawColorizeImage(GeoImage, Int32, Int32, Int32, Int32, GeoColorMap[], DrawingLevel)

internal void DrawColorizeImage(GeoImage image, int srcX, int srcY, int srcWidth, int srcHeight, GeoColorMap[] colors, DrawingLevel drawingLevel)

Parameters

image GeoImage

srcX Int32

srcY Int32

srcWidth Int32

srcHeight Int32

colors GeoColorMap[]

drawingLevel DrawingLevel

DrawRadialGradient(ScreenPointF, Int32, Single[], GeoColor[], DrawingLevel)

internal void DrawRadialGradient(ScreenPointF centerPoint, int radius, Single[] positions, GeoColor[] colors, DrawingLevel drawingLevel)

Parameters

centerPoint ScreenPointF

radius Int32

positions Single[]

colors GeoColor[]

drawingLevel DrawingLevel

Events

DrawingProgressChanged

Occurs when [drawing progress changed].

public event EventHandler<DrawingProgressChangedEventArgs> DrawingProgressChanged;