Skip to content

GoogleMapsOverlay

Namespace: ThinkGeo.Core

This class represents the GoogleMapsOverlay which requests images from Google's image server by its StaticAPI.

public class GoogleMapsOverlay : WebBasedTileOverly`1, System.IDisposable

Inheritance ObjectOverlayTileOverlayWebBasedTileOverly<GoogleMapsLayer>GoogleMapsOverlay
Implements IDisposable

Remarks:

This class represents the GoogleMapsOverlay which requests images from Google's image server by its StaticAPI. See http://code.google.com/apis/maps/signup.html for detail.

Properties

ClientId

This property gets and sets the clientId for the GoogleMapsOverlay.

public string ClientId { get; set; }

Property Value

String

PrivateKey

This property gets and sets the privateKey for the GoogleMapsOverlay.

public string PrivateKey { get; set; }

Property Value

String

UriSigningSecret

public string UriSigningSecret { get; set; }

Property Value

String

ApiKey

public string ApiKey { get; set; }

Property Value

String

MapType

Gets or sets the map types available from Google Maps.

public GoogleMapsMapType MapType { get; set; }

Property Value

GoogleMapsMapType

TargetProjection

public Projection TargetProjection { get; set; }

Property Value

Projection

Language

public string Language { get; set; }

Property Value

String

WebProxy

Gets or sets the Web Proxy for web service.

public IWebProxy WebProxy { get; set; }

Property Value

IWebProxy

TimeoutInSeconds

Gets or sets the length of time, in seconds, before the request times out.

public int TimeoutInSeconds { get; set; }

Property Value

Int32

ImageFormat

Gets and sets drawing format for the tiles.

public RasterTileFormat ImageFormat { get; set; }

Property Value

RasterTileFormat

JpegQuality

Gets or sets the image quality when the TileImageFormat is Jpeg; otherwise this property has no effects. Its default value is 80.

public int JpegQuality { get; set; }

Property Value

Int32

IsCacheOnly

Gets or sets a value indicating whether this instance is cache only.

public bool IsCacheOnly { get; set; }

Property Value

Boolean
true if this instance is cache only; otherwise, false.

IsVisible

Gets or sets if this overlay is visible.

public bool IsVisible { get; set; }

Property Value

Boolean

DrawingQuality

public DrawingQuality DrawingQuality { get; set; }

Property Value

DrawingQuality

TileSizeMode

Gets or sets the tile size mode.

public TileSizeMode TileSizeMode { get; set; }

Property Value

TileSizeMode

        The tile size mode.

TileResolution

Gets or sets the tile resolution.

public TileResolution TileResolution { get; set; }

Property Value

TileResolution

        The tile resolution.

TileType

Gets and sets the overlay is formed by multiple tiles or single tile.

public TileType TileType { get; set; }

Property Value

TileType

TileWidth

Gets and sets the width of the tile.

public int TileWidth { get; set; }

Property Value

Int32

TileHeight

Gets and sets the height of the tile.

public int TileHeight { get; set; }

Property Value

Int32

TileCache

Gets and sets a tile cache object for saving the tiles.

public RasterTileCache TileCache { get; set; }

Property Value

RasterTileCache

TileSnappingMode

Gets or sets the tileView snapping mode.

public TileSnappingMode TileSnappingMode { get; set; }

Property Value

TileSnappingMode

TileBuffer

This property gets and sets the number of extra rows and colums of tiles on each side which will surround the minimum grid tiles to cover the map.

public int TileBuffer { get; set; }

Property Value

Int32

MaxExtent

This property gets or sets the max extent of matrix to calculate the tiles.

public RectangleShape MaxExtent { get; set; }

Property Value

RectangleShape

Remarks:

By default, MaxExtent is null; the matrix is created depending on the GeographyUnit of current map. When it's DecimalDegree, the matrix' is calculated as (-180, 90, 180, -90) as MaxExtent. While it's not DecimalDegree, the matrix is (-20037508.2314698, 20037508.2314698, 20037508.2314698, -20037508.2314698); It's allowed to modify it to customize the matrix.

WrappingMode

Thie property gets or sets whether allow wrap date line.

public WrappingMode WrappingMode { get; set; }

Property Value

WrappingMode

WrappingExtent

public RectangleShape WrappingExtent { get; set; }

Property Value

RectangleShape

CanRefreshRegion

public bool CanRefreshRegion { get; protected set; }

Property Value

Boolean

IsBase

public bool IsBase { get; set; }

Property Value

Boolean

Name

Gets or sets the name of this overaly.

public string Name { get; set; }

Property Value

String

MapArguments

Gets or sets current map information which will be used for calculating mechanism.

public MapArguments MapArguments { get; set; }

Property Value

MapArguments

OverlayCanvas

Gets or sets the actual canvas which maintains all the visual elements on the overlay.

public Canvas OverlayCanvas { get; set; }

Property Value

Canvas

DrawingExceptionMode

This property gets and sets the DrawingExceptionMode used when an exception occurs during drawing.

public DrawingExceptionMode DrawingExceptionMode { get; set; }

Property Value

DrawingExceptionMode

RefreshTypeOnResize

public OverlayRefreshType RefreshTypeOnResize { get; set; }

Property Value

OverlayRefreshType

Attribution

public string Attribution { get; set; }

Property Value

String

IsEmpty

This property gets if this overlay is empty or not.

public bool IsEmpty { get; }

Property Value

Boolean

Remarks:

This property enhances the performance of the overlay while drawing. If is true, we will skip drawing this overlay and continue drawing the next overlay.

AutoRefreshInterval

public TimeSpan AutoRefreshInterval { get; set; }

Property Value

TimeSpan

Constructors

GoogleMapsOverlay()

Constructor of GoogleMapsOverlay class.

public GoogleMapsOverlay()

GoogleMapsOverlay(String)

Constructor of GoogleMapsOverlay class.

public GoogleMapsOverlay(string apiKey)

Parameters

apiKey String
The clientId for the GoogleMapsOverlay.

Remarks:

This constructor initializes a new layer and assgin a license key.

GoogleMapsOverlay(String, String)

Constructor of GoogleMapsOverlay class.

public GoogleMapsOverlay(string apiKey, string uriSigningSecret)

Parameters

apiKey String
The clientId for the GoogleMapsOverlay.

uriSigningSecret String
The privateKey for the GoogleMapsOverlay.

Remarks:

This constructor initializes a new layer and assgin a license key.

GoogleMapsOverlay(String, String, IWebProxy)

public GoogleMapsOverlay(string apiKey, string uriSigningSecret, IWebProxy webProxy)

Parameters

apiKey String

uriSigningSecret String

webProxy IWebProxy

Methods

DrawAsyncCore(RectangleShape, OverlayRefreshType, CancellationToken)

protected Task DrawAsyncCore(RectangleShape targetExtent, OverlayRefreshType overlayRefreshType, CancellationToken cancellationToken)

Parameters

targetExtent RectangleShape

overlayRefreshType OverlayRefreshType

cancellationToken CancellationToken

Returns

Task

GetTileCore()

This method gets a specific tile object to form an overlay.

protected TileView GetTileCore()

Returns

TileView
A TileView object to form an overlay.

DrawTileAsyncCore(GeoCanvas, TileView)

This method redraws a tile by an extent and geography unit.

protected Task DrawTileAsyncCore(GeoCanvas geoCanvas, TileView tile)

Parameters

geoCanvas GeoCanvas

tile TileView
A tile which needs to be redrawn.

Returns

Task

GetBoundingBoxCore()

This method gets an entire bounding box for Google world map extent.

protected RectangleShape GetBoundingBoxCore()

Returns

RectangleShape
Returns a RectangleShape indicating the extent of the Google world map.

SaveStateCore()

This method saves overlay state to a byte array.

protected Byte[] SaveStateCore()

Returns

Byte[]
A byte array indicates current overlay state.

LoadStateCore(Byte[])

This method restore the overlay state back from the specified state.

protected void LoadStateCore(Byte[] state)

Parameters

state Byte[]
This parameter indicates the state for restore the overlay.

Events

SendingWebRequest

public event EventHandler<SendingWebRequestEventArgs> SendingWebRequest;

SentWebRequest

public event EventHandler<SentWebRequestEventArgs> SentWebRequest;

SendingHttpRequest

public event EventHandler<SendingHttpRequestMessageEventArgs> SendingHttpRequest;

ReceivedHttpResponse

public event EventHandler<ReceivedHttpResponseMessageEventArgs> ReceivedHttpResponse;

DrawTilesProgressChanged

This event raises when download progress is changed.

public event EventHandler<DrawTilesProgressChangedTileOverlayEventArgs> DrawTilesProgressChanged;

DrawingTile

This event raises before the tile is drawing.

public event EventHandler<DrawingTileTileOverlayEventArgs> DrawingTile;

DrawnTile

This event raises after the tile is drawn.

public event EventHandler<DrawnTileTileOverlayEventArgs> DrawnTile;

DrawingException

public event EventHandler<DrawingExceptionTileOverlayEventArgs> DrawingException;

DrawnException

public event EventHandler<DrawnExceptionTileOverlayEventArgs> DrawnException;

TileTypeChanged

public event EventHandler<TileTypeChangedTileOverlayEventArgs> TileTypeChanged;

TileTypeChanging

public event EventHandler<TileTypeChangingTileOverlayEventArgs> TileTypeChanging;

Drawing

This event raises before the overlay is drawing.

public event EventHandler<DrawingOverlayEventArgs> Drawing;

Drawn

This event raises after the overlay is drawn.

public event EventHandler<DrawnOverlayEventArgs> Drawn;

DrawingAttribution

public event EventHandler<DrawingAttributionOverlayEventArgs> DrawingAttribution;

DrawnAttribution

public event EventHandler<DrawnAttributionOverlayEventArgs> DrawnAttribution;

ThrowingException

public event EventHandler<ThrowingExceptionOverlayEventArgs> ThrowingException;