使用Bing Maps Search服务API获取本地商家列表

时间:2010-12-07 16:10:45

标签: windows-phone-7 bing-maps bing-api

我正在开发一个Windows Phone 7 Silverlight应用程序,该应用程序当前显示的地图通过从位置服务获取坐标来显示用户所在的位置。我可以使用bing Reverse geocoding API获取地址。

我想通过在地图上放置图钉来向用户展示可能不感兴趣的本地商家。但是我无法从Search Service API获得任何搜索结果。无论我输入什么,我得到0结果,我发现文档缺乏。我已经尝试过这个example,但很少有关于过滤器参数的描述。例如。

我现在有什么:

StructuredSearchQuery query = new StructuredSearchQuery();
        query.Keyword = "Petrol Station";
        query.Location = "New Road, Belper DE56 1";

        searchRequest.SearchOptions = new SearchOptions();
        searchRequest.SearchOptions.Filters =
        new FilterExpression()
        {
            PropertyId = 1,
            CompareOperator = CompareOperator.Equals,
            FilterValue = 11199
        };

        SearchServiceClient searchServiceClient = new SearchServiceClient();
        searchServiceClient.SearchCompleted += new EventHandler<SearchCompletedEventArgs>(searchServiceClient_SearchCompleted);
        searchServiceClient.SearchAsync(searchRequest);


        void searchServiceClient_SearchCompleted(object sender, SearchCompletedEventArgs e)
        {
            SearchResponse searchResponse = e.Result;
        }

我更喜欢使用我已经获得的坐标来使用搜索中的确切位置,但无法看到。据我所知,我的搜索应该返回11199(酒吧和酒馆)类别中的所有商家,但无论我输入什么位置,我得到0结果。

任何想法?

3 个答案:

答案 0 :(得分:3)

我最终使用Google本地搜索的结果,这会产生出色的效果,您可以提供精确的地理位置来指定要搜索的区域。

如果以后对其他人有用,我会使用Google API for .net来调用google服务,然后在silverlight Bing地图控件上显示这些点。

答案 1 :(得分:1)

我知道Bing Maps for Wp7上的本地商户搜索仅限于美国。事实上我住在加拿大,结果没用,除非您在“设置”磁贴的“区域”屏幕中更改“浏览器和搜索语言”的本地设置,如下所述:

“Bing Maps在查找本地结果时遇到问题”

http://social.answers.microsoft.com/Forums/en-US/windowsphone7/thread/d1f0ce7f-464f-4804-9c61-48cec47fe518/

也许WS API有一些相同的限制?

答案 2 :(得分:0)

您可以通过多种方式来本地化Bing Search SOAP API的结果,即:

  1. RequestBase.Culture属性设置为en-GB
  2. 从之前的BoundingArea
  3. 设置GeocodeLocationGeocodeResult的{​​{3}}类属性

    如果您使用SearchRegion中的Phonebook SourceType,则可以尝试将Bing API v2属性设置为相应的区域性代码。