X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosuilib%2FAltosUIMap.java;h=58371f05a090d892f88bc4f74ade73763a00039b;hb=3af81a45be69b4693396de4a5e2c386be566b933;hp=5f1b7ae6f03429a4db89c39ad38763e59c6e05b6;hpb=ec46adee44ea08120b1940ca55a5fbdf56874bb1;p=fw%2Faltos diff --git a/altosuilib/AltosUIMap.java b/altosuilib/AltosUIMap.java index 5f1b7ae6..58371f05 100644 --- a/altosuilib/AltosUIMap.java +++ b/altosuilib/AltosUIMap.java @@ -62,6 +62,28 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM g.drawOval((int)pt.x-5, (int)pt.y-5, 10, 10); g.drawOval((int)pt.x-20, (int)pt.y-20, 40, 40); g.drawOval((int)pt.x-35, (int)pt.y-35, 70, 70); + + if (label != null) { + Rectangle2D bounds; + bounds = line_font.getStringBounds(label, g.getFontRenderContext()); + float x = (float) pt.x; + float y = (float) pt.y + (float) bounds.getHeight() / 2.0f; + + g.setFont(line_font); + g.setColor(Color.WHITE); + for (int dy = -2; dy <= 2; dy += 2) + for (int dx = -2; dx <= 2; dx += 2) + g.drawString(label, x + dx, y + dy); + if (0 <= state && state < AltosUIMap.stateColors.length) + g.setColor(AltosUIMap.stateColors[state]); + else + g.setColor(AltosUIMap.stateColors[AltosLib.ao_flight_invalid]); + g.drawString(label, x, y); + } + } + + MapMark(double lat, double lon, int state, String label) { + super(lat, lon, state, label); } MapMark(double lat, double lon, int state) { @@ -403,6 +425,10 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM return new MapMark(lat, lon, state); } + public AltosMapMark new_mark(double lat, double lon, int state, String label) { + return new MapMark(lat, lon, state, label); + } + public AltosMapTile new_tile(AltosMapCache cache, AltosLatLon upper_left, AltosLatLon center, int zoom, int maptype, int px_size, int scale) { return new MapTile(cache, upper_left, center, zoom, maptype, px_size, scale); } @@ -476,6 +502,10 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM map.add_mark(lat, lon, status); } + public void add_mark(double lat, double lon, int status, String label) { + map.add_mark(lat, lon, status, label); + } + public void clear_marks() { map.clear_marks(); }