そのため、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});
}
});
}