/** * Same as {@link LatLonGeo#displacedBy(double, double, Datum)}, only * the default datum is used instead of a user-supplied datum. * * @see{@link LatLonGeo#defaultDatum} */ public LatLonGeo displacedBy( double dist, double azimuth ) { return displacedBy( dist, azimuth, defaultDatum ); }
public LatLonGeo displacedBy( DistanceAzimuth distAzimuth ) { return displacedBy( distAzimuth, defaultDatum ); }
public LatLonGeo displacedBy( DistanceAzimuth distAzimuth, Datum datum ) { return displacedBy( distAzimuth.getDistance( ), distAzimuth.getAzimuth( ), datum ); }
public void setBounds( LatLonGeo center, DoubleUnaryOperator unitsToSu, double ewExtent_UNITS, double nsExtent_UNITS ) { double ewExtent_SU = unitsToSu.applyAsDouble( ewExtent_UNITS ); double nsExtent_SU = unitsToSu.applyAsDouble( nsExtent_UNITS ); LatLonGeo[] latlons = { center.displacedBy( 0.5*ewExtent_SU, Azimuth.fromNavDeg( -90 ) ), center.displacedBy( 0.5*ewExtent_SU, Azimuth.fromNavDeg( +90 ) ), center.displacedBy( 0.5*nsExtent_SU, Azimuth.fromNavDeg( 0 ) ), center.displacedBy( 0.5*nsExtent_SU, Azimuth.fromNavDeg( 180 ) ) }; double[] xs_SU = new double[ latlons.length ]; double[] ys_SU = new double[ latlons.length ]; for ( int i = 0; i < latlons.length; i++ ) { Vector2d xy_SU = proj.project( latlons[ i ] ); xs_SU[ i ] = xy_SU.getX( ); ys_SU[ i ] = xy_SU.getY( ); } this.axis.set( min( xs_SU ), max( xs_SU ), min( ys_SU ), max( ys_SU ) ); }
LatLonGeo swLatLon = centerLatLon.displacedBy( Length.fromMeters( viewportSizeMeters ), Azimuth.southwest ); LatLonGeo seLatLon = centerLatLon.displacedBy( Length.fromMeters( viewportSizeMeters ), Azimuth.southeast ); LatLonGeo nwLatLon = centerLatLon.displacedBy( Length.fromMeters( viewportSizeMeters ), Azimuth.northwest ); LatLonGeo neLatLon = centerLatLon.displacedBy( Length.fromMeters( viewportSizeMeters ), Azimuth.northeast );