0

そのため、Bing Map API で JavaScript を使用してズームを制限しようとしています。ここでこの質問が尋ねられたのを見ましたが、解決策は私が探しているものではありません。

これらを呼び出して zoomRange を表示する機能があります。

map.getZoomRange().max;
map.getZoomRange().min;

私が欲しいのは、これらを設定できるようにすることです。MapOption オブジェクトに何も見つからないようです。

私が欲しいものの例は、このサイトにあります: http://www.suncadiaresort.com/interactive-resort-map

マップ上のコントロールを使用してズームしようとすると、明確な最大ズームと最小ズームがあります。

しかし、ここに示されている解決策は、AJAX コントロールの v7 を使用して Bing マップの最小/最大ズームを制限しますか? 明確な最大値または最小値を作成しません。ユーザーがそのポイントを超えてスクロールしたかどうかを確認してから、ズームを設定しています。これによりジッタリングが発生し、常にキャッチされるとは限りません。

私は本当に最大ズームと最小ズームを設定できるようにしたいので、サンプルサイトのように、マップがスクロールアウト (または必要に応じてイン) されないようにします。

コードに関しては、他の質問の2番目の提案を使用していますが、ここでも示します。

イベント ハンドラーから関数を呼び出します。

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}); 
        }
   });
}
4

2 に答える 2

1

したがって、より多くの調査とこれをいじくり回すと、Restrict the min/max zoom on a Bing Map with v7 of AJAX control?からの答えが得られます。まだ私が見つけることができる唯一の解決策のようです。MapOptions オブジェクトに zoomRange のレベルを設定できる機能があれば、非常に便利です。しかし、私の知る限り、これは不可能です。

于 2013-09-17T16:46:54.237 に答える