vcl-dxazuremapinformationproviders-dot-tdxmapcontrolazuremapreversegeocodeprovider.md
Creates an information container required to send a query to an Azure Maps server.
function CreateQueryParams: IdxAzureMapReverseGeocodeQueryParams;
| Type | Description |
|---|---|
| IdxAzureMapReverseGeocodeQueryParams |
Stores Azure Maps Reverse Geocode query parameters.
|
Call the CreateQueryParams function to create and configure server query parameters before an Execute or ExecuteAsync procedure call.
To receive and process a response from an Azure Maps server after an ExecuteAsync procedure call, handle the OnResponse event.
The following code example implements a procedure that uses a configured information provider component to create a pushpin at the specified point on the map and assign the point’s address to the pushpin hint:
uses
dxAzureMapInformationProviders; // Declares TdxMapControlAzureMapReverseGeocodeProvider
// ...
procedure TMyForm.AddPushpin(AGeoPoint: TdxMapControlGeoPoint);
var
APushpin: TdxMapPushpin;
AParams: IdxAzureMapReverseGeocodeQueryParams;
AResponse: TdxAzureMapReverseGeocodeRequestResponse;
begin
// Creates a new pushpin on an existing map item layer
APushpin := dxMapControl1ItemLayer1.MapItems.Add(TdxMapPushpin) as TdxMapPushpin;
APushpin.Location.GeoPoint := AGeoPoint;
AParams := dxMapControl1AzureMapReverseGeocodeProvider1.CreateQueryParams;
AParams.Coordinates := APushpin.Location.GeoPoint;
// Uses a configured reverse geocode provider to send a query to an Azure Maps server
dxMapControl1AzureMapReverseGeocodeProvider1.Execute(AParams, AResponse);
try
if AResponse <> nil then // Checks if a server response is received
begin
if AResponse.IsSuccess and (AResponse.Features.Count > 0) then // Checks if the query is successful
APushpin.Hint := AResponse.Features.First.Properties.Address.FormattedAddress;
end;
finally
AResponse.Free; // Deletes the query result regardless of the operation's success
end;
end;
#include "dxAzureMapInformationProviders.hpp" // Declares TdxMapControlAzureMapReverseGeocodeProvider
// ...
void __fastcall TMyForm::AddPushpin(TdxMapControlGeoPoint *AGeoPoint)
{
TdxMapPushpin *APushpin;
_di_IdxAzureMapReverseGeocodeQueryParams AParams;
TdxAzureMapReverseGeocodeRequestResponse *AResponse;
// Creates a new pushpin on an existing map item layer
APushpin = dynamic_cast<TdxMapPushpin*>(dxMapControl1ItemLayer1->MapItems->Add(__classid(TdxMapPushpin)));
APushpin->Location->GeoPoint = AGeoPoint;
AParams = dxMapControl1AzureMapReverseGeocodeProvider1->CreateQueryParams();
AParams->Coordinates = APushpin->Location->GeoPoint;
// Uses a configured reverse geocode provider to send a query to an Azure Maps server
dxMapControl1AzureMapReverseGeocodeProvider1->Execute(AParams, AResponse);
try
{
if(AResponse != nullptr) // Checks if a server response is received
{
if((AResponse->IsSuccess) && (AResponse->Features->Count > 0)) // Checks if the query is successful
APushpin->Hint = AResponse->Features->First()->Properties->Address->FormattedAddress;
}
}
__finally
{
delete AResponse; // Deletes the query result response regardless of the operation's success
}
}
See Also
TdxMapControlAzureMapGeocodeProvider.CreateQueryParams Function
TdxMapControlAzureMapReverseGeocodeProvider Class