TdxAzureMapGeocodeProviderOnResponse Type
The procedural type for Azure Maps Geocode server response events.
#Declaration
TdxAzureMapGeocodeProviderOnResponse = procedure(ASender: TdxMapControlAzureMapGeocodeProvider; AResponse: TdxAzureMapGeocodeRequestResponse; var ADestroyResponse: Boolean) of object;
#Parameters
Name | Type | Description |
---|---|---|
ASender | Tdx |
Provides access to the Azure Maps Geocode information component that raised the server response event. |
AResponse | Tdx |
Provides access to a container populated with information returned by a server. |
ADestroy |
Boolean | Specifies if the response event handler automatically destroys the information container accessible through the
|
#Remarks
Response events allow you to receive and process a server response after an asynchronous query.
#Code Example: Obtain Point Coordinates by Address Asynchronously
The code example in this section demonstrates a procedure that sends a query to an Azure Maps Geocode server and an OnResponse event handler that receives and processes the server response. The event handler uses an existing map layer to draw a pushpin at the obtained point coordinates if the query is successful.
uses
dxAzureMapInformationProviders, // Declares TdxMapControlAzureMapGeocodeProvider
dxMessageDialog; // Declares the dxMessageDlg global function
// ...
procedure TMyForm.SendGeocodeQuery(const AAddress: string);
var
AQueryParams: IdxAzureMapGeocodeQueryParams;
begin
AQueryParams := dxMapControl1AzureMapGeocodeProvider1.CreateQueryParams;
AQueryParams.Query := AAddress;
dxMapControl1AzureMapGeocodeProvider1.ExecuteAsync(AQueryParams);
end;
procedure TMyForm.dxMapControl1AzureMapGeocodeProvider1Response(
ASender: TdxMapControlAzureMapGeocodeProvider;
AResponse: TdxAzureMapGeocodeRequestResponse; var ADestroyResponse: Boolean);
var
APushpin: TdxMapPushpin;
begin
if AResponse <> nil then
begin
if AResponse.IsSuccess then // Creates a pushpin at the obtained position if the query is successful
begin
APushpin := dxMapControl1ItemLayer1.MapItems.Add(TdxMapPushpin) as TdxMapPushpin;
APushpin.Location.GeoPoint.Longitude := AResponse.Features.First.Geometry.Coordinates[0];
APushpin.Location.GeoPoint.Latitude := AResponse.Features.First.Geometry.Coordinates[1];
end
else if Assigned(AResponse.ErrorInfo) then
dxMessageDlg(AResponse.ErrorInfo.Message, TMsgDlgType.mtError, [mbOK], 0);
end;
end;
#Direct TdxAzureMapGeocodeProviderOnResponse Type Reference
The TdxMapControlAzureMapGeocodeProvider.OnResponse event references the TdxAzureMapGeocodeProviderOnResponse
procedural type.