TdxMapControlAzureMapGeolocationProvider Class
An Azure Maps Geolocation information provider.
#Declaration
TdxMapControlAzureMapGeolocationProvider = class sealed(TdxMapControlAzureMapInformationProvider)
#Remarks
The TdxMapControlAzureMapGeolocationProvider
component allows you to use Azure Maps Geolocation services to obtain an ISO country code based on the specified IP address.
#Azure Maps Account
To use Microsoft Azure Maps® services, you need to create an Azure Maps account and obtain a key. Assign the account key to the AzureKey property to configure the information provider.
#Main API Members
The list below outlines key members of the TdxMapControlAzureMapGeolocationProvider
class. These members allow you to access Azure Maps services and an ISO country code that corresponds to the specified IP address.
#Server-Related API Members
- AzureKey
- Required. Specifies the account key required to use the Azure geolocation provider.
- CancelRequests
- Cancels pending asynchronous queries to Azure Maps servers.
- CreateQueryParams
- Creates an information container required to send a geolocation query to an Azure Maps server.
- Execute | ExecuteAsync
- Send a query created by a CreateQueryParams function call.
- OnResponse
- Allows you to receive and process a server response after an asynchronous query.
#Collection-Related API Members
- Collection
- Provides access to the parent collection.
- DisplayName
- Specifies the information provider’s name displayed in the design-time collection editor dialog.
- Index
- Specifies the information provider’s index in the parent collection.
- ID
- Returns the component’s unique identifier.
#Other Azure Maps Information Providers
- TdxMapControlAzureMapGeocodeProvider
- An Azure Maps Geocode information provider.
- TdxMapControlAzureMapReverseGeocodeProvider
- An Azure Maps Reverse Geocode information provider.
- TdxMapControlAzureMapRouteProvider
- An Azure Maps Route information provider.
#Code Examples
#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:
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;
#Obtain Country ISO Code by IP Address
The following code example implements a function that uses a configured information provider to return a country ISO code that corresponds to the specified IP address:
uses
dxAzureMapInformationProviders; // Declares TdxMapControlAzureMapGeolocationProvider
// ...
function TMyForm.GetCountryISOCode(const AIPAddress: string): string;
var
AParams: IdxAzureMapGeolocationQueryParams;
AResponse: TdxAzureMapGeolocationRequestResponse;
begin
AParams := dxMapControl1AzureMapGeolocationProvider1.CreateQueryParams;
AParams.IP := AIPAddress;
dxMapControl1AzureMapGeolocationProvider1.Execute(AParams, AResponse);
if AResponse <> nil then
begin
if AResponse.IsSuccess then
AResult := AResponse.CountryRegion.IsoCode
end;
end;
#Indirect TdxMapControlAzureMapGeolocationProvider Class References
The following public API members reference the TdxMapControlAzureMapGeolocationProvider
class as a TdxMapControlInformationProvider object:
- TdxMapControlInformationProviders.Add
- Creates an auxiliary map information provider of the required type and adds the provider to the collection.
- TdxMapControlInformationProviders.Items
- Provides indexed access to stored map information provider components.
#Direct TdxMapControlAzureMapGeolocationProvider Class Reference
The TdxMapControlInformationProviderClass references the TdxMapControlAzureMapGeolocationProvider
class.
#Related Compiled Demo
To see Microsoft Azure Map tile and information providers in action, run the Mapping demo in the VCL Demo Center installed with compiled DevExpress demos. When the demo is opened, it downloads tile data and additional information from Azure Map servers to display a map and build routes between specified points.
Tip
Compiled DevExpress demos ship with source code installed in the Public Documents folder (%Public%) for all users (default). You can find all project and source code files for the Map Control demo in the following folder:
%Public%\Documents\DevExpress VCL Demos\Mega