所以我正在尝试使用 Bing Maps AJAX API (v7) 的搜索模块,我注意到在交互式 SDK 中,您可以传入一个名为的属性,您可以在bounds
其中提供一个边界框进行搜索。该示例仅使用地图的当前边界框,因此理论上,如果您放大,新的搜索应该只会显示您放大区域内的结果,对吗?
那么问题来了:在交互式 SDK 中的示例代码末尾添加以下代码:
Microsoft.Maps.Events.addHandler(map, 'viewchange', searchRequest);
这应该做的是每次您在地图上移动或放大或缩小时,它都应该使用地图的新边界区域进行新搜索......我这么说是因为这条线看起来像这样:bounds: map.getBounds(),
。实际发生的是,它会反弹回缩放之前的初始位置。
说我疯了,但bounds
财产只是被完全忽略了吗?有谁知道如何将搜索结果限制在当前可见的地图区域?
最后:只有我一个人,还是 V7 的 API 文档不完整?通过检查 Chrome 控制台中未出现在 API 文档中的内容,我设法找到了一些东西。
更新:这就是我对搜索功能的调用:
searchManager.search({
bounds: map.getBounds(),
callback: searchSuccess,
count: 20,
entityType:"Business",
errorCallback: searchFail,
startIndex: 0,
userData: userData,
what: what,
where: search
});