RequestResultBase Class
The base for all classes that contain results of requests to web services.
Namespace: DevExpress.Xpf.Map
Assembly: DevExpress.Xpf.Map.v25.1.dll
NuGet Package: DevExpress.Wpf.Map
#Declaration
#Example
This example demonstrates how to manually process received Bing Search request results.
Important
On May 21, 2024, Microsoft announced that Bing Maps for Enterprise and its API will be discontinued. Azure Maps will be a single unified enterprise mapping platform available from Microsoft.
To obtain and display map data from Azure Maps, we implemented the following providers:
- Azure
Map Data Provider - Azure
Search Data Provider - Azure
Route Data Provider - Azure
Geocode Data Provider - Azure
Traffic Incident Data Provider - Azure
Route Isochrone Data Provider
For information on how to migrate your app from Bing Maps to Azure Maps, see the following help topic: DevExpress Map Control for WPF: Migrate from Bing Maps to Azure Maps.
If you already have a Bing Maps for Enterprise license, you can keep using the current API. You must transition to the new API by June 30, 2025 (for free/basic licenses) or June 30, 2028 (for enterprise licenses). New licenses will no longer be available after June 30, 2025. Bing Maps will not work with our map controls without a license after that date.
- Create a InformationLayer object and add it to the MapControl.Layers collection. Assign the
BingSearchDataProvider
object to the InformationLayer.DataProvider property. - Handle the BingSearchDataProvider.SearchCompleted event. In the event handler, implement the request result processing.
Private Sub searchProvider_SearchCompleted(ByVal sender As Object, ByVal e As BingSearchCompletedEventArgs)
If e.Cancelled Then
Return
End If
If e.RequestResult.ResultCode <> RequestResultCode.Success Then
Return
End If
Dim sb As New StringBuilder()
Dim requestResult As SearchRequestResult = e.RequestResult
sb.Append(String.Format("Result Code: {0}" & vbLf, requestResult.ResultCode))
If String.IsNullOrEmpty(requestResult.FaultReason) Then
sb.Append(String.Format("Fault Reason: (none)" & vbLf, requestResult.FaultReason))
Else
sb.Append(String.Format("Fault Reason: {0}" & vbLf, requestResult.FaultReason))
End If
sb.Append(String.Format("Search Location: {0}" & vbLf, requestResult.Keyword))
sb.Append(String.Format("Estimated Matches: {0}" & vbLf, requestResult.EstimatedMatches))
sb.Append(String.Format("SearchResults:" & vbLf & "{0}", ProcessLocationList(requestResult.SearchResults)))
tbSearchResult.Text = sb.ToString()
End Sub
Private Function ProcessLocationList(ByVal results As List(Of LocationInformation)) As String
If results Is Nothing Then
Return ""
End If
Dim sb As New StringBuilder()
For i As Integer = 0 To results.Count - 1
sb.Append(String.Format("{0}) {1}", i + 1, ProcessLocationInformation(results(i))))
Next i
Return sb.ToString()
End Function
Private Function ProcessLocationInformation(ByVal info As LocationInformation) As String
If info Is Nothing Then
Return ""
End If
Dim sb As New StringBuilder()
sb.Append(String.Format("{0}" & vbLf, info.DisplayName))
sb.Append(String.Format(vbTab & "Adress: {0}" & vbLf, info.Address))
sb.Append(String.Format(vbTab & "Location: {0}" & vbLf, info.Location))
Return sb.ToString()
End Function