Skip to main content
All docs
V25.1
  • TdxMapControlAzureMapRouteProvider Class

    An Azure Maps Route information provider.

    Declaration

    TdxMapControlAzureMapRouteProvider = class(
        TdxMapControlAzureMapInformationProvider
    )

    Remarks

    The TdxMapControlAzureMapRouteProvider component connects to Azure Maps Route servers and calculates routes on a map.

    VCL Map Control: A Built Azure Maps Route Example

    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 TdxMapControlAzureMapRouteProvider class. These members allow you to send queries to the Azure Maps Route services and build routes on the map.

    AzureKey
    Required. Specifies the account key required to use the Azure Maps Route service.
    CancelRequests
    Cancels pending asynchronous queries to Azure Maps Route servers.
    CreateQueryParams
    Creates an information container required to send a query to an Azure Maps Route 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
    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.
    TdxMapControlAzureMapGeolocationProvider
    An Azure Maps Geolocation information provider.
    TdxMapControlAzureMapReverseGeocodeProvider
    An Azure Maps Reverse Geocode 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;
    

    Draw a Map Route

    The following code example uses a configured information provider to draw a route between two specified points on a map:

    uses
      dxAzureMapInformationProviders,  // Declares TdxMapControlAzureMapRouteProvider
      dxCoreGraphics;  // Declares TdxAlphaColors
    // ...
    
    procedure TMyForm.DrawMapRoute(ARouteStart, ARouteEnd: TdxMapControlGeoPoint);
    var
      APolyline: TdxMapPolyline;
      ARoute: TdxAzureMapRouteItem;
      AParams: IdxAzureMapRouteQueryParams;
      AResponse: TdxAzureMapRouteRequestResponse;
      ARouteWaypoints: TdxMapControlGeoPoints;
      I, J: Integer;
    begin
      AParams := dxMapControl1AzureMapRouteProvider1.CreateQueryParams;
      SetLength(ARouteWaypoints, 2);
      ARouteWaypoints[0] := ARouteStart;
      ARouteWaypoints[1] := ARouteEnd;
      AParams.WayPoints := ARouteWaypoints;
      AParams.TravelMode := TdxAzureMapRouteTravelMode.Car;
      AParams.MaxAlternatives := 1;
      dxMapControl1AzureMapRouteProvider1.Execute(AParams, AResponse);
      dxMapControl1.BeginUpdate;  // Initiates the following batch change
      try
        if AResponse <> nil then
        begin
          if AResponse.IsSuccess then  // Draws a route if a valid server response is received
          begin
            APolyline := dxMapControl1ItemLayer1.AddItem(TdxMapPolyline) as TdxMapPolyline;
            ARoute := AResponse.Routes.Items[0];  // Selects the first returned route
            for I := 0 to ARoute.Legs.Count - 1 do
              for J := 0 to ARoute.Legs.Items[I].Points.Count - 1 do
                APolyline.GeoPoints.Add.GeoPoint := ARoute.Legs.Items[I].Points.Items[J];
    
            APolyline.Style.BorderWidth := 4;
            APolyline.Style.BorderColor := TdxAlphaColors.DarkBlue;
          end;
        end;
      finally
        dxMapControl1.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
      end;
    end;
    

    Indirect TdxMapControlAzureMapRouteProvider Class References

    The following public API members reference the TdxMapControlAzureMapRouteProvider 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 TdxMapControlAzureMapRouteProvider Class Reference

    The TdxMapControlInformationProviderClass references the TdxMapControlAzureMapRouteProvider class.

    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.

    Download: Compiled VCL Demos

    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\MegaDemos\Product Demos\ExpressMapControl

    See Also