Merge branch 'telescience-v0.2'
[fw/altos] / altosui / AltosSiteMap.java
index 144d506df3fc428bf49d556788282905e1fe2e3e..f614eae65fc526370b1508b45a6477cd9ccd077d 100644 (file)
@@ -23,8 +23,8 @@ import java.io.*;
 import java.lang.Math;
 import java.awt.geom.Point2D;
 import java.util.concurrent.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
 
 public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
        // preferred vertical step in a tile in naut. miles
@@ -322,6 +322,22 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
                last_state = state.state;
        }
 
+       public void centre(Point2D.Double pt) {
+               Rectangle r = comp.getVisibleRect();
+               Point2D.Double copt = translatePoint(pt, tileCoordOffset(topleft));
+               int dx = (int)copt.x - r.width/2 - r.x;
+               int dy = (int)copt.y - r.height/2 - r.y;
+               r.x += dx;
+               r.y += dy;
+               comp.scrollRectToVisible(r);
+       }
+
+       public void centre(AltosState state) {
+               if (!state.gps.locked && state.gps.nsat < 4)
+                       return;
+               centre(pt(state.gps.lat, state.gps.lon));
+       }
+
        public void draw_circle(double lat, double lon) {
                final Point2D.Double pt = pt(lat, lon);