altoslib: Add all known launch sites and names to map preload
[fw/altos] / altosuilib / AltosUIMap.java
index 5f1b7ae6f03429a4db89c39ad38763e59c6e05b6..58371f05a090d892f88bc4f74ade73763a00039b 100644 (file)
@@ -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();
        }