Skip to main content

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.

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);
        }
    }
}
See Also