Table of Contents

Class GoogleMapsLayer

Namespace
ThinkGeo.Core.Async
Assembly
ThinkGeo.Core.dll
Represents an object that encapsulates a Google Map layer.
public class GoogleMapsLayer : WebBasedLayer
Inheritance
GoogleMapsLayer
Inherited Members

Remarks

This class uses Google Static Maps API to implement url request.

Constructors

GoogleMapsLayer()

This is the constructor the for the class. If you use this constructor, then you need to set the required properties manually.

public GoogleMapsLayer()

Remarks

None

GoogleMapsLayer(string)

This is the constructor the for the class.

public GoogleMapsLayer(string apiKey)

Parameters

apiKey string

The apiKey for the GoogleMapLayer.

Remarks

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

GoogleMapsLayer(string, string)

This is the constructor the for the class.

public GoogleMapsLayer(string apiKey, string uriSigningSecret)

Parameters

apiKey string

The apiKey for the GoogleMapLayer.

uriSigningSecret string

The uriSigningSecret for the GoogleMapLayer.

Remarks

This constructor initializes a new layer and assgin a license key and initilize a cache directory.

Properties

ApiKey

public string ApiKey { get; set; }

Property Value

string

ClientId

Gets or sets a value to access the special features of Google Maps API Premier, you must provide a client ID when accessing any of the Premier API libraries or services. When registering for Google Maps API Premier, you will receive this client ID from Google Enterprise Support. All client IDs begin with a gme- prefix.

public string ClientId { get; set; }

Property Value

string

CustomParameters

public Dictionary<string, string> CustomParameters { get; }

Property Value

Dictionary<string, string>

Language

public string Language { get; set; }

Property Value

string

MapType

Gets or sets a value represents the map type of the GoogleMaps.

public GoogleMapsMapType MapType { get; set; }

Property Value

GoogleMapsMapType

PictureFormat

Gets or sets a value represents the image format of the image.

public GoogleMapsPictureFormat PictureFormat { get; set; }

Property Value

GoogleMapsPictureFormat

PrivateKey

Gets or sets a value that is unique to your client ID, please keep your key secure.

public string PrivateKey { get; set; }

Property Value

string

TargetProjection

public Projection TargetProjection { get; set; }

Property Value

Projection

UriSigningSecret

public string UriSigningSecret { get; set; }

Property Value

string

Methods

CloseAsyncCore(CancellationToken)

This method closes the Layer and releases any resources it was using.

protected override Task CloseAsyncCore(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

Returns

Task

None

Remarks

This abstract method is called from the concrete public method Close. The close method plays an important role in the life cycle of the Layer. It may be called after drawing to release any memory and other resources that were allocated since the Open method was called.

If you override this method, it is recommended that you take the following things into account: This method may be called multiple times, so we suggest you write the method so that that a call to a closed Layer is ignored and does not generate an error. We also suggest that in the Close you free all resources that have been opened. Remember that the object will not be destroyed, but will be re-opened possibly in the near future.

DrawAsyncCore(GeoCanvas, Collection<SimpleCandidate>)

This method draws the Layer.

protected override Task DrawAsyncCore(GeoCanvas canvas, Collection<SimpleCandidate> labelsInAllLayers)

Parameters

canvas GeoCanvas

This parameter is the view object or a NativeImage to draw on.

labelsInAllLayers Collection<SimpleCandidate>

This parameter represents the labels used for collision detection and duplication checking.

Returns

Task

None

Remarks

This method is the concrete wrapper for the abstract method DrawCore. This method draws the representation of the layer based on the extent you provided.

When implementing this abstract method, consider each feature and its column data values. You can use the full power of the GeoCanvas to do the drawing. If you need column data for a feature, be sure to override the GetRequiredColumnNamesCore and add the columns you need to the collection. In many of the styles, we add properties that allow the user to specify which field they need; then, in the GetRequiredColumnNamesCore, we read that property and add it to the collection.

GetPictureFormat()

Get picture format string which will use for request url.

public string GetPictureFormat()

Returns

string

Get picture format string which will use for request url.

OpenAsyncCore(CancellationToken)

This method opens the Layer so that it is initialized and ready to use.

protected override Task OpenAsyncCore(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

Returns

Task

None

Remarks

This abstract method is called from the concrete public method Open. The open method plays an important role, as it is responsible for initializing the Layer. Most methods on the Layer will throw an exception if the state of the Layer is not opened. When the map draws each layer, the layer will be opened as one of its first steps; then, after it is finished drawing with that layer, it will close it. In this way, we are sure to release all resources used by the Layer.

When implementing the abstract method, consider opening the FeatureSource or RasterSource. You will get a chance to close these in the Close method of the Layer.

Exceptions

InvalidOperationException

In the event you attempt to call this method on a Layer which has already been opened, it will throw an InvalidOperationException.