Skip to main content

BingSearchDataProvider.Search(String, String, Int32) 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 starting from the specified index.

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,
    int startingIndex
)

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 to which the specified keyword shall be searched for.

startingIndex Int32

An integer value specifying the index of the first result that should be returned. This means, for instance, if the startingIndex is 5, the first 4 results will be skipped.

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