vcl-dxmapcontrolinformationprovider-dot-tdxmapcontrolinformationproviders.md
Provides indexed access to stored map information provider components.
property Items[Index: Integer]: TdxMapControlInformationProvider read; write; default;
| Type | Description |
|---|---|
| TdxMapControlInformationProvider |
An auxiliary map information provider.
To access all public API members of an information provider, you need to cast the returned object to the corresponding terminal TdxMapControlInformationProvider class descendant.
Tip
You can call the ClassType function or use any other RTTI functionality to identify the actual information provider type.
|
Use the Count property to identify the number of information providers accessible through the Items property.
The following code example implements a procedure that accepts an Azure Maps account key, and creates and configures all Azure Maps information provider components:
uses
dxAzureMapInformationProviders; // Declares all Azure Maps information provider classes
// ...
procedure TMyForm.CreateAzureMapsInformationProviders(const AAzureKey: string);
var
AProviders: TdxMapControlInformationProviders;
AProvider: TdxMapControlAzureMapInformationProvider;
I: Integer;
begin
AProviders := dxMapControl1.InformationProviders;
AProviders.BeginUpdate; // Initiates the following batch change
try
// Create all Azure Maps information providers
AProviders.Add(TdxMapControlAzureMapGeocodeProvider);
AProviders.Add(TdxMapControlAzureMapGeolocationProvider);
AProviders.Add(TdxMapControlAzureMapReverseGeocodeProvider);
AProviders.Add(TdxMapControlAzureMapRouteProvider);
for I := 0 to AProviders.Count - 1 do // Iterates through all created information providers
begin
AProvider := AProviders.Items[I] as TdxMapControlAzureMapInformationProvider;
AProvider.AzureKey := AAzureKey; // Assigns the same Azure Maps account key to all providers
end;
finally
AProviders.EndUpdate; // Calls EndUpdate regardless of the batch operation's success
end;
end;
#include "dxAzureMapInformationProviders.hpp" // Declares all Azure Maps information provider classes
// ...
void __fastcall TMyForm::CreateAzureMapsInformationProviders(const UnicodeString &AAzureKey)
{
TdxMapControlInformationProviders *AProviders;
TdxMapControlAzureMapInformationProvider *AProvider;
AProviders = dxMapControl1->InformationProviders;
AProviders->BeginUpdate(); // Initiates the following batch change
try
{
// Create all Azure Maps information providers
AProviders->Add(__classid(TdxMapControlAzureMapGeocodeProvider));
AProviders->Add(__classid(TdxMapControlAzureMapGeolocationProvider));
AProviders->Add(__classid(TdxMapControlAzureMapReverseGeocodeProvider));
AProviders->Add(__classid(TdxMapControlAzureMapRouteProvider));
for(int i = 0; i < AProviders->Count; i++) // Iterates through all created information providers
{
AProvider = dynamic_cast<TdxMapControlAzureMapInformationProvider*>(AProviders->Items[i]);
AProvider->AzureKey = AAzureKey; // Assigns the same Azure Maps account key to all providers
}
}
__finally
{
AProviders->EndUpdate(); // Calls EndUpdate regardless of the batch operation's success
}
}
See Also
TdxMapControlInformationProviders Class