vcl-dxazuremapinformationproviders-dot-tdxmapcontrolazuremapreversegeocodeprovider-dot-executeasync-x28-dxazuremapinterfaces-dot-idxazuremapreversegeocodequeryparams-x29.md
Sends an asynchronous query to an Azure Maps server.
procedure ExecuteAsync(const AParams: IdxAzureMapReverseGeocodeQueryParams);
| Name | Type | Description |
|---|---|---|
| AParams | IdxAzureMapReverseGeocodeQueryParams |
Accepts a configured query parameters container.
Call the CreateQueryParams function to create a query parameters container.
|
Call the ExecuteAsync procedure to send an asynchronous query to an Azure Maps server.
Handle the OnResponse event to receive and process a server query after an ExecuteAsync procedure call.
The code example in this section demonstrates a procedure that sends a query to an Azure Maps Reverse Geocode server and an OnResponse event handler that receives and processes the server response.
uses
dxAzureMapInformationProviders, // Declares TdxMapControlAzureMapReverseGeocodeProvider
dxMessageDialog; // Declares the dxMessageDlg global function
// ...
procedure TMyForm.AddPushpin(AGeoPoint: TdxMapControlGeoPoint): Boolean;
var
APushpin: TdxMapPushpin;
AQueryParams: IdxAzureMapReverseGeocodeQueryParams;
begin
// Creates a new pushpin on an existing map item layer
APushpin := dxMapControl1ItemLayer1.MapItems.Add(TdxMapPushpin) as TdxMapPushpin;
APushpin.Location.GeoPoint := AGeoPoint;
AQueryParams := dxMapControl1AzureMapReverseGeocodeProvider1.CreateQueryParams;
AQueryParams.Coordinates := APushpin.Location.GeoPoint;
// Uses a configured reverse geocode provider to send a query to an Azure Maps server
dxMapControl1AzureMapReverseGeocodeProvider1.ExecuteAsync(AQueryParams);
end;
procedure TMyForm.dxMapControl1AzureMapReverseGeocodeProvider1Response(
ASender: TdxMapControlAzureMapReverseGeocodeProvider;
AResponse: TdxAzureMapReverseGeocodeRequestResponse; var ADestroyResponse: Boolean);
var
AMapItems: TdxMapItems;
APushpin: TdxMapPushpin;
begin
AMapItems := dxMapControl1ItemLayer1.MapItems;
if AResponse <> nil then
begin
if AResponse.IsSuccess and (AResponse.Features.Count > 0) then // Checks if the query is successful
begin
APushpin := AMapItems.Items[AMapItems.Count - 1] as TdxMapPushpin;
APushpin.Hint := AResponse.Features.First.Properties.Address.FormattedAddress;
end
else if Assigned(AResponse.ErrorInfo) then
dxMessageDlg(AResponse.ErrorInfo.Message, TMsgDlgType.mtError, [mkOK], 0);
end;
end;
#include "dxAzureMapInformationProviders.hpp" // Declares TdxMapControlAzureMapReverseGeocodeProvider
#include "dxMessageDialog.hpp" // Declares the dxMessageDlg global function
// ...
void __fastcall TMyForm::AddPushpin(TdxMapControlGeoPoint *AGeoPoint)
{
TdxMapPushpin *APushpin;
_di_IdxAzureMapReverseGeocodeQueryParams AQueryParams;
// Creates a new pushpin on an existing map item layer
APushpin = dynamic_cast<TdxMapPushpin*>(dxMapControl1ItemLayer1->MapItems->Add(__classid(TdxMapPushpin)));
APushpin->Location->GeoPoint = AGeoPoint;
AQueryParams = dxMapControl1AzureMapReverseGeocodeProvider1->CreateQueryParams();
AQueryParams->Coordinates = APushpin->Location->GeoPoint;
// Uses a configured reverse geocode provider to send a query to an Azure Maps server
dxMapControl1AzureMapReverseGeocodeProvider1->ExecuteAsync(AQueryParams);
}
void __fastcall TMyForm::dxMapControl1AzureMapReverseGeocodeProvider1Response(
TdxMapControlAzureMapReverseGeocodeProvider *ASender,
TdxAzureMapReverseGeocodeRequestResponse *AResponse, bool &ADestroyResponse)
{
TdxMapItems *AMapItems;
TdxMapPushpin *APushpin;
AMapItems = dxMapControl1ItemLayer1->MapItems;
if(AResponse != nullptr)
{
if((AResponse->IsSuccess) && (AResponse->Features->Count > 0)) // Checks if the query is successful
{
APushpin = dynamic_cast<TdxMapPushpin*>(AMapItems->Items[AMapItems->Count - 1]);
APushpin->Hint = AResponse->Features->Properties->Address->FormattedAddress;
}
else if(AResponse->ErrorInfo != nullptr)
{
dxMessageDlg(AResponse->ErrorInfo->Message, TMsgDlgType::mtError, TMsgDlgButtons() << mbOK, 0);
}
}
}
See Also
TdxMapControlAzureMapReverseGeocodeProvider.Execute Procedure
TdxMapControlAzureMapReverseGeocodeProvider Class