Class MapNavigator.ZoomAction

java.lang.Object
com.luciad.maps.MapNavigator.ZoomAction
All Implemented Interfaces:
AutoCloseable
Enclosing class:
MapNavigator

public static final class MapNavigator.ZoomAction extends Object implements AutoCloseable
Class that allows to build a zoom action and apply it, either directly or using an animation.

Zooming works by:

Example: zoom in 50% (2x zoom)

Map.ViewMapTransformation viewMapTransformation = map.getViewMapTransformation();
Point point = viewMapTransformation.viewToMap(Map.LocationMode.ClosestSurface, toViewLocation);
if (point != null) {
map.getMapNavigator().newZoomAction().toLocation(point).factor(0.5).zoom();
}
  • Method Details Link icon

    • finalize Link icon

      protected void finalize()
      Overrides:
      finalize in class Object
    • close Link icon

      public void close()
      Specified by:
      close in interface AutoCloseable
    • toLocation Link icon

      @NotNull public MapNavigator.ZoomAction toLocation(@NotNull Point toMapLocation) throws IllegalArgumentException
      Sets the location (in Map coordinates) towards which the MapNavigator will zoom.

      This property is mandatory. Not setting it will cause the ZoomAction#zoom method to throw an exception.

      Parameters:
      toMapLocation - a location, defined in the reference of the Map
      Returns:
      this
      Throws:
      IllegalArgumentException - if the toMapLocation parameter is not in the map coordinate reference.
    • factor Link icon

      @NotNull public MapNavigator.ZoomAction factor(double factor) throws IllegalArgumentException
      Sets the zoom factor.

      A value larger than 1 will zoom out. A value between ]0, 1[ will zoom in.

      For example: A zoom factor of 0.5 will move the camera twice as close to the target location. A value of 2.0 will move the camera away twice as far from the target location.

      It is mandatory to set either this property, or the targetScale property. Not setting either of them will cause the ZoomAction#zoom method to throw an exception. If both methods are called, the one called last has precedence.

      Parameters:
      factor - the zoom factor, a value between ]0, 1[ to zoom in and between ]1, +inf[ to zoom out.
      Returns:
      this
      Throws:
      IllegalArgumentException - if the factor value is invalid.
    • targetScale Link icon

      @NotNull public MapNavigator.ZoomAction targetScale(@NotNull MapScale targetScale)
      Sets the map scale to which to zoom to.

      It is mandatory to set either this property, or the factor property. Not setting either of them will cause the ZoomAction#zoom method to throw an exception. If both methods are called, the one called last has precedence.

      Parameters:
      targetScale - the target scale to zoom to
      Returns:
      this
    • animate Link icon

      @NotNull public MapNavigator.ZoomAction animate(boolean animated)
      Specifies if the action should use an animation.
      Parameters:
      animated - if this action should use an animation. The default is false.
      Returns:
      this
    • duration Link icon

      @NotNull public MapNavigator.ZoomAction duration(@NotNull Duration duration)
      Specifies the duration of the animation.

      This parameter is only used if animate(bool) is called with true as argument.

      Parameters:
      duration - the duration of the animation in milliseconds. The default is 2000 (=2 seconds)
      Returns:
      this
    • zoom Link icon

      public void zoom() throws IllegalStateException
      Executes the zoom action.
      Throws:
      IllegalStateException - if the action is not built correctly, for example if mandatory parameters are missing, or if incompatible parameters are configured.