From f6e9481d600f3875ffccae1f226c0fc195db1030 Mon Sep 17 00:00:00 2001 From: Luc Maisonobe <luc@orekit.org> Date: Fri, 14 Mar 2014 19:50:45 +0100 Subject: [PATCH] Added getLatitudeIndex and getLongitudeIndex in Tile. --- .../org/orekit/rugged/core/dem/SimpleTile.java | 16 ++++++++++++++-- .../java/org/orekit/rugged/core/dem/Tile.java | 12 ++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java index 1bf6f104..7030b1ed 100644 --- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java +++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java @@ -183,11 +183,23 @@ public class SimpleTile implements Tile { return elevations[latitudeIndex * getLongitudeColumns() + longitudeIndex]; } + /** {@inheritDoc} */ + @Override + public int getLatitudeIndex(double latitude) { + return (int) FastMath.floor((latitude - minLatitude) / latitudeStep); + } + + /** {@inheritDoc} */ + @Override + public int getLontitudeIndex(double longitude) { + return (int) FastMath.floor((longitude - minLongitude) / longitudeStep); + } + /** {@inheritDoc} */ @Override public Location getLocation(final double latitude, final double longitude) { - final int latitudeIndex = (int) FastMath.floor((latitude - minLatitude) / latitudeStep); - final int longitudeIndex = (int) FastMath.floor((longitude - minLongitude) / longitudeStep); + final int latitudeIndex = getLatitudeIndex(latitude); + final int longitudeIndex = getLontitudeIndex(longitude); if (longitudeIndex < 0) { if (latitudeIndex < 0) { return Location.SOUTH_WEST; diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java index 73972733..c0ab6dcd 100644 --- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java +++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java @@ -83,6 +83,18 @@ public interface Tile extends UpdatableTile { */ int getLongitudeColumns(); + /** Get the latitude index of a point. + * @param latitude geodetic latitude + * @return latirute index (it may lie outside of the tile!) + */ + int getLatitudeIndex(double latitude); + + /** Get the longitude index of a point. + * @param longitude geodetic latitude + * @return longitude index (it may lie outside of the tile!) + */ + int getLontitudeIndex(double longitude); + /** Get the minimum elevation in the tile. * @return minimum elevation in the tile */ -- GitLab