设置缩放范围Bing Map API

时间:2013-09-17 15:13:13

标签: javascript ajax bing-maps bing

所以我试图使用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}); 
        }
   });
}

2 个答案:

答案 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
});
相关问题