summaryrefslogtreecommitdiff
path: root/altoslib/AltosMapPath.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2019-08-31 23:20:31 -0500
committerKeith Packard <keithp@keithp.com>2019-08-31 23:20:31 -0500
commitb13893245e8c66b48e23bb2005ef6ce46e69744f (patch)
tree88813e4b389805463313de527f1c7c4176c61fe7 /altoslib/AltosMapPath.java
parent936a5ff21d01db6f0084ee7e4712042c914942a5 (diff)
altosui: Display data for point nearest cursor in map view
Include time, lat and lon Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosMapPath.java')
-rw-r--r--altoslib/AltosMapPath.java29
1 files changed, 27 insertions, 2 deletions
diff --git a/altoslib/AltosMapPath.java b/altoslib/AltosMapPath.java
index 7104b2f6..54ff51fc 100644
--- a/altoslib/AltosMapPath.java
+++ b/altoslib/AltosMapPath.java
@@ -32,8 +32,8 @@ public abstract class AltosMapPath {
public abstract void paint(AltosMapTransform t);
- public AltosMapRectangle add(double lat, double lon, int state) {
- AltosMapPathPoint point = new AltosMapPathPoint(new AltosLatLon (lat, lon), state);
+ public AltosMapRectangle add(double lat, double lon, double time, int state) {
+ AltosMapPathPoint point = new AltosMapPathPoint(new AltosLatLon (lat, lon), time, state);
AltosMapRectangle rect = null;
if (!point.equals(last_point)) {
@@ -45,6 +45,31 @@ public abstract class AltosMapPath {
return rect;
}
+ private double dist(AltosLatLon lat_lon, AltosMapPathPoint point) {
+ return (new AltosGreatCircle(lat_lon.lat,
+ lat_lon.lon,
+ point.lat_lon.lat,
+ point.lat_lon.lon)).distance;
+ }
+
+ public AltosMapPathPoint nearest(AltosLatLon lat_lon) {
+ AltosMapPathPoint nearest = null;
+ double nearest_dist = 0;
+ for (AltosMapPathPoint point : points) {
+ if (nearest == null) {
+ nearest = point;
+ nearest_dist = dist(lat_lon, point);
+ } else {
+ double d = dist(lat_lon, point);
+ if (d < nearest_dist) {
+ nearest = point;
+ nearest_dist = d;
+ }
+ }
+ }
+ return nearest;
+ }
+
public void clear () {
points = new LinkedList<AltosMapPathPoint>();
}