BingSearchDataProvider.Search(String, String, GeoPoint) Method
OBSOLETE
Due to changing Bing SOAP API to REST API, several options are not supported now. Please refer to the https://msdn.microsoft.com/en-us/library/cc980922.aspx topic to learn more.
Searches for locations that best correspond to the specified keywords near the specified location around the specified geographical point.
Namespace: DevExpress.XtraMap
Assembly: DevExpress.XtraMap.v24.1.dll
NuGet Package: DevExpress.Win.Map
Declaration
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("Due to changing Bing SOAP API to REST API, several options are not supported now. Please refer to the https://msdn.microsoft.com/en-us/library/cc980922.aspx topic to learn more.")]
[PreferableMember("BingSearchDataProvider", "Search", "")]
public void Search(
string keyword,
string location,
GeoPoint searchAnchorPoint
)
Parameters
Name | Type | Description |
---|---|---|
keyword | String | A String containing information to search on a map. This string can contain either geographical names or any other information to look for. |
location | String | A String specifying the location near which it is necessary to search for the specified keyword. |
searchAnchorPoint | GeoPoint | A GeoPoint object specifying the geographical point, around which it is necessary to search for a keyword and a location. |
Example
To manually generate map items for received GIS data, do the following.
- Set the InformationDataProviderBase.GenerateLayerItems property to false.
- Handle the Geocode data received event of the Bing geocode data provider (BingSearchDataProvider.SearchCompleted).
- In the event handler, implement map item generation based on information stored in the SearchRequestResult.SearchResults array of LocationInformation objects.
using DevExpress.XtraEditors;
using DevExpress.XtraMap;
using System;
using System.Text;
namespace MapControl_SearchProcessing {
public partial class Form1 : XtraForm {
string BingKey { get { return "YourBingKey"; } }
public Form1() {
InitializeComponent();
SearchProvider.SearchCompleted += OnSearchCompleted;
SearchLayer.DataRequestCompleted += OnDataRequestCompleted;
BingMapDataProvider.BingKey = BingKey;
SearchProvider.BingKey = BingKey;
}
private void btnSearch_Click(object sender, EventArgs e) {
SearchProvider.Search(teKeyword.Text);
}
#region #SearchResultProcessing
void OnSearchCompleted(object sender, BingSearchCompletedEventArgs e) {
if(e.Cancelled) return;
if(e.RequestResult.ResultCode != RequestResultCode.Success) {
meResult.Text = "The Bing Search service does not work for this location.";
return;
}
StringBuilder resultList = new StringBuilder("");
int resCounter = 1;
foreach(BingLocationInformation resultInfo in e.RequestResult.SearchResults) {
resultList.Append(String.Format("Result {0}: \r\n", resCounter));
resultList.Append(String.Format("Name: {0}\r\n", resultInfo.DisplayName));
resultList.Append(String.Format("Address: {0}\r\n", resultInfo.Address.FormattedAddress));
resultList.Append(String.Format("Confidence level: {0}\r\n", resultInfo.Confidence));
resultList.Append(String.Format("Geographic coordinates: {0}\r\n", resultInfo.Location));
resultList.Append(String.Format("Match code: {0}\r\n", resultInfo.MatchCode));
resultList.Append(String.Format("______________________________\r\n"));
resCounter++;
}
meResult.Text = resultList.ToString();
}
#endregion #SearchResultProcessing
void OnDataRequestCompleted(object sender, RequestCompletedEventArgs e) {
mapControl.ZoomToFitLayerItems(0.4);
}
}
}