X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosMap.java;h=9fbb94a6e1f5870f6ba13646ed19000fbb0c6d8f;hb=21d176f161b90f18f236ef887cef9676d712eee3;hp=a2855192ca1805a3f9098829ab7ea752e8bf1ecb;hpb=0afa07d3c1dcb5e301fcb8b4edfecdd961662478;p=fw%2Faltos diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java index a2855192..9fbb94a6 100644 --- a/altoslib/AltosMap.java +++ b/altoslib/AltosMap.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_8; +package org.altusmetrum.altoslib_10; import java.io.*; import java.lang.*; @@ -308,7 +308,11 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { upper_left = floor(transform.screen_point(new AltosPointInt(0, 0))); lower_right = floor(transform.screen_point(new AltosPointInt(width(), height()))); } - for (AltosPointInt point : tiles.keySet()) { + + Enumeration keyEnumeration = tiles.keys(); + + while (keyEnumeration.hasMoreElements()) { + AltosPointInt point = keyEnumeration.nextElement(); if (point.x < upper_left.x || lower_right.x < point.x || point.y < upper_left.y || lower_right.y < point.y) { tiles.remove(point); @@ -324,7 +328,6 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { if (!tiles.containsKey(point)) { AltosLatLon ul = transform.lat_lon(point); AltosLatLon center = transform.lat_lon(new AltosPointDouble(x + AltosMap.px_size/2, y + AltosMap.px_size/2)); - debug("make tile %g,%g\n", center.lat, center.lon); AltosMapTile tile = map_interface.new_tile(this, ul, center, zoom, maptype, px_size); tiles.put(point, tile); } @@ -378,7 +381,10 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { /* AltosMapTileListener methods */ public synchronized void notify_tile(AltosMapTile tile, int status) { - for (AltosPointInt point : tiles.keySet()) { + Enumeration keyEnumeration = tiles.keys(); + + while (keyEnumeration.hasMoreElements()) { + AltosPointInt point = keyEnumeration.nextElement(); if (tile == tiles.get(point)) { AltosPointInt screen = transform.screen(point); repaint(screen.x, screen.y, AltosMap.px_size, AltosMap.px_size);