OpenLayers 2D マップには、制限された範囲と呼ばれるプロパティがあり、定義された境界ボックスの外側でパンまたはズームすることはできません。
Google Earth プラグインで同様のものを 3D で作成できますか?
明らかに問題は、ビューを曲げる (傾ける) ことができることです。これは 2D では実現できません。マップに曲がりや傾斜がない場合は、既にビューを制限していますが、それは私が望むものとはほど遠い..
ありがとう!!
更新 1:
ここまでで、viewchangeend イベントのハンドラーで bbox を制限しました。実際のビューポート (北、南、東、西) が定義済みの初期値の範囲外にある場合は、ビューを再び初期位置に移動します。
var viewchangeend = function viewchangeendhandler(){
var actualViewport = {
north: ge.getView().getViewportGlobeBounds().getNorth(),
south: ge.getView().getViewportGlobeBounds().getSouth(),
east: ge.getView().getViewportGlobeBounds().getEast(),
west: ge.getView().getViewportGlobeBounds().getWest()
};
if (actualViewport.north > initialViewport.north || actualViewport.south < initialViewport.south ||
actualViewport.east > initialViewport.east || actualViewport.west < initialViewport.west){
var la = ge.createLookAt('');
la.set(initialX, initialY, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 0 , 0, 50000);
ge.getView().setAbstractView(la);
}
}
たとえば、ビューを傾けない最初のケースでは、南北の関係 (北から南を引いたもの) は静的ですが、ビューを傾けると関係が大きくなり、最初のビューポートを使用して実際のビューポートが問題ないかどうかを知ることができません。
再度、感謝します!