0

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

たとえば、ビューを傾けない最初のケースでは、南北の関係 (北から南を引いたもの) は静的ですが、ビューを傾けると関係が大きくなり、最初のビューポートを使用して実際のビューポートが問題ないかどうかを知ることができません。

再度、感謝します!

4

1 に答える 1

0

おそらく、hitTest()代わりに使用することを検討する必要がありますgetViewportGlobeBounds()

このGoogle の例にリンクしているこのSO の質問を参照してください

ビューを傾けて Google の例を試してみて、2 つの結果の違いを確認してください。

于 2013-03-05T19:49:58.953 に答える