Back to Devexpress

TdxMapControlInformationProviderClass Type

vcl-dxmapcontrolinformationprovider-21d56da8.md

latest5.0 KB
Original Source

TdxMapControlInformationProviderClass Type

A reference to an auxiliary information provider class.

Declaration

delphi
TdxMapControlInformationProviderClass = class of TdxMapControlInformationProvider;

Referenced Class

TypeDescription
TdxMapControlInformationProvider

The base class for all information provider classes.

|

Remarks

You can use the TdxMapControlInformationProviderClass type to refer to the following TdxMapControlInformationProvider class descendants:

TdxMapControlAzureMapGeocodeProviderAn Azure Maps Geocode information provider.TdxMapControlAzureMapGeolocationProviderAn Azure Maps Geolocation information provider.TdxMapControlAzureMapReverseGeocodeProviderAn Azure Maps Reverse Geocode information provider.TdxMapControlAzureMapRouteProviderAn Azure Maps Route information provider.

Code Example: Create and Configure Azure Maps Information Providers

The following code example implements a procedure that accepts an Azure Maps account key, and creates and configures all Azure Maps information provider components:

delphi
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;
cpp
#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
  }
}

Direct TdxMapControlInformationProviderClass Reference

The TdxMapControlInformationProviders.Add function accepts a TdxMapControlInformationProviderClass value as the AItemClass parameter.

See Also

TdxMapLayerClass Type

dxMapControlInformationProvider Unit