Итак, я пытаюсь использовать модуль поиска API AJAX карт Bing (v7) и заметил, что в интерактивном SDK для него вы можете передать свойство с именем bounds
, которое вы задаете ограничивающую рамку для поиска. В примере просто используется текущая ограничивающая рамка карты, поэтому теоретически, если вы увеличиваете масштаб, новый поиск должен просто показывать вам результаты в пределах увеличенной области, верно?
Что ж, вот в чем проблема: добавьте следующий код в конец примера кода в Interactive SDK:
Microsoft.Maps.Events.addHandler(map, 'viewchange', searchRequest);
Это должно делать, так это каждый раз, когда вы перемещаетесь по карте, увеличиваете или уменьшаете масштаб, он должен запускать новый поиск с новой ограничивающей областью карты ... Я говорю это из-за линии, которая выглядит так: bounds: map.getBounds(),
. На самом деле происходит то, что он возвращается туда, где он был изначально до масштабирования.
Назовите меня сумасшедшим, но разве свойство bounds
полностью игнорируется? Кто-нибудь знает, как ограничить результаты поиска видимой в данный момент областью карты?
И наконец: это только я, или документы API для V7 довольно неполны? Мне удалось найти несколько вещей, проверив в консоли Chrome вещи, которых нет в документации API.
Обновление. Вот как выглядит мой вызов функции поиска:
searchManager.search({
bounds: map.getBounds(),
callback: searchSuccess,
count: 20,
entityType:"Business",
errorCallback: searchFail,
startIndex: 0,
userData: userData,
what: what,
where: search
});
viewchangeend
и дам вам знать, сработает ли это. - person Remy   schedule 26.09.2012