Bing Maps API v7受边界限制

时间:2012-09-24 14:52:26

标签: javascript maps bing-maps bing-api

所以我正在尝试使用Bing Maps AJAX API(v7)的搜索模块,我注意到in the Interactive SDK for it你可以传入一个名为bounds的属性,你给了它一个边界框内搜索。该示例仅使用地图的当前边界框,因此从理论上讲,如果放大,新搜索应该只是在放大区域中显示结果,对吧?

这就是问题所在:在Interactive 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
});

1 个答案:

答案 0 :(得分:2)

我没有亲自使用视图更改,因为我不确定从6.0迁移时是否可用。

我将分享另一条路线,我可以完成这项工作。

我的搜索功能还将Microsoft.Maps.Pushpin放在用户搜索的位置(“你在这里!”)。

然后我从图钉创建边界:

var viewBoundaries = Microsoft.Maps.LocationRect.fromLocations(pushpin.getLocation());

然后为bounds设置Map.setView属性。 (以及放大我的情况)

map.setView({ bounds: viewBoundaries });
map.setView({ zoom: 10 });

如果您没有使用图钉,只需从位置类创建视图边界即可。

MSDN Location Class

相关问题