vcl-dxmaplayer-dot-tdxmaplayers-dot-add-x28-dxmaplayer-dot-tdxmaplayerclass-x29.md
Creates a map layer of the required type and adds the layer to the collection.
function Add(AItemClass: TdxMapLayerClass): TdxMapLayer;
| Name | Type | Description |
|---|---|---|
| AItemClass | TdxMapLayerClass |
The reference to the required map layer class.
|
| Type | Description |
|---|---|
| TdxMapLayer |
The created map layer.
To access all public API members of the created map layer, cast the returned object to the corresponding terminal TdxMapLayer class descendant (AItemClass).
|
Call the Add function to create any supported map layer and add it to the end of the collection. Map layer indexes determine the Z-order (draw order) of corresponding map layers. A map layer with the highest index is displayed on top of all other layers.
All created map layers are accessible through the Items property. You can use an individual map layer’s Index property to change the layer’s draw order.
The following code example implements a procedure that accepts an Azure Maps account key, creates and configures a map tile layer, and loads data:
uses
dxAzureMapImageryDataProvider; // Declares TdxMapControlAzureMapImageryDataProvider
// ...
procedure TMyForm.AddAzureMapLayer(const AAzureKey: string);
var
ATileLayer: TdxMapImageTileLayer;
AProvider: TdxMapControlAzureMapImageryDataProvider;
begin
ATileLayer := dxMapControl1.Layers.Add(TdxMapImageTileLayer) as TdxMapImageTileLayer;
ATileLayer.ProviderClass := TdxMapControlAzureMapImageryDataProvider;
AProvider := ATileLayer.Provider as TdxMapControlAzureMapImageryDataProvider;
AProvider.BeginUpdate; // Initiates the following batch change
try
AProvider.AzureKey := AAzureKey; // Assigns the Azure account key
AProvider.Tileset := TdxAzureMapTileset.Satellite; // Changes the default tileset
AProvider.MaxParallelConnectionCount := 8; // Explicitly defines the number of parallel connections
finally
AProvider.EndUpdate; // Calls EndUpdate regardless of the batch operation's success
end;
end;
#include "dxAzureMapImageryDataProvider.hpp" // Declares TdxMapControlAzureMapImageryDataProvider
// ...
void __fastcall TMyForm::AddAzureMapLayer(const UnicodeString &AAzureKey)
{
TdxMapLayer *ALayer;
TdxMapImageTileLayer *ATileLayer;
TdxMapControlAzureMapImageryDataProvider *AProvider;
ALayer = dxMapControl1->Layers->Add(__classid(TdxMapImageTileLayer));
ATileLayer = dynamic_cast<TdxMapImageTileLayer*>(ALayer);
ATileLayer->ProviderClass = __classid(TdxMapControlAzureMapImageryDataProvider);
AProvider = dynamic_cast<TdxMapControlAzureMapImageryDataProvider*>(ATileLayer->Provider);
AProvider->BeginUpdate(); // Initiates the following batch change
try
{
AProvider->AzureKey = AAzureKey; // Assigns the Azure account key
AProvider->Tileset = TdxAzureMapTileset::Satellite; // Changes the default tileset
AProvider->MaxParallelConnectionCount = 8; // Explicitly defines the number of parallel connections
}
__finally
{
AProvider->EndUpdate(); // Calls EndUpdate regardless of the batch operation's success
}
}
Alternatively, you can call the following functions of the Map Control to create corresponding map layers:
TdxCustomMapControl.AddImageTileLayerCreates a new image tile layer and adds it to the map layer collection.TdxCustomMapControl.AddItemFileLayerCreates a new item file layer and adds it to the map layer collection.TdxCustomMapControl.AddItemLayerCreates a new item layer. See Also