2

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

我想通过在地图上放置图钉向用户显示可能不感兴趣的本地企业。但是,我无法从Search Service API获得任何搜索结果。无论我输入什么,我都会得到 0 个结果,并且我发现缺少文档。我已经尝试按照这个示例进行操作,但是对过滤器参数的描述很少。

我目前拥有的:

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 个结果。

有任何想法吗?

4

3 回答 3

3

我最终使用了来自谷歌本地搜索的结果,它产生了非常棒的结果,您可以提供准确的地理位置来指定要搜索的区域。

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

于 2010-12-09T09:38:38.450 回答
1

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

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

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

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

于 2010-12-08T01:43:58.127 回答
0

您有几个选项来本地化 Bing 搜索 SOAP API 的结果,即:

  1. RequestBase.Culture属性设置为en-GB
  2. 设置前一个的SearchRegion类属性BoundingAreaGeocodeLocation从前一个GeocodeResult

如果您使用Bing API v2中的电话簿 SourceType,您可以尝试将属性设置为适当的文化代码。SearchRequest.Market

于 2012-03-29T13:31:30.867 回答