Search code examples
javacameraworldwind

Restrict Camera View in WorldWind Java


I've been searching through documentation and examples, but I don't see any good demos showing me what I would like to do:

How do I restrict the view in World Wind Java to a specific region? As in allowing the user to move the world around, but only through a small area. Removing the ability to move the camera and setting the view to a specific position would work in my case, but it seems like such a waste of the incredible viewing functionalities of WWJ to do so.


Solution

  • There is actually an example of how to do this in gov.nasa.worldwindx.examples (I was only looking through demos): ViewLimits.

    One can cast the WorldWindowGLCanvas's view to an OrbitView. Then limits can be applied as such:

    OrbitView viewbounds = (OrbitView)wwd.getView();
    if (viewbounds != null)
    {
        OrbitViewLimits limits = viewbounds.getOrbitViewLimits();
        if (limits != null)
        {
            viewLimit = new Sector();// Fill with appropriate bounds
            limits.setCenterLocationLimits(viewLimit);
            limits.setPitchLimits(Angle.fromDegrees(0), Angle.fromDegrees(90));
            //^in degrees downward from looking directly at the earth
            limits.setHeadingLimits(Angle.ZERO, Angle.ZERO);// rotation cw or ccw
            limits.setZoomLimits(minZoom, maxZoom);// in meters
            BasicOrbitViewLimits.applyLimits(viewbounds, limits);
        }
    }