所以我试图使用带有 Bing Map API 的 javascript 来限制缩放。现在我在这里看到了这个问题,但解决方案并不完全是我想要的。
可以通过调用这些来查看 zoomRange:
map.getZoomRange().max;
map.getZoomRange().min;
我想要的是能够设置这些。我似乎在 MapOption 对象中找不到任何东西。
我想要的一个例子是在这个网站上:http: //www.suncadiaresort.com/interactive-resort-map
现在,如果您尝试使用他们在地图上的控件进行缩放,则会有明确的最大和最小缩放。
但是这里给出的解决方案,Restrict the min/max zoom on a Bing Map with v7 of AJAX control?没有明确的最大值或最小值。它正在检查用户是否滚动过该点,然后设置缩放。这会导致抖动并且并不总是能够捕捉到。
我真的只是希望能够设置最大缩放和最小缩放,这样地图就不会比示例站点中的地图滚动得更远(或必要时向内)。
至于代码,我使用了另一个问题的第二个建议,但我也会在这里展示。
我从事件处理程序调用函数:
Microsoft.Maps.Events.addHandler(map, 'targetviewchanged', restrictZoom(map, 12, 18, mapCenter));
这是功能:
function restrictZoom(map,min,max, mapCenter)
{
Microsoft.Maps.Events.addHandler(map, 'targetviewchanged',function()
{
var targetZoom = map.getTargetZoom();
var adjZoom = targetZoom;
if(targetZoom > max)
{
adjZoom = max;
}
else if(targetZoom < min)
{
adjZoom = min;
}
if(targetZoom != adjZoom)
{
map.setView({center: mapCenter, zoom:adjZoom});
}
});
}