Получите список местных предприятий с помощью API службы поиска карт Bing

Я разрабатываю приложение Silverlight для Windows Phone 7, которое в настоящее время отображает карту, которая показывает пользователю, где он находится, получая координаты от служб определения местоположения. Я могу получить адрес с помощью API обратного геокодирования bing.

Я хотел бы показать пользователю местные предприятия, которые могут быть неинтересными, разместив кнопки на карте. Однако я не могу получить какие-либо результаты поиска из 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 результатов.

Любые идеи?


person Fishcake    schedule 07.12.2010    source источник


Ответы (3)


В итоге я использовал результаты местного поиска Google, который дает фантастические результаты, и вы можете указать точное географическое местоположение, чтобы указать область для поиска.

Если позже это пригодится кому-то другому, я использовал Google API для .net, чтобы вызвать службу Google и затем отобразить точки в элементе управления Silverlight Bing Maps.

person Fishcake    schedule 09.12.2010
comment
У меня точно такая же проблема (0 результатов в Австралии), исправлена ​​таким же образом. Жалко хотя. Я бы действительно хотел использовать Bing, если бы мог. - person Bernie White; 18.11.2011
comment
Обе платформы не позволяют смешивать их контент. Таким образом, использование результатов Google в элементе управления Bing Maps не разрешено ни Google, ни Bing. См. Условия использования Google и Bing. - person Nicolas Boonaert; 18.06.2014
comment
@NicolasBoonaert Справедливый вопрос. За 4 года, прошедшие с момента публикации этого поста, есть все шансы, что API Bing улучшился, в качестве альтернативы могут быть доступны альтернативы с открытым исходным кодом. - person Fishcake; 18.06.2014

Я знаю, что поиск местных компаний на Bing Maps для Wp7 ограничен США. На самом деле я живу в Канаде, и результаты бесполезны, за исключением случаев, когда вы измените свои локальные настройки на «язык браузера и поиска» на региональном экране плитки настроек, как описано здесь:

"Bing Maps не может найти локальные результаты"

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

может быть, у WS API есть такие же ограничения?

person MatthieuGD    schedule 08.12.2010
comment
Спасибо, что указали мне правильное направление. Кажется, если я раскрою сеть по-настоящему широко, я смогу получить результаты поиска. Например, 10 отелей в радиусе 200 миль - не совсем подходит для моих нужд. - person Fishcake; 08.12.2010

У вас есть несколько вариантов локализации результатов Bing Search SOAP API, а именно:

  1. Установите для свойства RequestBase.Culture значение en-GB
  2. Задайте для свойств класса SearchRegion BoundingArea или GeocodeLocation из предыдущего GeocodeResult

Если вы используете SourceType телефонной книги из Bing API v2, вы можете попробовать установить _ 6_ на соответствующий код языка и региональных параметров.

person Rebecca    schedule 29.03.2012