Changeset 3775 in josm for trunk/src/org/openstreetmap/josm


Ignore:
Timestamp:
2011-01-06T21:46:51+01:00 (11 years ago)
Author:
Upliner
Message:

Record mapview center coordinates for offeset bookmarks. Requested by usm78-gis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/imagery/OffsetBookmark.java

    r3734 r3775  
    1212
    1313import org.openstreetmap.josm.Main;
     14import org.openstreetmap.josm.data.coor.LatLon;
    1415import org.openstreetmap.josm.data.projection.Projection;
    1516import org.openstreetmap.josm.gui.layer.ImageryLayer;
     
    2223    public String name;
    2324    public double dx, dy;
     25    public double centerX, centerY;
    2426
    2527    public boolean isUsable(ImageryLayer layer) {
     
    2729        layer.getInfo().getName().equals(layerName);
    2830    }
     31
    2932    public OffsetBookmark(Projection proj, String layerName, String name, double dx, double dy) {
     33        this(proj, layerName, name, dx, dy, 0, 0);
     34    }
     35
     36    public OffsetBookmark(Projection proj, String layerName, String name, double dx, double dy, double centerX, double centerY) {
    3037        this.proj = proj;
    3138        this.layerName = layerName;
     
    3340        this.dx = dx;
    3441        this.dy = dy;
     42        this.centerX = centerX;
     43        this.centerY = centerY;
    3544    }
    3645
     
    5059        this.dx = Double.valueOf(array.get(3));
    5160        this.dy = Double.valueOf(array.get(4));
     61        if (array.size() >= 7) {
     62            this.centerX = Double.valueOf(array.get(5));
     63            this.centerY = Double.valueOf(array.get(6));
     64        }
    5265    }
    5366
     
    5972        res.add(String.valueOf(dx));
    6073        res.add(String.valueOf(dy));
     74        if (this.centerX != 0 || this.centerY != 0) {
     75            res.add(String.valueOf(centerX));
     76            res.add(String.valueOf(centerY));
     77        }
    6178        return res;
    6279    }
     
    86103
    87104    public static void bookmarkOffset(String name, ImageryLayer layer) {
     105        LatLon center;
     106        if (Main.map != null && Main.map.mapView != null) {
     107            center = Main.proj.eastNorth2latlon(Main.map.mapView.getCenter());
     108        } else {
     109            center = new LatLon(0,0);
     110        }
    88111        OffsetBookmark nb = new OffsetBookmark(
    89112                Main.proj, layer.getInfo().getName(),
    90                 name, layer.getDx(), layer.getDy());
     113                name, layer.getDx(), layer.getDy(), center.lon(), center.lat());
    91114        for (ListIterator<OffsetBookmark> it = allBookmarks.listIterator();it.hasNext();) {
    92115            OffsetBookmark b = it.next();
Note: See TracChangeset for help on using the changeset viewer.