所以我试图使用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 the 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});
}
});
}
答案 0 :(得分:1)
因此,随着更多的研究和大量的调整,Restrict the min/max zoom on a Bing Map with v7 of the AJAX control?的答案似乎仍然是我能找到的唯一解决方案。如果MapOptions对象能够设置zoomRange级别,那将是非常好的。但据我所知,这是不可能的。
答案 1 :(得分:1)
在v8中,现在可以通过设置选项on the MapOptions object.
来实现var map = new Microsoft.Maps.Map(document.getElementById('myMap'), {
credentials: 'YOUR_BING_MAPS_KEY',
minZoom: 4,
maxZoom: 12
});