X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosSiteMap.java;h=4195fc3ff186858bfb17834b109fdd237a67b0d3;hp=188902e9e535f0ceb3e9fc3dd8852d6f4c8b1569;hb=708e7937cba52982b91244cf89bfbff46d346135;hpb=0a4d934f6e2914bfe2d965630543f029a1576c11 diff --git a/altosui/AltosSiteMap.java b/altosui/AltosSiteMap.java index 188902e9..4195fc3f 100644 --- a/altosui/AltosSiteMap.java +++ b/altosui/AltosSiteMap.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package altosui; +package AltosUI; import java.awt.*; import java.awt.image.*; @@ -31,6 +31,8 @@ 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.*; public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { // preferred vertical step in a tile in naut. miles @@ -110,7 +112,7 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { return latlng(pt, scale_x, scale_y); } - HashMap mapTiles = new HashMap(); + ConcurrentHashMap mapTiles = new ConcurrentHashMap(); Point2D.Double centre; private Point2D.Double tileCoordOffset(Point p) { @@ -146,6 +148,10 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { // nothing } + public void set_font() { + // nothing + } + private void loadMap(final AltosSiteMapTile tile, File pngfile, String pngurl) { @@ -245,7 +251,7 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { char chlng = lng < 0 ? 'W' : 'E'; if (lat < 0) lat = -lat; if (lng < 0) lng = -lng; - return new File(AltosPreferences.mapdir(), + return new File(AltosUIPreferences.mapdir(), String.format("map-%c%.6f,%c%.6f-%d.png", chlat, lat, chlng, lng, zoom)); } @@ -320,6 +326,16 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { last_state = state.state; } + public void draw_circle(double lat, double lon) { + final Point2D.Double pt = pt(lat, lon); + + for (Point offset : mapTiles.keySet()) { + AltosSiteMapTile tile = mapTiles.get(offset); + Point2D.Double ref = translatePoint(pt, tileCoordOffset(offset)); + tile.draw_circle(ref); + } + } + private AltosSiteMapTile createTile(Point offset) { AltosSiteMapTile tile = new AltosSiteMapTile(px_size); mapTiles.put(offset, tile);