// License: WTFPL. For details, see LICENSE file.
package iodb;
import java.util.Map;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.data.coor.CoordinateFormat;
import org.openstreetmap.josm.data.coor.EastNorth;
import org.openstreetmap.josm.data.coor.LatLon;
import org.openstreetmap.josm.data.imagery.OffsetBookmark;
import org.openstreetmap.josm.data.projection.Projection;
/**
* An imagery offset. Contains imagery identifier, zoom bracket and a location
* of the position point on the imagery layer. The offset is then calculated
* as a difference between the two.
*
* @author Zverik
* @license WTFPL
*/
public class ImageryOffset extends ImageryOffsetBase {
private LatLon imageryPos;
private String imagery;
private int minZoom, maxZoom;
public ImageryOffset(String imagery, LatLon imageryPos) {
this.imageryPos = imageryPos;
this.imagery = imagery;
this.minZoom = 0;
this.maxZoom = 30;
}
public void setMaxZoom(int maxZoom) {
this.maxZoom = maxZoom;
}
public void setMinZoom(int minZoom) {
this.minZoom = minZoom;
}
public LatLon getImageryPos() {
return imageryPos;
}
public String getImagery() {
return imagery;
}
public int getMaxZoom() {
return maxZoom;
}
public int getMinZoom() {
return minZoom;
}
@Override
public void putServerParams(Map<String, String> map) {
super.putServerParams(map);
map.put("imagery", imagery);
map.put("imlat", imageryPos.latToString(CoordinateFormat.DECIMAL_DEGREES));
map.put("imlon", imageryPos.lonToString(CoordinateFormat.DECIMAL_DEGREES));
if (minZoom > 0)
map.put("minzoom", String.valueOf(minZoom));
if (maxZoom < 30)
map.put("maxzoom", String.valueOf(maxZoom));
}
@Override
public String toString() {
return "ImageryOffset{" + "imageryPos=" + imageryPos + ", imagery=" + imagery + "position=" + position + ", date=" + date +
", author=" + author + ", description=" + description + ", abandonDate=" + abandonDate + '}';
}
}