X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosSiteMap.java;h=f614eae65fc526370b1508b45a6477cd9ccd077d;hb=6ba0df9b440b69bf5bc5f4e435b431adf303fee2;hp=4195fc3ff186858bfb17834b109fdd237a67b0d3;hpb=1fc97dd9875a7639533a34438c4c7c999412eb3a;p=fw%2Faltos diff --git a/altosui/AltosSiteMap.java b/altosui/AltosSiteMap.java index 4195fc3f..f614eae6 100644 --- a/altosui/AltosSiteMap.java +++ b/altosui/AltosSiteMap.java @@ -15,24 +15,16 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package AltosUI; +package altosui; import java.awt.*; -import java.awt.image.*; -import java.awt.event.*; import javax.swing.*; -import javax.swing.event.MouseInputAdapter; -import javax.imageio.ImageIO; -import javax.swing.table.*; import java.io.*; -import java.util.*; -import java.text.*; -import java.util.prefs.*; import java.lang.Math; import java.awt.geom.Point2D; -import java.awt.geom.Line2D; import java.util.concurrent.*; -import org.altusmetrum.AltosLib.*; +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 @@ -61,11 +53,13 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { // based on google js // http://maps.gstatic.com/intl/en_us/mapfiles/api-3/2/10/main.js // search for fromLatLngToPoint and fromPointToLatLng + /* private static Point2D.Double pt(LatLng latlng, int zoom) { double scale_x = 256/360.0 * Math.pow(2, zoom); double scale_y = 256/(2.0*Math.PI) * Math.pow(2, zoom); return pt(latlng, scale_x, scale_y); } + */ private static Point2D.Double pt(LatLng latlng, double scale_x, double scale_y) @@ -108,9 +102,11 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { private LatLng latlng(double x, double y) { return latlng(new Point2D.Double(x,y), scale_x, scale_y); } + /* private LatLng latlng(Point2D.Double pt) { return latlng(pt, scale_x, scale_y); } + */ ConcurrentHashMap mapTiles = new ConcurrentHashMap(); Point2D.Double centre; @@ -190,8 +186,8 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { AltosSiteMap asm = new AltosSiteMap(true); asm.centre = asm.getBaseLocation(lat, lng); - Point2D.Double p = new Point2D.Double(); - Point2D.Double p2; + //Point2D.Double p = new Point2D.Double(); + //Point2D.Double p2; int dx = -w/2, dy = -h/2; for (int y = dy; y < h+dy; y++) { for (int x = dx; x < w+dx; x++) { @@ -326,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);