X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosMap.java;h=f8c3a36bcc534bf8b102659cd1e9fb90bf3a0c6a;hp=b42f9f851ef02beb2586008bbf020fcc662a4932;hb=00aca369c4070901e0400f291d5f269b5fb8015c;hpb=6ca2c42061b3c0160bf0137c9cd65989c522b826 diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java index b42f9f85..f8c3a36b 100644 --- a/altoslib/AltosMap.java +++ b/altoslib/AltosMap.java @@ -24,19 +24,19 @@ import java.util.concurrent.*; public class AltosMap implements AltosFlightDisplay, AltosMapTileListener, AltosMapStoreListener { - static final int px_size = 512; + public static final int px_size = 512; - static final int maptype_hybrid = 0; - static final int maptype_roadmap = 1; - static final int maptype_satellite = 2; - static final int maptype_terrain = 3; - static final int maptype_default = maptype_hybrid; + public static final int maptype_hybrid = 0; + public static final int maptype_roadmap = 1; + public static final int maptype_satellite = 2; + public static final int maptype_terrain = 3; + public static final int maptype_default = maptype_hybrid; - static final int default_zoom = 15; - static final int min_zoom = 3; - static final int max_zoom = 21; + public static final int default_zoom = 15; + public static final int min_zoom = 3; + public static final int max_zoom = 21; - static final String[] maptype_names = { + public static final String[] maptype_names = { "hybrid", "roadmap", "satellite", @@ -157,7 +157,7 @@ public class AltosMap implements AltosFlightDisplay, AltosMapTileListener, Altos } public void font_size_changed(int font_size) { - map_interface.line.font_size_changed(font_size); + map_interface.line().font_size_changed(font_size); for (AltosMapTile tile : tiles.values()) tile.font_size_changed(font_size); repaint(); @@ -211,7 +211,7 @@ public class AltosMap implements AltosFlightDisplay, AltosMapTileListener, Altos if (!gps.locked && gps.nsat < 4) return; - AltosMapRectangle damage = map_interface.path.add(gps.lat, gps.lon, state.state); + AltosMapRectangle damage = map_interface.path().add(gps.lat, gps.lon, state.state); switch (state.state) { case AltosLib.ao_flight_boost: @@ -279,8 +279,8 @@ public class AltosMap implements AltosFlightDisplay, AltosMapTileListener, Altos lower_right = new AltosPointInt(centre.x + load_radius * AltosMap.px_size, centre.y + load_radius * AltosMap.px_size); } else { - upper_left = floor(transform.screen_point(new AltosPointDouble(0.0, 0.0))); - lower_right = floor(transform.screen_point(new AltosPointDouble(width(), height()))); + upper_left = floor(transform.screen_point(new AltosPointInt(0, 0))); + lower_right = floor(transform.screen_point(new AltosPointInt(width(), height()))); } LinkedList to_remove = new LinkedList(); @@ -302,8 +302,8 @@ public class AltosMap implements AltosFlightDisplay, AltosMapTileListener, Altos if (!tiles.containsKey(point)) { AltosLatLon ul = transform.lat_lon(new AltosPointDouble(x, y)); AltosLatLon center = transform.lat_lon(new AltosPointDouble(x + AltosMap.px_size/2, y + AltosMap.px_size/2)); - AltosMapTile tile = new AltosMapTile(this, ul, center, zoom, maptype, - AltosMap.px_size); + AltosMapTile tile = map_interface.new_tile(this, ul, center, zoom, maptype, + AltosMap.px_size); tiles.put(point, tile); } } @@ -328,6 +328,22 @@ public class AltosMap implements AltosFlightDisplay, AltosMapTileListener, Altos return "Map"; } + public void paint() { + make_tiles(); + + for (AltosMapTile tile : tiles.values()) + tile.paint(transform); + + synchronized(marks) { + for (AltosMapMark mark : marks) + mark.paint(transform); + } + + map_interface.path().paint(transform); + + map_interface.line().paint(transform); + } + /* AltosMapTileListener methods */ public synchronized void notify_tile(AltosMapTile tile, int status) { for (AltosPointInt point : tiles.keySet()) {